Сегодняшняя статья об установке Drupal с LEMP (Linux, Nginx, MySQL и PHP-FPM) на Ubuntu 16.04. Стек LEMP является синонимом сервера LEMP или веб — сервера LEMP. Он относится к набору, который включает в Linux, Nginx, MySQL (MariaDB) и PHP.
Мы будем использовать наш Linux для этого урока.
# ssh root@server_ip
Вы можете проверить, установлена ли у вас правильная версия Ubuntu на сервере с помощью следующей команды:
# lsb_release -a
Вы должны получить этот результат:
Distributor ID: Ubuntu Description: Ubuntu 16.04 LTS Release: 16.04 Codename: xenial
Убедитесь, что ваш сервер полностью в актуальном состоянии с помощью:
# apt-get update && apt-get upgrade
С помощью следующей команды можно будет установить стек LEMP вместе с некоторыми необходимыми расширениями PHP.
# apt-get install nginx mysql-server php-fpm php-mysql php-gd php-xml
Во время установки вам будет предложен запрос с MySQL, где вам нужно будет установить новый MySQL корневой пароль так же, как на картинке ниже:
После завершения установки, отредактируйте на сервере файл php.ini и измените значение cgi.fix_pathinfo параметра равным 0 . По умолчанию оно будет закомментировано и установленное на 1 , что практически гарантирует, что PHP попытается выполнить ближайший доступен файл, если запрошенный файл PHP не может быть найден. Это плохая практика безопасности, поэтому давайте изменим его. Выполните следующую команду:
# nano /etc/php/7.0/fpm/php.ini
Теперь найдите cgi.fix_pathinfo, раскомментируйте ее и установите значение на 0. Сохраните и закройте файл.
Перезагрузка PHP-FPM, чтобы изменения вступили в силу.
# systemctl restart php7.0-fpm
Теперь вы должны настроить Nginx использовать PHP, который может быть сделано путем редактирования блока сервера по умолчанию. Выполните следующую команду:
# nano /etc/nginx/sites-available/default
Добавьте index.php в директиву index.
Потом раскомментируйте часть раздела, который обрабатывает запросы PHP. Эта часть состоит из блока ‘location ~ \.php$ {‘, который включает в себя фрагмент кода FastCGI-php.conf и сокет, связанный с PHP-FPM . После редактирования файл должен выглядеть следующим образом :
server { listen 80 default_server; root /var/www/html; # Добавить index.php в список пользования PHP index index.php index.html index.htm index.nginx-debian.html; server_name _; location / { # Первая попытка обслужить запрос в виде файла, а затем # как каталог, потом вернуться к отображению 404. try_files $uri $uri/ =404; } # указать PHP скриптам FastCGI серверу прослушивать 127.0.0.1:9000 # location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } # запретить доступ к файлам .htaccess # location ~ /\.ht { deny all; } }
Сохраните и закройте файл. Затем проверьте конфигурационный файл на наличие синтаксических ошибок:
# nginx -t
Если ошибки нет, перезапустите Nginx для того, чтобы изменения вступили в силу:
# systemctl restart nginx
Установка LEMP завершена. Если вы хотите проверить, обрабатывает ли Nginx PHP файлы правильно, создайте тестовый файл phpinfo.php в корневом каталоге документов Nginx. Откройте файл с помощью текстового редактора nano\:
# nano /var/www/html/phpinfo.php
Вставить следующее:
<?php // Показать всю информацию, по умолчанию INFO_ALL phpinfo(); // Показать только информационный модуль. // phpinfo(8) yields identical results. phpinfo(INFO_MODULES); ?>
Теперь откройте ваш любимый веб — браузер и перейдите по адресу http://your_server_IP/phpinfo.php. Вы должны увидеть страницу, как в изображении ниже:
ОК. Теперь, когда все в порядке с установкой LEMP, установить Drupal для вашего сайта. Мы установим Drupal в корневом каталоге документов Nginx (/var/www/html). Введите каталог:
# cd /var/www/html/
Установите Drush:
# apt-get install drush php-console-table
Используйте Drush чтобы скачать последнюю стабильную версию Drupal:
# drush dl drupal
Вы увидите что-то вроде этого. Версия Drupal может отличаться в момент установки.
Project drupal (7.43) downloaded to /var/www/html/drupal-7.43.
Переименуйте загруженный каталог на что-то более легкого доступа:
# mv /var/www/html/drupal-7.43/ /var/www/html/drupal
Установите правильную владельца файлов/директорий:
# chown www-data: -R drupal
Теперь нужно создать базу данных для установки Drupal. Войдите в базу данных MySQL как root и выполните следующие запросы:
# mysql -u root -p mysql> create database drupal; mysql> grant all privileges on drupal.* to drupaluser@localhost identified by 'ваш_пароль'; mysql> flush privileges; mysql> exit Bye
Теперь создайте виртуальный блок в Nginx, так что вы можете получить доступ к Drupal с вашим доменом. Введите команду внизу:
# nano /etc/nginx/sites-available/drupal
Вставьте следующее:
server { server_name domainname.ru; access_log /var/log/nginx/domainname.ru-access.log; error_log /var/log/nginx/domainname.ru-error.log; root /var/www/html/drupal; location / { index index.php; try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Конечно же, не забудьте заменить domainname.ru на реальный домен. Сохраните и закройте файл. Затем, включите его, создав символическую ссылку:
# ln -s /etc/nginx/sites-available/drupal /etc/nginx/sites-enabled/
Проверьте конфигурацию Nginx:
# nginx -t
Если все прошло успешно, перезагрузите Nginx, чтобы изменения вступили в силу:
# systemctl restart nginx
Теперь откройте веб — браузер и перейдите по адресу http://your_domain.ru, чтобы завершить установку Drupal.
Поздравляем, вы успешно установили Drupal с LEMP на вашем сервере Ubuntu 16.04.