Установка LEMP на Ubuntu 12.04
LEMP Stack, Ubuntu | Комментировать запись
Что такое LEMP
Стек LEMP – это группа программ с открытым исходным кодом для запуска и обслуживания веб-серверов. Эта аббревиатура расшифровывается как 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: LEMP Stack, Linux, MySQL, NGINX, PHP, Ubuntu, Ubuntu 12.04, VPS