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

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


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

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

Причина:

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

Следующий учебник DigitalOcean может представлять интерес, так как в нем описывается установка стека LEMP на сервере CentOS 7:

  • Как установить стек Linux, Nginx, MySQL, PHP (LEMP) в CentOS 7

О Лемпе

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

Шаг первый — установите необходимые репозитории

Мы установим все необходимое программное обеспечение вместе с Yum. Однако, поскольку nginx недоступен прямо из CentOS, необходимо установить репозиторий epel.

sudo yum install epel-release

Шаг второй — установите MySQL

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

 sudo yum install mysql-server

После завершения загрузки перезапустите MySQL:

sudo /etc/init.d/mysqld restart

Вы можете выполнить некоторую настройку MySQL с помощью этой команды:

sudo /usr/bin/mysql_secure_installation

Приглашение попросит вас ввести текущий пароль root.

Поскольку вы только что установили MySQL, у вас, скорее всего, его не будет, поэтому оставьте его пустым, нажав Enter.

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

Затем подсказка спросит вас, хотите ли вы установить пароль root. Идите вперед и выберите Y и следуйте инструкциям.

CentOS автоматизирует процесс настройки MySQL, задавая вам ряд вопросов «да» или «нет».

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

All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

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

Как и в случае с MySQL, мы установим nginx на наш виртуальный частный сервер с помощью yum:

sudo yum install nginx

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

sudo /etc/init.d/nginx start

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

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

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

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

Пакет php-fpm находится в репозитории REMI, который на данный момент отключен. Первое, что нам нужно сделать, это включить репозиторий REMI и установить php и php-fpm:

sudo yum install php-fpm php-mysql

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

Нам нужно внести одно небольшое изменение в конфигурацию php. Откройте php.ini:

 sudo vi /etc/php.ini

Найдите строку cgi.fix_pathinfo=1 и измените 1 на 0.

cgi.fix_pathinfo=0

Если это число сохранено как 1, интерпретатор php сделает все возможное, чтобы обработать файл, который находится как можно ближе к запрошенному файлу. Это возможный риск для безопасности. Если для этого числа установлено значение 0, интерпретатор, наоборот, будет обрабатывать только точный путь к файлу — гораздо более безопасная альтернатива. Сохранить и выйти.

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

Откройте файл конфигурации nginx по умолчанию:

sudo vi /etc/nginx/nginx.conf

Увеличьте количество рабочих процессов до 4, затем сохраните и закройте этот файл.

Теперь нам нужно настроить виртуальные хосты nginx.

Чтобы сделать файл nginx по умолчанию более кратким, сведения о виртуальном хосте находятся в другом месте.

sudo vi /etc/nginx/conf.d/default.conf

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

#
# The default server
#
server {
    listen       80;
    server_name example.com;

   
    location / {
        root   /usr/share/nginx/html;
        index index.php  index.html index.htm;
    }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

Вот подробности изменений:

  • Добавьте index.php в строку указателя.
  • Измените server_name на ваше доменное имя или IP-адрес (замените example.com в конфигурации)
  • Измените корень на /usr/share/nginx/html;
  • Раскомментируйте раздел, начинающийся с \location ~ \.php${\,
  • Измените корень, чтобы получить доступ к фактическому корню документа, /usr/share/nginx/html;
  • Измените строку fastcgi_param, чтобы помочь интерпретатору PHP найти сценарий PHP, который мы сохранили в корневом каталоге документа.

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

Откройте конфигурацию php-fpm:

sudo vi /etc/php-fpm.d/www.conf

Замените апач в юзере и группе на nginx:

[...]
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;	will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
[...]

Завершите, перезапустив php-fpm.

sudo service php-fpm restart

Шаг седьмой — РЕЗУЛЬТАТЫ: создание информационной страницы php

Несмотря на то, что LEMP установлен, мы все равно можем просмотреть компоненты онлайн, создав страницу с быстрой информацией о php.

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

sudo vi /usr/share/nginx/html/info.php

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

<?php
phpinfo();
?>

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

Перезапустите nginx, чтобы все изменения вступили в силу:

sudo service nginx restart

Завершите, посетив свою информационную страницу php (убедитесь, что вы заменили пример IP-адреса на свой правильный): http://12.34.56.789/info.php

Это должно выглядеть примерно так.

Шаг восьмой — настройте автозапуск

Вы почти закончили. Последний шаг — настроить автоматический запуск всех новых установленных программ при загрузке VPS.

sudo chkconfig --levels 235 mysqld on
sudo chkconfig --levels 235 nginx on
sudo chkconfig --levels 235 php-fpm on