Nginx
Unable to load dynamic library memcache.so
После обновления php с версии 5.4.11 на 5.4.12 вывалилась следующая ошибка при попытке перезапуска php-fpm:
#/usr/local/etc/rc.d/php-fpm restart Stopping php_fpm. Starting php_fpm. [26-Feb-2013 12:58:14] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20100525/memcache.so' - /usr/local/lib/php/20100525/memcache.so: Undefined symbol "php_session_create_id" in Unknown on line 0
Решение:
Переустановка pecl-memcache:
# cd /usr/ports/databases/pecl-memcache && make deinstall clean && make install clean
Далее рестарт php-fpm.
Shared object "libGeoIP.so.5" not found
Приветствую.
На досуге как-то криво обновил порты, что после перезагрузки железки появилась такая требуха:
Performing sanity check on nginx configuration:
Shared object "libGeoIP.so.5" not found, required by "nginx"
Starting nginx.
Shared object "libGeoIP.so.5" not found, required by "nginx"
/etc/rc: WARNING: failed to start nginx
Родной нгинкс требовал библиотечку GeoIP решил проблему следующим образом. Сначала посмотрел какие зависимости есть у пакета nginx:
# portmaster --show-work www/nginx
===>>> Currently installed version: nginx-1.2.6,1
===>>> Port directory: /usr/ports/www/nginx
===>>> Starting check for all dependencies
===>>> Gathering dependency list for www/nginx from ports
===>>> Installed converters/libiconv
===>>> Installed devel/cmake
===>>> Installed devel/cmake-modules
===>>> Installed devel/gettext
===>>> Installed devel/gmake
===>>> Installed devel/google-perftools
===>>> Installed devel/libtool
===>>> Installed devel/pcre
===>>> Installed devel/pkgconf
===>>> Installed graphics/gd
===>>> Installed graphics/jpeg
===>>> Installed graphics/png
===>>> Installed lang/perl5.16
===>>> NOT INSTALLED net/GeoIP
===>>> Installed ports-mgmt/pkg
===>>> Installed print/freetype2
===>>> Installed textproc/expat2
===>>> Installed x11-fonts/fontconfig
Не установлено, конечно, забавно получилось. Я даже этот пакет и не удалял. Ну да бог с ним, установим.
# portmaster net/GeoIP
............
............
# /usr/local/etc/rc.d/nginx start
Performing sanity check on nginx configuration:
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
Starting nginx.
# ps -aux | grep nginx
root 31716 0,0 0,1 65940 9464 ?? Ss 23:11 0:00,00 nginx: master process /usr/local/sbin/nginx
www 31717 0,0 0,1 65940 11132 ?? S 23:11 0:00,00 nginx: worker process (nginx)
www 31718 0,0 0,1 65940 11132 ?? S 23:11 0:00,00 nginx: worker process (nginx)
root 31720 0,0 0,0 16280 2120 0 S+ 23:11 0:00,00 grep nginx
Дружим MaxSite CMS и Nginx
Это как-бы небольшая преамбула. Я не буду описывать все + и - переезда с одного веб сервера на другой.
Сегодня я познакомлю с маленьким правилом для конфига нгинкса, чтобы корректно работали редиректы. Естессно у вас должен быть установлен модуль http_rewrite_module.
Итак, в в location добавляем следующее:
location / { root /путь/к вашему/сайту; index index.php index.html index.htm; try_files $uri $uri/ /index.php?q=$uri&$args; }
Краткое описание директивы:
Директива проверяет существование файлов в заданном порядке и использует для обработки запроса первый найденный файл, причём обработка делается в контексте этого же location'а. С помощью слэша в конце имени можно задать проверку существования каталога, например, так — "$uri/". В случае, если ни один файл не найден, то делается внутренний редирект
на последний параметр.
Приобрел хостинг
Хостинг по адресу https://host-food.ru. Так как его поддерживает сам Лис, за сервис и работу можно не беспокоиться. Демократичные цены и скорость работы порадовали.
The plain HTTP request was sent to HTTPS port
Такая ошибка обычно встречается, если у вас криво настроен редирект на порт https. Если вы с этим столкнулись, то наверняка пытаетесь получить доступ к phpmyadmin после авторизации Решается это следующим образом:
location ~ \.php$ { fastcgi_param HTTPS on; .....
обновление php 5.3.5 и переустановка eaccelerator
При каждом обновлении php после перезагрузки постоянно отваливается акселератор с сообщением, что он собран для предыдущей версии.
# /usr/local/etc/rc.d/php-fpm start Starting php_fpm. eAccelerator: shmmax should be at least 2MBPHP Warning: [eAccelerator] Can not create shared memory area in Unknown on line 0 Unknown(0) : Warning - [eAccelerator] Can not create shared memory area PHP Fatal error: Unable to start eAccelerator module in Unknown on line 0 Unknown(0) : Fatal error - Unable to start eAccelerator module /usr/local/etc/rc.d/php-fpm: WARNING: failed to start php_fpm
Вот, что произошло после переустановки акселератора. Решаем проблему увеличением параметра kern.ipc.shmmax.У меня стояло 32 мегабайта, повысим до 64:
#sysctl kern.ipc.shmmax=67108864
Добавим в /etc/sysctl.conf. И надо изменить опцию в файле php.ini:
eaccelerator.shm_size="0"
Немного инфы с источника:
This setting will allow you to control the amount of shared memory eAccelerator should allocate to cache PHP scripts. The number sets the amount of memory in megabytes. Setting this value to "0" will use the default size.
Если после рестарта php-fpm вылетает та же ошибка, что и в начале, просто переустановите еще раз акселератор и запустите php-fpm еще раз. Должно все работать.