Поиск по сайту:

Как установить стек Linux, nginx, MySQL, PHP (LEMP) на Ubuntu 12.04


Статус: устарело

В этой статье рассматривается версия Ubuntu, которая больше не поддерживается. Если вы в настоящее время используете сервер под управлением Ubuntu 12.04, мы настоятельно рекомендуем обновить или перейти на поддерживаемую версию Ubuntu:

  • Обновите Ubuntu до версии 14.04.
  • Обновление Ubuntu 14.04 до Ubuntu 16.04
  • Перенесите данные сервера в поддерживаемую версию.

Причина:

См. вместо этого:

О Лемпе

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

Настраивать

Шаги, описанные в этом руководстве, требуют наличия у пользователя привилегий root. Вы можете увидеть, как это настроить, в учебнике по начальной настройке сервера на шагах 3 и 4.

Шаг первый — обновите Apt-Get

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

Делаем основательное обновление.

sudo apt-get update

Шаг второй — установите 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...

Затем подсказка спросит вас, хотите ли вы изменить пароль root. Идите вперед и выберите N и перейдите к следующим шагам.

Проще всего просто сказать «да» всем вариантам. В конце 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...

Как только вы закончите с этим, вы можете завершить установку PHP.

Шаг третий — устанавливаем nginx

После того, как MySQL настроен, мы можем перейти к установке nginx на VPS.

echo "deb http://ppa.launchpad.net/nginx/stable/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/nginx-stable.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C
sudo apt-get update
sudo apt-get install nginx

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

sudo service nginx start

Вы можете подтвердить, что nginx установил ваш веб-сервер, указав в браузере ваш IP-адрес.

Вы можете запустить следующую команду, чтобы узнать IP-адрес вашего VPS.

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

Шаг четвертый — установите PHP

Чтобы установить PHP-FPM, откройте терминал и введите эти команды. Мы настроим детали nginx и php на следующем шаге:

sudo apt-get install php5-fpm

Шаг пятый — настроить php

 sudo nano /etc/php5/fpm/php.ini

Найдите строку cgi.fix_pathinfo=1 и измените 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

Шаг шестой — настройте nginx

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

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

Конфигурация должна включать следующие изменения (подробности об изменениях в информации о конфигурации):

ОБНОВЛЕНИЕ: новые версии Ubuntu по умолчанию создают каталог с именем 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 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 в строку индекса.
  • Измените server_name с локального хоста на ваше доменное имя или IP-адрес (замените example.com в конфигурации)
  • Измените правильные строки в разделе \location ~ \.php${\

Сохранить и выйти

Шаг седьмой — создайте информационную страницу php

Мы можем быстро увидеть все детали новой конфигурации php.

Чтобы настроить это, сначала создайте новый файл:

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

Добавьте в следующую строку:

<?php
phpinfo();
?>

Затем сохраните и выйдите.

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

sudo service nginx restart

Вы можете увидеть детали конфигурации nginx и php-fpm, посетив http://youripaddress/info.php

Теперь ваш стек LEMP установлен и настроен на вашем виртуальном частном сервере.

Узнать больше

После установки LEMP вы можете установить FTP-сервер.