Возникла задача - установить на FreeBSD веб-сервер Nginx с поддержкой PHP. Задача не так и сложна, о чем и расскажем ниже.

Установка NginX

Перейдем в нужный нам каталог в портах:

cd /usr/ports/www/nginx

Конфигурируем.

make config

Учтите, что эти модули нам нужно поставить, остальные - по желанию:

1
2
3
4
 HTTP_MODULE
 HTTP_PERL_MODULE
 HTTP_REWRITE_MODULE
 HTTP_STATUS_MODULE

Далее установка nginx:

make install clean

Установка PHP

Переходим в портах в нужное место:

cd /usr/ports/lang/php5

Далее конфигурируем:

make config

Я советую указать следующие опции:

1
2
3
4
5
6
 CLI        Build CLI version                                
 CGI        Build CGI version                                               
 REDIRECT   Enable force-cgi-redirect support (CGI only)     
 DISCARD    Enable discard-path support (CGI only)           
 FASTCGI    Enable fastcgi support (CGI only)           
 PATHINFO   Enable path-info-check support (CGI only)

И дальше уже установка PHP:

make install clean

Установка Spawn-FCGI

Nginx, к сожалению (или к счастью), в настоящее время не может сам обрабатывать скрипты PHP. Поэтому мы установим обработчик spawn-fcgi, который присутствует в lighttpd. Итак, идем в нужную директорию:

cd /usr/ports/www/lighttpd

Конфигурируем, не забывая убрать всё, кроме spawn-fcgi:

make config

И установка spawn-fcgi:

make install

Давайте убедимся, что нужный файлы созданы:

find /usr -type f -name “spawn-fcgi”

Вы должны увидеть это:

1
2
 /usr/local/bin/spawn-fcgi
 /usr/local/etc/rc.d/spawn-fcgi

Если нет - значит установка не прошла корректно. Если да - самое время устроить тест!

Запуск и проверка

Переходим:

cd /usr/local/www/nginx/

Создаем файл index.php со следующим содержимым:

1
 <? phpinfo(); ?>

Этот код нам просто покажет страницу с информацией об установленном PHP.

Но, чтобы это произошло, надо немного подправить конфигурацию nginx и запустить его. Итак, правим файл /usr/local/etc/nginx/nginx.conf. Для примера можно взять этот конфиг nginx:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 user nobody;
 worker_processes  1;
 events {
     worker_connections  1024;
 }
 http {
 include       mime.types;
 default_type  application/octet-stream;
 sendfile        on;
 keepalive_timeout  65;
 gzip  on;
 server {
        listen       10.0.0.5:80; #укажите IP вашего сервера
        server_name domain; #укажите ваш домен
        root /usr/local/www/nginx;
        index index.php index.html;
        try_files $uri $uri/ /index.php;
        location ~ \.php$ {
        include        fastcgi_params;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                        }
        }
 }

И теперь нам надо запустить spawn_fcgi и nginx. Идем в файл /etc/rc.conf и добавляем следующую строку:

spawn_fcgi_enable=“YES”

И проверяем spawn_fcgi, запустив его следующей командой:

/usr/local/etc/rc.d/spawn-fcgi start

Вы должны увидеть нечто подобное:

1
2
Starting spawn_fcgi.
spawn-fcgi: child spawned successfully: PID: 53748

Теперь снова идем в /etc/rc.conf и добавляем еще одну строку:

nginx_enable=“YES”

И теперь стартуем Nginx:

/usr/local/etc/rc.d/nginx start

Все, вы можете перейти на страницу по имени своего домена и увидеть информацию о PHP, как на рисунке выше.


См. так же: