Студия Моск
сайты, которые работают

Настройка NGINX + PHP (php-fpm) на FreeBSD

Мои данные

 


FreeBSD уже должна быть установлена, а также настроена сеть.

Заходим под суперпользователем.

su

Настраиваем корректный часовой пояс и синхронизируем время. Обновляем порты. Создаем задание для автоматической синхронизации времени.

  • cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime; ntpdate 0.freebsd.pool.ntp.org
  • portsnap fetch && portsnap extract
  • echo '0 0 * * * /usr/sbin/ntpdate 0.freebsd.pool.ntp.org' >> /var/cron/tabs/crontab && crontab /var/cron/tabs/crontab

Устанавливаем NGINX.

  • cd /usr/ports/www/nginx && make config-recursive && make install clean; rehash
  • echo 'nginx_enable="YES"' >> /etc/rc.conf

Устанавливаем интерпретатор PHP -> выбираем дополнительную опцию «FPM».

  • cd /usr/ports/lang/php5 && make config-recursive && make install clean

Устанавливаем расширения для PHP.

  • cd /usr/ports/lang/php5-extensions && make config-recursive && make config-recursive && make install clean
  • echo 'php_fpm_enable="YES"' >> /etc/rc.conf

 Редактируем конфигурационный файл.

  • cd /usr/local/etc/nginx && ee nginx.conf
  1. client_max_body_size 128M;
  2. include vhosts/*.conf;

[1] разрешаем передачу файлов до 128Мб, [2] подключаем все файлы, которые находятся в каталоге vhosts (в нем будут все виртуальные домены).

Создаем каталог vhosts и в нем — первый файл для первого виртуального домена, например site.local

  • mkdir vhosts && ee vhosts/site.local.conf
  1. server {
  2.     listen       80;
  3.     server_name  site.local;
  4.  
  5.     location / {
  6.         root /usr/local/www/site;
  7.         index index.php;
  8.     }
  9.  
  10.     location ~ \.php$ {
  11.         fastcgi_pass 127.0.0.1:9000;
  12.         fastcgi_index index.php;
  13.         fastcgi_param SCRIPT_FILENAME /usr/local/www/site$fastcgi_script_name;
  14.         include fastcgi_params;
  15.         fastcgi_param DOCUMENT_ROOT /usr/local/www/site;
  16.     }
  17.  
  18.     location ~* ^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|docx|xls|xlsx|exe|pdf|ppt|tar|wav|bmp|rtf|js)$ {
  19.         root   /usr/local/www/site;
  20.     }
  21. }

[2-3] настраиваем nginx для работы на 80 порту, домен сайта — site.local, [5-8] файлы сайта размещаются в каталоге /usr/local/www/site, скрипт по умолчанию index.php, [10-16] обработка скриптов передается локальному серверу на порту 9000 (это php-fpm), тут же настраиваются параметры php-fpm, [18-20] статические данные отдает сам nginx.

Создаем файл index.php в корневом каталоге сайта и добавляем в него функцию phpinfo для проверки работоспособности сервера.  Запускаем сервер.

  • echo '<?php phpinfo(); ?>' > /usr/local/www/site/index.php
  • service php-fpm start && service nginx star

Автор:
Дмитрий Моск
Прочитано
прочитано
930
Поделиться ссылкой

Другие статьи

Как перенести сайт на другой хостинг

Поиск битых ссылок по sitemap

Зачем нужна CMS

Ошибки HTML-верстки

Как сделать быстрый сайт

Медленно открываются страницы в Интернете

Создание сервера IRC на FreeBSD

Быстрый веб-сервер с NGINX + PHP

Сколько стоит сделать сайт

Нужен совет? Пишите — это бесплатно: