cd /usr/ports
Ищем nginx:
make search name=nginx
В результатах находим нужный пакет (в нашем случае nginx-0.8.54) и переходим в его каталог:
cd /usr/ports/www/nginx
Компилируем его. Параметры выбираем под свои нужды. Можно просто оставить все по-умолчанию:
make
Устанавливаем:
make install
Настраиваем nginx конфиг:
ee /usr/local/etc/nginx/nginx.conf
Настройки приводить не буду — все очень специфично. Приведу лишь блок server:
server {
listen 80;
server_name example.com;
root /home/example/public_html;
location / {
index index.php index.html;
if (-f $request_filename) {
expires max;
break;
}
if (!-e $request_filename) {
rewrite ^(.+)$ index.php last;
}
}
location ~ .php$ {
include fastcgi_params;
fastcgi_connect_timeout 60;
fastcgi_read_timeout 300;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/example/public_html/$fastcgi_script_name;
}
}
В приведенном примере мы перенаправляем все запросы, которые не ведут на существующие файлы на скрипт index.php. А он в свою очередь обрабатывается PHP, запущенном в режиме CGI на нашем сервере на порту 9000.
Теперь для того, чтобы сервер nginx заработал во FreeBSD, его нужно разрешить в файле /etc/rc.conf. Открываем ee /etc/rc.conf и дописываем строчку:
nginx_enable=»YES»
И запускаем nginx командой:
service nginx start
В дальнейшем, для управления работой серверов можно использовать команду service. Самые распространенные собыимя: start, restart, stop, reload.
После запуска nginx при заходе через браузер на IP сервера мы увидим «Welcome to nginx» — это хорошие новости. Сервер работает, но у него нет интерпритатора PHP для обработки запросов.
Ставим PHP. Переход в /usr/ports:
cd /usr/ports
Ищем PHP:
make search name=php
Находим нужный порт и преходим в него:
cd /usr/ports/lang/php5
Компилируем. В настройках выбираем обе версии CLI и CGI, а также FPM — он позволит нам запускать PHP в CGI режиме без лишних программ.
make
После сборки устанавливаем:
make install
Затем идем в директорию расширений PHP и устанавливаем их. П списке ставим крестики напротив нужных:
cd /usr/ports/lang/php5-extensions
make
make install
Сразу рекомендую поставить memcached:
cd /usr/ports/databases/memcached
make
make install
И для того, чтобы он работал с php, ставим расшиерние:
cd /usr/ports/databases/pecl-memcached
make
make install
Также сразу поставим APC — систему кэширования PHP скриптов:
cd /usr/ports/www/pecl-APC
make
make install
Теперь в /etc/rc.conf нужно дописать 2 строчки. Он разрешат запуск PHP и Memcached:
php_fpm_enable=»YES»
memcached_enable=»YES»
И запускаем их поочереди:
service memcached start
service php-fpm start
Проверить работоспособность PHP можно, разместив в каталоге nginx сервера файл index.php с любым проверочным кодом. Если вы не правили конфиг nginx.conf, то этот каталог имеет путь /usr/local/www/nginx.
Ну и напоследок можно поставить MySQL сервер.
cd /usr/ports/databases/mysql55-server
make
make install
В /etc/rc.conf разрешаем mysql:
mysql_enable=»YES»
Запускаем:
service mysql-server start
service mysql-server start
После установки у вас будет работающий веб-сервер, настроенный в основном по-умолчанию.