Здравствуйте, уважаемые читатели. Сегодня статья на тему: "Установка LEMP в CentOS 7". В предыдущих статьях, мы рассмотрели установку двух наборов ПО для веб-разработки. В данной статье рассмотрим третий вариант, это будет набор LEMP.

LEMP – это комплект серверного ПО (Linux, Nginx, MySQL, PHP), готовая платформа для работы веб-сайтов или веб-приложений.

В рамках данной статьи, мы произведём установку и настройку веб-сервера Nginx, сервера баз данных MariaDB, и PHP. Кроме того, рассмотрим установку cms WordPress.

Подготовка инфраструктуры.

  • Для начала создадим необходимые директории.
  • По аналогии со статьёй о LAMP, в директории /var/www/ создадим каталог для одного сайта, а в нём ещё два каталога, для файлов сайта и логов.
# mkdir -p /var/www/test.ru/{site,log}
  • После подготовки инфраструктуры, можно переходить к установке Nginx.

Установка Nginx.

  • Подключаем официальный репозиторий Nginx, путём добавления в директорию /etc/yum.repos.d/ файла nginx.repo с таким содержанием:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
  • Запускаем установку Nginx.
# yum install nginx
  • По завершении установки веб-сервера, стартуем его и добавляем в автозагрузку.
# systemctl start nginx
# systemctl enable nginx
  • Теперь нужно создать конфигурационный файл для нашего сайта.
  • Заходим в директорию /etc/nginx/conf.d, и создаём файл test.ru.conf, созданный специально под Wopdpress, с таким содержанием:
server {
     listen  80;
     server_name test.ru www.test.ru;
     index index.php index.html index.htm;
     access_log /var/www/test.ru/log/access.log;
     error_log /var/www/test.ru/log/error.log;
     root /var/www/test.ru/site/;
 location / {
     try_files $uri $uri/ /index.php?$args;
 }
 location ~ .php$ {
     try_files  $uri =404;
     fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
     fastcgi_index index.php;
     fastcgi_param DOCUMENT_ROOT /var/www/test.ru/site/;
     fastcgi_param SCRIPT_FILENAME /var/www/test.ru/site$fastcgi_script_name;
     fastcgi_param PATH_TRANSLATED /var/www/test.ru/site$fastcgi_script_name;
     include fastcgi_params;
     fastcgi_param QUERY_STRING $query_string;
     fastcgi_param REQUEST_METHOD $request_method;
     fastcgi_param CONTENT_TYPE $content_type;
     fastcgi_param CONTENT_LENGTH $content_length;
     fastcgi_intercept_errors on;
     fastcgi_ignore_client_abort off;
     fastcgi_connect_timeout 60;
     fastcgi_send_timeout 180;
     fastcgi_read_timeout 180;
     fastcgi_buffer_size 128k;
     fastcgi_buffers 4 256k;
     fastcgi_busy_buffers_size 256k;
     fastcgi_temp_file_write_size 256k;
 }
 location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
      expires modified +30d;
      access_log off;
}
 location = /favicon.ico {
     log_not_found off;
     access_log off;
 }
 location = /robots.txt {
     rewrite ^ /robots.txt break;
     allow all;
     log_not_found off;
     access_log off;
 }
 }

Файл состоит из нескольких секций:

  1. Глобальные настройки.
  2. Настройка для ЧПУ.
  3. Настройка для Php.
  4. Запрет доступа к файлам начинающимся с точки.
  5. И настройки для favicon.ico и robots.txt.
конфигурационный файл для сайта
  • Можно сразу открыть 80 порт, добавив правило в брандмауэр.
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
открытие 80 порта в брандмауэре
  • Незабываем перезапустить iptables.
# systemctl restart iptables
  • На этом настройка веб сервера завершена, переходим к серверу баз данных MariaDB.

Установка MariaDB.

  • Подключаем официальный репозиторий MariaDB, путём добавления в директорию /etc/yum.repos.d/ файла mariadb.repo с таким содержанием:
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
  • Запускаем установку MariaDB.
# yum install MariaDB-server MariaDB-client
  • По завершении установки MariaDB, стартуем сервер и добавляем его в автозагрузку.
# systemctl start mariadb
# systemctl enable mariadb
  • Запускаем скрипт первоначальной настройки MariaDB.
# /usr/bin/mysql_secure_installation
  • Создаем пароль для root, а на все остальные вопросы отвечаем Y.
  • Пришло время создать базу данных для нашего сайта, и пользователя для этой базы.
  • Заходим под рутом.
# mysql -u root –p
  • Я для примера создам базу данных blog.
MariaDB [(none)]> create database blog;
  • И пользователя admin с паролем 123.
MariaDB [(none)]> GRANT ALL PRIVILEGES ON blog.* TO 'admin'@'localhost' IDENTIFIED BY '123';
  • Перезаписываем все привилегии.
MariaDB [(none)]> flush privileges;
  • И выходим из редактирования MariaDB.
MariaDB [(none)]> quit;
  • На этом работа с MariaDB завершена. Переходим к установке PHP.

Установка PHP.

  • Для установки свежей версии PHP, подключаем сторонний репозиторий Remi.
# rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
  • Также нужно установить дополнительные пакеты для пакетного менеджера yum.
# yum install yum-utils

После установки активируем remi-php73.

# yum-config-manager --enable remi-php73
  • Теперь можно установить PHP, PHP-FPM, и некоторые дополнительные компоненты.
# yum install php-fpm php-cli php-mysql php-gd php-ldap php-odbc php-pdo php-pecl-memcache php-opcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-zip
  • После установки, переходим к настройкам PHP-FPM. Находим файл /etc/php-fpm.d/www.conf и производим некоторые изменения.
Находим и закомментируем строчку:
;listen = 127.0.0.1:9000

Ниже добавляем:
listen = /var/run/php-fpm/php-fpm.sock
listen.mode = 0660
listen.owner = nginx
listen.group = nginx

Находим строчки:
user = apache
group = apache

Заменяем apache на nginx.
  • Стартуем и добавляем php-fpm в автозагрузку.
# systemctl start php-fpm
# systemctl enable php-fpm
  • Кроме того, для прочтения добавленной конфигурации, перезапускаем Nginx. Всё что нужно мы установили, так что ошибок не будет.
# systemctl restart nginx
  • На этом установка и базовая настройка LEMP завершена, мы установили всё необходимое ПО.

Установка Wopdpress.

  • Заходим на официальный сайт, и скачиваем архив с последней версией Wopdpress.
  • Разархивируем архив, и добавляем файлы cms в директорию созданную для файлов нашего сайта /var/www/test.ru/site
  • Делаем владельцем директории с сайтом nginx, и добавляем нужные права.
# chown nginx:nginx -R /var/www/test.ru/site/
# chmod -R 0775 /var/www/test.ru/site/
# chown root:nginx /var/lib/php/session/
# chown -R nginx:nginx /var/lib/php/session/ 
  • Теперь можно открыть браузер и перейти по адресу Вашего сайта.
  • Открывается страница установщика Wopdpress.
установка Wopdpress

Процесс установки происходит в пару кликов:

  1. Внесение данных для подключения к базе данных.
  2. Некоторые глобальные настройки и создание администратора сайта (логина, пароля, адреса электронной почты).
  • После несложной установки, Вы можете получить доступ к админ-панели, введя логин и пароль администратора, указанный Вами в процессе установки cms.
форма входа в Wopdpress

Подробнее процесс установки Wopdpress, и всего писанного в статье, можно посмотреть ниже, в видео по теме.

Сегодня мы рассмотрели тему: "Установка LEMP в CentOS 7". Произвели установку и настройку набора ПО LEMP, а так же установку cms Wopdpress. Смотрите также видео по теме.

Надеюсь статья была вам полезна. До встречи в новых статьях.

С уважением, Андрей Бондаренко.


Видео на тему "Установка LEMP в CentOS 7":