FreeBSD установка nginx, mysql, php-fpm, memcache, eaccelerator
Недавно пришлось поднимать веб сервер, и не долго думая решил попробовать, как писал ранее поднять все это дело под nginx. В топку предисловие, погнали.
Сначала обновим дерево портов:
Устанавливаем nginx, можно поставить свежую версию (nginx-devel), а можно последнюю стабильную, что я и сделаю:
# cd /usr/ports/www/nginx |
Зачастую необходимо отметить следующие пункты:
а если нужна поддержка SSL, то и
устанавливаем его:
Добавим его теперь в автозагрузку:
# echo 'nginx_enable="YES"' >> /etc/rc.conf |
Файл настроек: /usr/local/etc/nginx/nginx.conf
Корневая папка сервера: /usr/local/www/nginx/
Настроим его позже, сейчас поставим мускул.
# cd /usr/ports/databases/mysql51-server/ |
Устанавливаем БД:
# /usr/local/bin/mysql_install_db |
Выставляем права на папку с БД:
# chown -R mysql /var/db/mysql/ |
Запускаем мускул:
# /usr/local/etc/rc.d/mysql-server onestart |
Устанавливаем пароль на рута:
# /usr/local/bin/mysqladmin -u root password 'пароль' |
Ставим его в автозагрузку:
# echo 'mysql_enable="YES"' >> /etc/rc.conf |
Устанавливаем php:
# cd /usr/ports/lang/php52 |
Ставим необходимые нам расширения:
# cd /usr/ports/lang/php52-extensions/ |
Установка PHP-FPM:
# tar -xzf php-5.2.14.tar.gz |
# gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1 |
# ./configure --enable-fastcgi --enable-fpm |
# cp /tmp/php-5.2.10/sapi/cgi/fpm/php-fpm /usr/local/etc/rc.d/ |
# chmod +x /usr/local/etc/rc.d/php-fpm |
Проверим версию php после установки:
PHP 5.2.14 (cli) (built: Feb 1 2011 22:53:19) |
Copyright (c) 1997-2010 The PHP Group |
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies |
Если «built» сегодняшний, то всё ок.
Как всегда, добавляем его в автозагрузку:
# echo 'php_fpm_enable="YES"' >> /etc/rc.conf |
Добавляем поддержку php в nginx, для этого открываем файл /usr/local/etc/nginx/nginx.conf, чистим его, и добавлем следующие строки:
default_type application/octet-stream; |
log_format main '$remote_addr - $remote_user [$time_local] ' |
'"$request" $status $bytes_sent ' |
'"$http_referer" "$http_user_agent" ' |
fastcgi_intercept_errors on; |
root /usr/local/www/nginx; |
index index.php index.html index.htm; |
location ~* \.(jpg|jpeg|gif|png|ico|css|zip|js|swf)$ { |
root /usr/local/www/nginx; |
error_page 500 502 503 504 /50x.html; |
root /usr/local/www/nginx-dist; |
fastcgi_pass 127.0.0.1:9000; |
fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx$fastcgi_script_name; |
Далее редактируем конфигурацию php-fpm. По-дефолту он лежит тут '/usr/local/etc/php-fpm.conf'. Находим в файле строки:
<!–- <value name=”user”>nobody</value> -–> |
<!–- <value name=”group”>nobody</value> -–> |
И меняем их на:
<value name=”user”>www</value> |
<value name=”group”>www</value> |
Тем самым указав пользователя и группу, под которыми будет крутиться php.
MEMCACHE
Ставим расширение memcache:
# cd /usr/ports/databases/pecl-memcache |
После чего заходим в файл '/usr/local/etc/php/extensions.ini', где добавляем строчку:
EACCELERATOR
Устанавливаем:
# cd /usr/ports/www/eaccelerator |
Аналогично memcache заходим в файл '/usr/local/etc/php/extensions.ini' и добавляем строчку:
extension=eaccelerator.so |
Создаем папку, где eAccelerator будет хранить свой кэш, задаем владельца www и устанавливаем права:
# mkdir /tmp/eaccelerator |
# chown www /tmp/eaccelerator |
# chmod 0700 /tmp/eaccelerator |
Настраиваем eAccelerator:
ee /usr/local/etc/php.ini |
extension= "eaccelerator.so" |
eaccelerator.shm_size= "16" |
; Путь до каталога файлов кеша |
eaccelerator.cache_dir= "/tmp/eaccelerator" |
; Переключатель модуля (1 - вкл и 0 - выкл) |
; Переключатель оптимизатора (1 - вкл и 0 - выкл) |
eaccelerator.optimizer= "1" |
; Добавляет отладочную информацию в лог (1 - вкл и 0 - выкл) |
eaccelerator.log_file = "/var/log/eaccelerator_log" |
; Проверять время модификации файлов кеша для перекомпиляции оных (1 - вкл и 0 - выкл) |
eaccelerator.check_mtime= "1" |
; Фильтр расширений файлов которых надо кешировать. Например, "*.php *.phtml" . |
; Размер выделяемой памяти, в байтах. Допустимо вводить в формате 10240, 10K, 1M и т.д. При 0 - безлимит |
eaccelerator.shm_ttl= "120" |
; Период удаления старых данных из памяти, сек (при 0 не удаляет) |
eaccelerator.shm_prune_period= "0" |
; Использовать для кеша только память. При 0 используется диск и память |
eaccelerator.shm_only= "0" |
; Переключатель компресии (1 - вкл и 0 - выкл) |
eaccelerator.compress= "1" |
eaccelerator.compress_level= "9" |
Запускаем php и nginx:
# /usr/local/etc/rc.d/php-fpm start |
# /usr/local/etc/rc.d/nginx start |
Проверим что мы из этого всего получили, создадим файлик /usr/local/www/nginx/test.php со следующим содержимым:
и пробуем открыть в браузере по адресу:
Если все прошло успешно то вы увидите описание вашего пхп, модулей и прочего 
P.S. nginx с каждым днем все более и более мне нравится!)
23.10.2011 в 08:54
· Ссылка
учту, но проблем никогда не возникало
22.10.2011 в 06:40
· Ссылка
Рекомендую после # portsnap fetch update сделать # cd /usr/ports/devel/libtool потом # make && make install && make clean
Это поможет устанавлевать из портов все без каких либо ошибок, несколько недель столкнулса с этим