Как установить стек 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