оригинал был взят отсюда howitmake.ru
Лично я, стараюсь использовать именно LTS дистрибутивы, основная причина моей любви к ним – придонная лень, все дело в том что если возится с этим дома, настраиваешь, потом перенастраиваешь, затем слегка допиливаешь, а потом все это сносишь и делаешь как нужно, то это интересно, но когда ты работаешь в крупной сети, то на такие эксперименты, обычно, нет времени т.к. других задач припасено на пару недель вперед. В общем, все интересно делать самому, пока это не дошло до промышленных масштабов, а вот когда ты к ним пришел, то уже стараюсь максимально упростить и автоматизировать работу. Но все это лирика, переходим к практике.
Как всегда: Предполагается что операционная система у вас уже установлена, сеть настроена, интернет шустрый, провайдер не жадный (качать будем много)…
Учтя все предыдущие недостатки, мы будем ставить, все из репозиториев, собирать в ручную мы ничего не будем.
Поднимем права до root:
sudo su
Добавим туда, официальное зеркало Nginx, то в каком виде представлен данный пакет, отражает видение его разработчиков:
Теперь нам нужно скачать GPG ключ:
Установим GPG ключ:
Обновим список пакетов:
Установим Nginx:
Нам необходимо устранить уязвимость PHP:
Находим строку:
Приводим ее к виду:
Сохраняем изменения и перезапустим PHP-FPM:
При создании пользователя, отключим ему доступ к шеллу, так безопаснее.
Также, при создании пользователя, мы завели одноименную группу example, она нам также пригодится.
Придумаем для пользователя example пароль:
Создадим необходимые, для работы WEB сайта, директории:
Предоставляем пользователю example права на них:
Предоставим Nginx доступ в домашнюю директорию пользователя example, добавив пользователя www-data в группу example
С содержимым:
(Здесь я привожу только базовые настройки, чтобы работало, если нужно добавить что-то дополнительно, то вы сделаете это сами, исходя из ваших задач )
Обращаю внимание!
Все виртуальные хосты должны иметь в названии расширение .conf, иначе виртуальный хост не будет загружен. Чтобы это исправить, можно зайти в:
найти строку:
и привести к такому виду, с каким вы привыкли работать или тем что вам удобнее, лично я рекомендую оставлять все как есть!
Создадим тестовый файл, чтобы проверить работоспособность PHP5:
С содержимым:
Перезапустим Nginx, чтобы изменения вступили в силу:
Переходим по тестовому адресу httр://example.org/test.php
Получаем то, что написано на экране, нас интересует строка Server API ( на скриншоте подчеркнуто красным) там указывается, кто у нас обрабатывает скрипты PHP.
Наш сервер уже работоспособен, осталось добавить сопутствующие приложения MySQL и memcached
Придумываем пароль для пользователя root (Администратор сервера баз данных)
Для применения изменений перезапустим PHP-FPM
Чтобы удостовериться, что модуль установился и работоспособен, снова переходим по адресу httр://example.org/test.php
Находим пункт memcached
Также, для закачки файлов вам потребуется установить FTP сервер, о способах его настройки можно прочить в опубликованной ранее статье – Настройка FTP сервера vsFTPd, статья актуальна до сих пор, по этому, я не вижу смысла ее обновлять.
Теперь наш сервер полностью упакован, у нас получилась отличная заготовка, которая будет обновиться из основных репозиториев. Также нам не пришлось ничего собирать руками, от вас теперь только требуется расширять функционал, исходя из тех задач, которые перед вами ставятся…
Ну и как всегда, обо всех найденных ошибках, а также предложениях по улучшению функционала, да и просто вопросов, прошу в комментарии.
Как всегда: Предполагается что операционная система у вас уже установлена, сеть настроена, интернет шустрый, провайдер не жадный (качать будем много)…
Учтя все предыдущие недостатки, мы будем ставить, все из репозиториев, собирать в ручную мы ничего не будем.
Поднимем права до root:
sudo su
Установка Nginx
Для начала добавим репозиторий проекта Nginx:nano /etc/apt/sources.list
Добавим туда, официальное зеркало Nginx, то в каком виде представлен данный пакет, отражает видение его разработчиков:
deb http://nginx.org/packages/ubuntu/ precise nginx
deb-src http://nginx.org/packages/ubuntu/ precise nginx
Теперь нам нужно скачать GPG ключ:
wget http://nginx.org/keys/nginx_signing.key
Установим GPG ключ:
apt-key add nginx_signing.key
Обновим список пакетов:
aptitude update
Установим Nginx:
aptitude install nginx
Установка PHP-FPM:
aptitude install php5-cli php5-common php5-mysql php5-suhosin php5-gd php5-fpm php5-cgi php5-fpm php-pear php5-mcrypt -y
Нам необходимо устранить уязвимость PHP:
nano /etc/php5/fpm/php.ini
Находим строку:
;cgi.fix_pathinfo = 1
Приводим ее к виду:
cgi.fix_pathinfo = 0
Сохраняем изменения и перезапустим PHP-FPM:
/etc/init.d/php5-fpm restart
Создадим пользователя для работы с виртуальным хостом
Чтобы не заморачиваться, назовем его example:При создании пользователя, отключим ему доступ к шеллу, так безопаснее.
useradd example -b /home/ -m -U -s /bin/false
Также, при создании пользователя, мы завели одноименную группу example, она нам также пригодится.
Придумаем для пользователя example пароль:
passwd example
Создадим необходимые, для работы WEB сайта, директории:
mkdir -p -m 755 /home/example/www
mkdir -p -m 754 /home/example/logs
Предоставляем пользователю example права на них:
chown -R example: /home/example/www/
chown -R example: /home/example/logs/
Предоставим Nginx доступ в домашнюю директорию пользователя example, добавив пользователя www-data в группу example
usermod -a -G example www-data
Создадим виртуальный хост Nginx
Настаиваем первый виртуальный хост Nginx, назовем его example.orgnano /etc/nginx/conf.d/example.org.conf
С содержимым:
(Здесь я привожу только базовые настройки, чтобы работало, если нужно добавить что-то дополнительно, то вы сделаете это сами, исходя из ваших задач )
server {
listen 80;
root /home/example/www;
access_log /home/example/logs/nginx.access.log; #расположение логов данного хоста
server_name example.org www.example.org;
location / {
index index.php index.html index.htm;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Обращаю внимание!
Все виртуальные хосты должны иметь в названии расширение .conf, иначе виртуальный хост не будет загружен. Чтобы это исправить, можно зайти в:
nano /etc/nginx/nginx.conf
найти строку:
include /etc/nginx/conf.d/*.conf;
и привести к такому виду, с каким вы привыкли работать или тем что вам удобнее, лично я рекомендую оставлять все как есть!
Создадим тестовый файл, чтобы проверить работоспособность PHP5:
nano /home/example/www/test.php
С содержимым:
<?php
phpinfo();
?>
Перезапустим Nginx, чтобы изменения вступили в силу:
/etc/init.d/nginx restart
Переходим по тестовому адресу httр://example.org/test.php
Получаем то, что написано на экране, нас интересует строка Server API ( на скриншоте подчеркнуто красным) там указывается, кто у нас обрабатывает скрипты PHP.
Наш сервер уже работоспособен, осталось добавить сопутствующие приложения MySQL и memcached
Устанавливаем MySQL
aptitude install mysql-server mysql-client mysql-common
Придумываем пароль для пользователя root (Администратор сервера баз данных)
Установка Memcached
aptitude install memcached php5-memcached
Для применения изменений перезапустим PHP-FPM
/etc/init.d/php5-fpm restart
Чтобы удостовериться, что модуль установился и работоспособен, снова переходим по адресу httр://example.org/test.php
Находим пункт memcached
Также, для закачки файлов вам потребуется установить FTP сервер, о способах его настройки можно прочить в опубликованной ранее статье – Настройка FTP сервера vsFTPd, статья актуальна до сих пор, по этому, я не вижу смысла ее обновлять.
Теперь наш сервер полностью упакован, у нас получилась отличная заготовка, которая будет обновиться из основных репозиториев. Также нам не пришлось ничего собирать руками, от вас теперь только требуется расширять функционал, исходя из тех задач, которые перед вами ставятся…
Ну и как всегда, обо всех найденных ошибках, а также предложениях по улучшению функционала, да и просто вопросов, прошу в комментарии.
Комментариев нет:
Отправить комментарий