Продолжаю знакомство с 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.