После покупки 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
на наличие и правильность строк
- security.limit_extensions = .php .php3 .php4 .php5
- 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. Желающим могу скинуть скрипт на электронку.