Настройка сервера Ubuntu 12.04, 13.10 + Nginx + PHP 5 + PHP-FPM + MySQL 5
Первым делом проверяем время:
date
Оно выставлено не по Москве. Корректируем:
dpkg-reconfigure tzdata
Обновляем репозитории, чтобы далее устанавливать софт из них:
apt-get update
При желании можно сразу обновить уже установленный софт:
apt-get upgrade
Устанавливаем нужный нам hostname для нашего сервера:
hostname server1.text.ru
Ставим ntp для синхронизации времени (он может быть уже поставлен - это не проблема):
apt-get install ntp ntpdate
Ставим файловый менеджер Midnight Commander:
apt-get install mc
Если вы подключаетесь из Windows через putty, то не забудьте в настройках соединения в секции Translation установить кодировку utf-8, иначе будут проблемы с отображением mc
Теперь начинаем ставить все что нужно для веб сервера
apt-get install nginx
apt-get install mysql-server
apt-get install php5-fpm
apt-get install php5-cli
apt-get install php5-mysql
apt-get install php5-gd
apt-get install php-apc
apt-get install php5-curl
Все установлено. Далее настройка. Подразумевается, что нам нужно развернуть 1 сайт.
Создаем пользователя:
adduser name
Вместо name - имя пользователя. Попросят ввести пароль и другую необязательную информацию.
Настраиваем пул php-fpm для того, чтобы сайт работал на отдельном порту и запускал все php скрипты от имени пользователя name.
cd /etc/php5/fpm/pool.d
Копируем файл www.conf с именем name.conf и редактируем его под свои нужды. Минимальное содержимое:
[gos]
user = gos
group = gos
listen = 127.0.0.1:9001
pm = dynamic
pm.max_children = 10
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 6
chdir = /
Далее настраиваем nginx для работы с нашим пулом php-fpm и сайтом. Сайт мы разместим в каталоге пользователя: /home/name/domains/name.ru/www
cd /etc/nginx/sites-available
Копируем default с именем gos и редактируем его под свои нужды. Минимальное содержимое:
server {
listen 80;root /home/name/domains/name.ru/www;
index index.php index.html index.htm;server_name name.ru;
location / {
try_files $uri $uri/ /index.php;
}location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
include fastcgi_params;
}
}
Обратите внимание на порт в fastcgi_pass. Он должен совпадать с тем, что указали в пуле php5-fpm
Также можно сразу вписать в секцию http файла nginx.conf строку:
client_max_body_size 256m;
Она повысит лимит при загрузке файлов до 256Мб.
Для активации сайта делаем сиволическую ссылку с созданного файла name в каталог /etc/nginx/sites-enabled с тем же именем. Тут все просто: создали сайт в available, включаем его, делая симлинк в enabled
Можно также донастроить php.
cd /etc/php5/fpm/
Редактируем php.ini
Из полезного стоит обратить внимание на директивы:
date.timezone = "Europe/Moscow" - выставляем временную зону для России
post_max_size = 256M - максимальный размер данных POST
upload_max_filesize = 256M - максимальный размер загружаемого файла
memory_limit = 512M - лимит памяти
display_errors = Off - выключаем вывод ошибок
Теперь можно перезапустить php5-fpm и nginx:
service php5-fpm restart
service nginx restart
Как видно, сервер на Ubuntu настраивать гораздо быстрее чем на FreeBSD. Также его легче поддерживать и доустанавливать ПО с помощью команды:
apt-get install имя_пакета
Ubuntu доступна практически везде, самое главное на облачных серверах Amazon, Clodo, где про FreeBSD совсем позабыли. У нас в студии на Ubuntu работают сервера для проектов клиентов, dev сервер, dns серверы в амазоне, 6-7 выделенных серверов клиентов. Размещение в Hetzner, Amazon, Clodo. Но в итоге проблемы чаще возникают с Ubuntu, чем с нашим стареньким сервером на FreeBSD в Hetzner. Он под бешеной нагрузкой по трафику и на диск работает уже червертый год без перезагрузки. А на Ubuntu в Hetzner сервера бывают просто виснуть начинают. Дело может и не в ОС, а в дешевом железе.
Но удобство берет свое. Ubuntu гораздо легче и быстрее деплоить.