Установка LEMP stack (Linux, nginx, MySQL, PHP) на Debian 7
Debian, LEMP Stack, VPS | Комментировать запись
Что такое LEMP stack?
LEMP stack – это группа программ с открытым исходным кодом, которая позволяет установить и запустить виртуальный сервер. Данная группа, как и более традиционный LAMP stack, включает в себя Linux, MySQL и PHP, но заменяет Apache на Nginx (произносится как «engine x»).
Это руководство объясняет, как установить nginx, MySQL, PHP-fpm, а также все необходимые репозитоии. Кроме того, оно охватывает настройку php и nginx и создание страницы php info.
1: Обновление индексных файлов
Команда apt-get update используется для синхронизации индексных файлов пакетов с исходным кодом. В сочетании с командой apt-get upgrade она устанавливает последние доступные версии всех пакетов.
На данный момент нужно использовать только apt-get update:
sudo apt-get update
2: Установка MySQL
MySQL – это мощная система управления базами данных (или СУБД), которая используется для систематизации и хранения данных.
Для установки MySQL откройте терминал и наберите:
sudo apt-get install mysql-server
Во время установки MySQL попросит установить root-пароль. Не сделав этого сейчас, при установке программы, можно без труда установить такой пароль позже, развернув оболочку MySQL.
По завершении установки MySQL активируйте СУБД при помощи команды:
sudo mysql_install_db
В завершение запустите установочный скрипт MySQL:
sudo /usr/bin/mysql_secure_installation
Программа запросит текущий root-пароль. Введите его (или нажмите enter, если такого пароля нет):
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Теперь MySQL спросит, нужно ли изменить root-пароль. Чтобы продолжить без изменений, введите N. На остальные вопросы можно просто ответить Y (если нет оснований сделать иначе).
Готово! Теперь можно приступить к установке Nginx.
3: Установка и настройка Nginx
Установка
Начальную установку легко выполнить при помощи команды apt-get.
sudo apt-get install nginx
Кроме того, Nginx не запускается автоматически, потому нужно ввести команду запуска:
sudo service nginx start
Чтобы убедиться, что установка Nginx прошла успешно, попробуйте направить браузер на IP-адрес сервера.
Примечание: чтобы узнать IP-адрес виртуального выделенного сервера, запустите команду:
ifconfig eth0 | grep inet | awk '{ print $2 }'
Настройка
Откройте конфигурационный файл виртуального хоста по умолчанию:
sudo nano /etc/nginx/sites-available/default
Теперь внесите в конфигурации следующие изменения (их описание можно найти ниже):
Примечание: более новые версии системы создают каталог по имени «html» вместо каталога по умолчанию «www». Следовательно, если каталога usr/share/nginx/www не существует, нужный каталог, вероятно, называется html. В таком случае не забудьте соответствующим образом обновить конфигурации.
[...]
server {
listen 80;
root /usr/share/nginx/www;
index index.php index.html index.htm;
server_name example.com;
location / {
try_files $uri $uri/ /index.html;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/www;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
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;
}
}
[...]
Итак, внесенные в конфигурации изменения:
- добавляют index.php в строку index;
- заменяют значение строки server_name доменным именем или IP-адресом (замените example.com в примере своими днными);
- заменяют определенные строки в разделе location ~ \.php$ {.
Сохраните и закройте файл.
4: Установка и настройка PHP
Установка
Опять же, для установки PHP-FPM нужно использовать команду apt-get:
sudo apt-get install php5-fpm php5-mysql
Настройка
В настройки php нужно внести одну небольшую поправку. Откройте php.ini:
sudo nano /etc/php5/fpm/php.ini
Найдите строку cgi.fix_pathinfo=1 и измените ее значение на 0.
cgi.fix_pathinfo=0
Если оставить значение 1 как есть, интерпретатор php будет изменять путь и обрабатывать файлы, которые находятся рядом с запрашиваемым файлом, что представляет угрозу безопасности сервера. Если же его заменить на 0, интерпретатор будет обрабатывать только точный путь к файлу, что более безопасно. Сохраните изменения и закройте файл.
Теперь нужно внести небольшую поправку в конфигурации php5-fpm. Откройте файл www.conf:
sudo nano /etc/php5/fpm/pool.d/www.conf
Найдите строку listen = 127.0.0.1:9000 и замените 127.0.0.1:9000 на /var/run/php5-fpm.sock.
listen = /var/run/php5-fpm.sock
Сохраните изменения и закройте файл.
Перезапустите php-fpm:
sudo service php5-fpm restart
5: Создание страницы php info
Теперь, когда все компоненты LEMP stack установлены, можно просмотреть все подробности новых настроек php.
Для этого нужно создать новый файл:
sudo nano /usr/share/nginx/www/info.php
Теперь внесите в него следующий код:
<?php
phpinfo();
?>
Сохраните и закройте файл.
В завершение нужно перезапустить nginx:
sudo service nginx restart
Чтобы видеть подробности настроек nginx и php-fpm, посетите http://ipaddress/info.php
Готово! Теперь LEMP stack установлен на сервер, настроен и полностью готов к работе.
Tags: Debian 7, LEMP Stack, Linux, MySQL, NGINX, PHP, VPS