Site icon 8HOST.COM

Установка LEMP stack (Linux, nginx, MySQL, PHP) на Debian 7

Что такое 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;
}
}
[...]

Итак, внесенные в конфигурации изменения:

Сохраните и закройте файл.

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 установлен на сервер, настроен и полностью готов к работе.