Установка Linux, nginx, MySQL, PHP (LEMP stack) на сервер Ubuntu 12.04

Published by Leave your thoughts

Что такое LEMP

LEMP stack — это группа программ с открытым исходным кодом для запуска и обслуживания веб-серверов. Эта аббревиатура расшифровывается как Linux, Nginx (произносится Engine x), MySQL и PHP. Поскольку сервер запущен на Ubuntu, первый компонент уже установлен, потому можно приступить к установке и запуску остальных программ.

Требования

Для выполнения инструкций данного руководства нужны root-привилегии. Чтобы получить более подробную информацию, читайте статью «Начальная настройка сервера Ubuntu 12.04«.

1: Обновление системы

На протяжении всего этого руководства команда apt-get будет использоваться как инсталлятор всех программ. 8 мая 2012 была обнаружена серьезная уязвимость PHP; потому для безопасности сервера очень важно использовать только последние, исправленные версии программ.

Чтобы обновить систему, запустите

sudo apt-get update

2: Установка MySQL

MySQL — мощная система управления базами данных, необходимая для хранения информации и управления данными.

Чтобы установить MySQL, откройте терминал и наберите команды:

sudo apt-get install mysql-server php5-mysql

Во время установки MySQL попросит установить root-пароль. Если пароль не установить на данном этапе, это можно без труда сделать позже в оболочке MySQL.

По завершении установки MySQL нужно активировать при помощи команды:

sudo mysql_install_db

В завершение запустите скрипт MySQL:

sudo /usr/bin/mysql_secure_installation

Введите текущий root-пароль.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Затем MySQL спросит, нужно ли изменить root-пароль. Если этого делать не нужно, выберите N.

На следующие извещение проще ответить Yes, после чего MySQL перезапустится и активирует внесенные изменения.

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...

3: Установка nginx

Завершив работу с MySQL, приступайте к установке nginx.

sudo apt-get install nginx

nginx не запускается самостоятельно. Чтобы запустить nginx, наберите:

sudo service nginx start

Чтобы убедиться в том, что nginx установлен, направьте браузер на IP-адрес. Чтобы узнать свой IP, используйте:

ifconfig eth0 | grep inet | awk '{ print $2 }'

4: Установка PHP

Чтобы установить PHP-FPM, откройте терминал и наберите следующие команды:

sudo apt-get install php5-fpm

Завершив установку  PHP, можете перейти к его настройке и настройке nginx.

5: Настройка PHP

В конфигурации 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

6: Настройка nginx

Откройте файл виртуального хоста по умолчанию.

sudo nano /etc/nginx/sites-available/default

Внесите в конфигурации нижеприведенный блок кода (подробности данных конфигураций можно найти ниже):

Примечание: более новые версии Ubuntu вместо файла ‘www’  по умолчанию создают файл по имени ‘html’. Если файла /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 the php-fpm socket
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$ {.

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

7: Проверка работы php

Чтобы быстро вывести подробности новых настроек php (а заодно и проверить его работу), выполните следующие действия.

Создайте новый файл:

sudo nano /usr/share/nginx/www/info.php

Внесите в него строку:

<?php
phpinfo();
?>

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

Перезапустите nginx:

sudo service nginx restart

Посетите http://ipадрес/info.php, чтобы просмотреть настройки nginx и php-fpm.

Готово! Теперь LEMP stack установлен и настроен.

Читайте также

Установив LEMP, можно перейти к установке WordPress, FTP и phpMyAdmin, а также создать SSL-сертификаты.

Tags: , , , , , , ,

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>