Продолжаю знакомство с FreeBSD, ранее мы устанавливали систему на vps от Hetzner. Теперь попробуй развернуть на уже готовой системе веб сервер. Связку будет делать из nginx и php-fpm. Установку mysql и прочих плюшек рассмотрю немного позже.
Обновляем дерево портов
portsnap fetch update
Устанавливаем из портов последнюю стабильную версию nginx
cd /usr/ports/www/nginx make install clean
Ставим галочки напротив следующих опций:
IPV6
HTTP
HTTP_CACHE
HTTP_REWRITE
HTTP_STATUS
WWW
ждем пока система не сообщит нам, что все собрано и установлено
Добавим nginx в автозагрузку строкой ‘nginx_enable=«YES»‘ в файле ‘/etc/rc.conf‘
echo 'nginx_enable="YES"' >> /etc/rc.conf
Должно получиться
После того, как установка будет выполнена, наберите команду rehash для того, чтобы заставить FreeBSD перечитать файлы, находящиеся в маршрутах поиска, чтобы система обнаружила их появление.
rehash
Делаем копию дефаултного конфига
cp /usr/local/etc/nginx/nginx.conf /usr/local/etc/nginx/nginx_conf_default
Если требуется, редактируем конфиг nginx
vi /usr/local/etc/nginx/nginx.conf
Выкладываю свой конфиг, который уже имеет виртуальный сервер sait.ru
#user nobody; worker_processes 1; #error_log logs/error.log; #pid logs/nginx.pid; events { worker_connections 1024; use kqueue; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root /usr/local/www/nginx; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/local/www/nginx-dist; } } ####################################### server { listen 80; server_name sait.ru; location / { root /usr/local/www/sait.ru/; index index.php index.html index.htm; access_log /var/log/sait_ru-access.log; } location ~ \.php$ { fastcgi_pass unix:/tmp/sait.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/www/sait.ru$fastcgi_script_name; include fastcgi_params; } } ####################################### }
Запускаем nginx
/usr/local/etc/rc.d/nginx start
Где найти nginx?
Конфиг: /usr/local/etc/nginx/nginx.conf
Порты http(80) и https(443)
Логи ошибок: /var/log/nginx-error.log
Логи доступа: /var/log/nginx-access.log
Коневая папка: /usr/local/www/nginx
Проверяем работу nginx, открываем браузер и набираем ip адрес вашего сервера
После того как проверили устанавливаем libtool,
cd /usr/ports/devel/libtool make install clean; rehash
Устанавливаем PHP (php5-5.4.6 — версия в портах на момент установки, так как с версии 5.3.3 в состав php-fpm включён, то отдельно ставить его думаю нет смысла)
cd /usr/ports/lang/php5 make install clean; rehash
Отмечаем следующие опции
CLI
CGI
FPM
IPV6
LINKTHR
Оставляем пустым и наживаем «ОК»
Оставляем как есть и продолжаем
Оставляем как есть и продолжаем
В конце установки должны увидеть
Наcтраиваем php-fpm
vi /usr/local/etc/php-fpm.conf
В конфиге оставил всё как было, единственное добавил в конце параметры для «sait.ru».
[site] user = www group = www listen = /tmp/site.sock pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3
Добавим php-fpm в автозагрузку строкой ‘php_fpm_enable=»YES»‘ в файле ‘/etc/rc.conf‘
echo 'php_fpm_enable="YES"' >> /etc/rc.conf
Копируем файл настроек PHP
cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
Редактируем конфиг PHP
vi /usr/local/etc/php.ini
Необходимо найти строчку cgi.fix_pathinfo=1, снять с неё комментарий и заменить её значение с 1 на 0
Создаем папку для нашего сайта
mkdir /usr/local/www/site.ru/
Создаем тестовую страницу PHPINFO
echo '<?php phpinfo(); ?>' >> /usr/local/www/site.ru/phpinfo.php
Перезапускаем nginx и php-fpm
/usr/local/etc/rc.d/nginx restart /usr/local/etc/rc.d/php-fpm restart
Проверяем работу PHP. Вводим
http://site.ru/phpinfo.php
Вместо site.ru адрес вашего сайта. Если все правильно, должны увидеть такую картинку
PHP в FreeBSD обладает ограниченной функциональностью, поэтому все дополнения ставим при помощи порта php5-extensions
cd /usr/ports/lang/php5-extensions make install clean; rehash
Возможные ошибки
1. Ошибка при сборке php из портов.
решение:
cd /usr/ports/devel/pcre make reinstall clean; rehash
после опять пробуем собрать php
cd /usr/ports/lang/php5 make install clean; rehash
2. No input file specified.
решение:
конфиг или разрешения на папку веб
Большое спасибо за статью, все очень подробно описано. Сейчас буду настраивать свой vps.