Статья будет построена по модульному типу т.е. будет базовая часть, которую необходимо выполнить на 100% и несколько дополнительных, использовать которые или нет, каждый решает для себя сам , но в случае если они будут пропущены, то на работоспособность это влиять не будет, но будут отсутствовать некоторые, весьма полезные функции.
Предполагается что ОС установлена.
Переходим в режим суперпользователя (root):
Редактируем список репозиториев:
Добавляем в него следующие адреса серверов:
Теперь нам необходимо добавить GPG ключи репозиториев в систему:
Для справки: Почему выбраны именно эти репозитории?
Ответ: В dotdeb.org лежит пакет PHP-FPM, там еще есть пакет Nginx, но его работа мне не понравилась(глючит).
ftp.debian.org.ua лежит нормально собранный Nginx.
Обновляем список пакетов и всю систему:
Находим строку:
Снимаем с нее комментарий, чтобы выглядело:
Если этого не сделать, то любой желающий, залив на сервере файл, под видом картинки, может выполнять его как скрипт, со всеми вытекающими последствиями.
Остальные настройки работы PHP-FPM находятся по пути /etc/php5/fpm/pool.d/www.comf которые необходимо изменить в соответствии с наличием системных ресурсов. Описать все варианты довольно сложно и зачастую, необходимо подбирать эксперементальным путем. (хотя рекомендаций в сети хватает, даже на сайтах хостеров)
(На момент написания, там лежала версия Nginx 1.0.10-1)
Создадим первый виртуальны хост, назовем его example.org
Конфигурационный файл виртуального хоста работоспособен, но если необходимы дополнительные функции, например для обработки PHP-FPM их всегда можно добавить, за одно узнаете, за что отвечает каждая функция.
Создадим символическую ссылку:
Создаем нового пользователя:
Добавим ему пароль:
Создадим необходимые директории:
Предоставляем пользователю example права на них:
Предоставим Nginx доступ в домашнюю директорию пользователя example, добавив пользователя www-data в группу example
Создадим тестовый файл:
С содержимым:
Теперь, нам необходимо перезагрузить Nginx:
Переходим по тестовому адресу httр://example.org/test.php
Получаем то что написано на экране, нас интересует строка Server API ( на скриншоте обведено красным) там указывается, кто у нас обрабатывает скрипты PHP.
На этом основную часть можно завершить. Если дойти до этого места, то сервер уже будет работоспособен!
Но ему можно добавить, немного дополнительных функций.
После завершения установки, необходимо перезапутить PHP-FPM
Для того чтобы удостовериться в подключении модуля, переходим по адресу httр://example.org/test.php
Находим пункт:
необходимо перезапутить PHP-FPM
Для того чтобы удостовериться в подключении модуля, переходим по адресу httр://example.org/test.php
находим пункт memcached, как на скриншоте ниже:
Управление приложениями:
Весьма полезно будет иметь доступ по FTP, для закачки файлов, о том как это сделать, рекомендую посмотреть статью- Настройка FTP сервера vsFTPd
Ну и для самых внимательных, кто все это дочитал до конца.
Выкладываю скрипт полностью автоматической настройки сервера, данный скрипт делает то что я написал в статье, от вас требуется только создание пользователя в системе, создать директории для виртуального хоста ну и создать сам виртуальный хост в Nginx.
Для тех кто плохо понимает, что происходит, но воспользуется данной наработкой: для начала попробуйте сделать все это руками, тогда вы хоть немного начнете понимать как это работает и где находятся настройки компонентов системы, без этих знаний вы будите тыкаться как слепые котята, не понимая сути происходящего!
Ну и последнее, обязательно почитайте документацию, там все подробно описано, найдите немного времени для ознакомления, там нет ничего сверх-сложного, зато вы будите знать какой параметр, за что отвечает, а это, в случае возникновения проблем, позволит быстро устранить сбой, не тратя время на задавание вопросов на форумах, когда уже все упало, то каждая минута простоя имеет свою цену…
Предполагается что ОС установлена.
Установка основных приложений (Nginx,php-fpm,mysql)
Подключаем репозитории Nginx и php-fpmПереходим в режим суперпользователя (root):
su
Редактируем список репозиториев:
nano /etc/apt/sources.list
Добавляем в него следующие адреса серверов:
deb http://packages.dotdeb.org squeeze all
deb http://ftp.debian.org.ua/debian-dou/ squeeze main
Теперь нам необходимо добавить GPG ключи репозиториев в систему:
wget -q http://www.dotdeb.org/dotdeb.gpg -O- | apt-key add -
wget -q http://ftp.debian.org.ua/debian-dou/archive.key -O- | apt-key add -
Для справки: Почему выбраны именно эти репозитории?
Ответ: В dotdeb.org лежит пакет PHP-FPM, там еще есть пакет Nginx, но его работа мне не понравилась(глючит).
ftp.debian.org.ua лежит нормально собранный Nginx.
Обновляем список пакетов и всю систему:
aptitude update && aptitude upgrade
Устанавливаем 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
В данный момент существует уязвимость, что любой пользователь может загрузить на сервер файл и выполнить его с правами под которыми работает PHP, чтобы это исправить, необходимо отредактировать php.ininano /etc/php5/fpm/php.ini
Находим строку:
;cgi.fix_pathinfo = 1
Снимаем с нее комментарий, чтобы выглядело:
cgi.fix_pathinfo = 0
Если этого не сделать, то любой желающий, залив на сервере файл, под видом картинки, может выполнять его как скрипт, со всеми вытекающими последствиями.
Остальные настройки работы PHP-FPM находятся по пути /etc/php5/fpm/pool.d/www.comf которые необходимо изменить в соответствии с наличием системных ресурсов. Описать все варианты довольно сложно и зачастую, необходимо подбирать эксперементальным путем. (хотя рекомендаций в сети хватает, даже на сайтах хостеров)
Устанавливаем Nginx:
aptitude install nginx -y
(На момент написания, там лежала версия Nginx 1.0.10-1)
Создадим первый виртуальны хост, назовем его example.org
nano /etc/nginx/sites-available/example.org
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;
}
}
Конфигурационный файл виртуального хоста работоспособен, но если необходимы дополнительные функции, например для обработки PHP-FPM их всегда можно добавить, за одно узнаете, за что отвечает каждая функция.
Создадим символическую ссылку:
ln -s /etc/nginx/sites-available/example.org /etc/nginx/sites-enabled/
Создаем нового пользователя:
useradd example -b /home/ -m -U
Добавим ему пароль:
passwd example
Создадим необходимые директории:
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
Создадим тестовый файл:
nano /home/example/www/test.php
С содержимым:
<?php
phpinfo();
?>
Теперь, нам необходимо перезагрузить Nginx:
/etc/init.d/nginx restart
Переходим по тестовому адресу httр://example.org/test.php
Получаем то что написано на экране, нас интересует строка Server API ( на скриншоте обведено красным) там указывается, кто у нас обрабатывает скрипты PHP.
Устанавливаем MySQL
Установим необходимые пакеты:aptitude install mysql-server mysql-client mysql-common libmysqlclient18
На этом основную часть можно завершить. Если дойти до этого места, то сервер уже будет работоспособен!
Но ему можно добавить, немного дополнительных функций.
Установка Xcache
aptitude install php5-xcache -y
После завершения установки, необходимо перезапутить PHP-FPM
/etc/init.d/php5-fpm restart
Для того чтобы удостовериться в подключении модуля, переходим по адресу httр://example.org/test.php
Находим пункт:
Установка Memcached
aptitude install memcached php5-memcached
необходимо перезапутить PHP-FPM
/etc/init.d/php5-fpm restart
Для того чтобы удостовериться в подключении модуля, переходим по адресу httр://example.org/test.php
находим пункт memcached, как на скриншоте ниже:
Управление приложениями:
/etc/init.d/nginx stop | start| restart
/etc/init.d/php5-fpm stop | start| restart
/etc/init.d/mysql stop | start| restart
/etc/init.d/memcached stop | start| restart
Весьма полезно будет иметь доступ по FTP, для закачки файлов, о том как это сделать, рекомендую посмотреть статью- Настройка FTP сервера vsFTPd
Ну и для самых внимательных, кто все это дочитал до конца.
Выкладываю скрипт полностью автоматической настройки сервера, данный скрипт делает то что я написал в статье, от вас требуется только создание пользователя в системе, создать директории для виртуального хоста ну и создать сам виртуальный хост в Nginx.
Для тех кто плохо понимает, что происходит, но воспользуется данной наработкой: для начала попробуйте сделать все это руками, тогда вы хоть немного начнете понимать как это работает и где находятся настройки компонентов системы, без этих знаний вы будите тыкаться как слепые котята, не понимая сути происходящего!
Ну и последнее, обязательно почитайте документацию, там все подробно описано, найдите немного времени для ознакомления, там нет ничего сверх-сложного, зато вы будите знать какой параметр, за что отвечает, а это, в случае возникновения проблем, позволит быстро устранить сбой, не тратя время на задавание вопросов на форумах, когда уже все упало, то каждая минута простоя имеет свою цену…
#!/bin/sh
echo "Automatic installation will start in 3 seconds"
sleep 3
echo "deb http://ftp.debian.org.ua/debian-dou/ squeeze main" >> /etc/apt/sources.list
wget -q http://ftp.debian.org.ua/debian-dou/archive.key -O- | apt-key add -
echo "deb http://packages.dotdeb.org squeeze all" >> /etc/apt/sources.list
wget -q http://www.dotdeb.org/dotdeb.gpg -O- | apt-key add -
echo "Update OS"
sleep 1
aptitude update && aptitude upgrade -y
echo "Install PHP-FPM"
sleep 1
aptitude install php5-cli php5-common php5-mysql php5-suhosin php5-gd php5-fpm php5-cgi php5-fpm php5-cgi php-pear php5-xcache php5-memcached -y
echo "cgi.fix_pathinfo = 0" >> /etc/php5/fpm/php.ini
echo "Install Nginx"
sleep 1
aptitude install nginx -y/etc/init.d/nginx start/etc/init.d/php5-fpm start
aptitude install mysql-server mysql-client mysql-common libmysqlclient18 memcached/etc/init.d/nginx restart/etc/init.d/php5-fpm restart/etc/init.d/mysql restart/etc/init.d/memcached restart
echo "Clearing downloaded packages after install!"
rm /var/cache/apt/archives/*.deb -f
Комментариев нет:
Отправить комментарий