• Пн. Окт 7th, 2024

WebOFF.ru

Ilias Martys

[Unx] Установка Nginx и PHP5-FPM на Ubuntu

Автор:Ilias Martys

Фев 24, 2014

После покупки VPS на DigitalOcean.com мне пришлось изучать Ubuntu (Linux). Так как у меня все же был не большой опыт администрирования Linux серверов, то обучение пошло быстро и с удовольствием.

Установка пакетов

Первым делом обновляем все репозитории и дистрибутивы:

sudo apt-get update
sudo apt-get upgrade

Для упрощения манипуляций ставим Midnight Commander, да и mcedit мне нравится куда больше.

sudo apt-get install mc

И на конец приступаем к установке и настройке  Nginx:

sudo apt-get install nginx -y

Ставим PHP5-FPM:

sudo apt-get install php5-cli php5-common php5-mysql php5-suhosin php5-gd php5-fpm php5-cgi php5-fpm php-pear php5-mcrypt

на этом установки заканчиваются, приступаем к настройкам.

Настройка PHP-FPM

Прежде всего, следует открыть файл /etc/php5/fpm/php.ini в mcedit редакторе:

sudo mcedit /etc/php5/fpm/php.ini

найти в нем строчку

;cgi.fix_pathinfo = 1

и привести её к виду

cgi.fix_pathinfo = 0

Затем проверяем файл /etc/php5/fpm/pool.d/www.conf

sudo mcedit /etc/php5/fpm/pool.d/www.conf

на наличие и правильность строк

  1. security.limit_extensions = .php .php3 .php4 .php5
  2. listen = /var/run/php5-fpm.sock

Настройка Nginx

Основные настройки Nginx хранятся в файле /etc/nginx/nginx.conf. Настройки сайтов хранятся в файлах конфигураций в папке /etc/nginx/sites-available/. Имя файла конфигурации может быть произвольным, у меня они равны доменным именам (например для weboff.ru у меня файл /etc/nginx/sites-available/weboff.ru)

Пример моего файла конфигурации для домена weboff.ru

server {
# Определяем порт который будет слушать Nginx
# default_server устанавливается только
# для основного сайта
listen 80 default_server;

# Пути к папке сайта и логам
root /var/www/weboff.ru/public_html;
error_log /var/www/weboff.ru/log/error.log info;
access_log /var/www/weboff.ru/log/access.log;

# Наши домены
server_name weboff.ru www.weboff.ru;

index index.php index.html index.htm;

# максимальный размер загружаемого файла
client_max_body_size 100m;

# Описание главное директории, стандартно для всех.
location / {
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?q=$uri&$args;
}

# Объявление своей страницы 404
error_page 404 /404/index.html;

# запрет .htaccess
# Nginx принципиально не хочет с ним работать
# из соображения быстродействия
location ~ /\.ht {
deny all;
return 404; #Вернуть код ошибки 404
}

location ~ «\..*/.*\.php$» {
return 404;
}

#Передача обработки phph нашему PHP5-FPM
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

# Основная часть конфигурации сайта закончена

# Часть конфигурации поддомена
# собственно в нем все тоже самое
server {
listen 80;
server_name subdomain.weboff.ru;

location / {
root /var/www/weboff.ru/public_html/subdomain/;
index index.html;
}

access_log /var/www/weboff.ru/log/access.log;
error_log /var/www/weboff.ru/log/error.log;
}

Создаем папки для сайта

sudo mkdir /var/www/weboff.ru/public_html
sudo mkdir /var/www/weboff.ru/public_html/subdomain
sudo mkdir /var/www/weboff.ru/log

Установим права доступа на папки, для WordPress будет так

chown www-data /var/www -R
find /var/www -type d -exec chmod 755 {} \;
find /var/www -type d -name ‘wp-content’ -exec chmod 777 -R {} \;
find /var/www -type f -exec chmod 644 {} \;

Чтобы включить наш сайт, необходимо создать ссылку файла конфигурации в папке /etc/nginx/sites-enabled/

ln -s /etc/nginx/sites-available/weboff.ru /etc/nginx/sites-enabled/weboff.ru

Перезапускаем сервисы, для активизации настроек

sudo service nginx restart
sudo service php5-fpm restart

Если все сделано правильно, то сайт должен заработать.

У меня, для упрощения создания конфигураций сайтов и папок написан скрипт, в который вводится только имя домена и он сам создает все папки, конфиги и если нужно, то и базу данных mysql. Желающим могу скинуть скрипт на электронку.

Добавить комментарий