LinuxInsider.ru

Установка LAMP Ubuntu 16.04

LAMP — это сокращение от Linux, Apache, MySQL, PHP. В этом руководстве показано, как вы можете установить веб-сервер Apache на сервере Ubuntu 16.04 LTS (Xenial Xerus) с поддержкой PHP 7 (mod_php) и MySQL / MariaDB, а также настроить SSL-сертификат с помощью шифрования Let’s. Кроме того, я установлю PHPMyAdmin, чтобы упростить администрирование MySQL. Установка LAMP — идеальная основа для систем CMS, таких как Joomla, WordPress или Drupal.

В этом руководстве я буду использовать имя хоста server1.example.com с IP-адресом 192.168.1.100. Эти настройки могут отличаться для вас, поэтому вам придется заменить их там, где это необходимо.

Я рекомендую использовать минимальную настройку сервера Ubuntu в качестве основы для учебника, это может быть образ виртуального или корневого сервера с минимальной установкой Ubuntu 16.04 от веб-хостинга.

Я выполняю все шаги этого руководства с привилегиями root, поэтому убедитесь, что вы вошли в систему под именем root:

sudo su

Установка LAMP Ubuntu 16.04

Установка LAMP Ubuntu 16.04 является довольно простой. Сейчас я расскажу про самые оптимальные способы быстрой установки LAMP в Ubuntu.

Установка MySQL или MariaDB

В настоящее время доступны две широко используемые системы баз данных MySQL — классический «MySQL» сервер, разработанный Oracle и доступный сейчас в версии 5.7, а также ветка MySQL с именем MariaDB, разработанная первоначальным разработчиком MySQL Монти Виденюсом.

Я покажу вам, как установить обе альтернативы ниже. Просто следуйте главе 1.1 или 1.2, но не обоим. Вам нужно выбрать лучший вариант для вас. Я буду использовать MySQL 5.7 для образа виртуальной машины, который можно загрузить из Howtoforge.

1.1 Установка MySQL 5.7

Чтобы установить MySQL 5.7, выполните следующую команду:

apt-get -y install mysql-server mysql-client

Пакеты mysql-server и mysql-client называются «мета-пакетами», они устанавливают всегда самую последнюю версию MySQL, которая доступна в Ubuntu. Последняя версия — это MySQL 5.7.

Мы установили пароль root для MySQL уже во время установки, но я бы хотел удалить анонимного пользователя и тестовую базу данных из соображений безопасности. Для этого выполните команду mysql_secure_installation ниже.

mysql_secure_installation

 

Вам будут заданы следующие вопросы:

 

Установка LAMP Ubuntu 16.04
Установка LAMP Ubuntu 16.04

Теперь настройка MySQL была защищена.

1.2 Установка MariaDB 10

Для установки MariaDB-сервера и клиента выполните следующую команду:

apt-get -y install mariadb-server mariadb-client

Теперь мы установили пароль root для MariaDB.

mysql_secure_installation

 

Вам будут заданы следующие вопросы:

Установка LAMP Ubuntu 16.04
Установка LAMP Ubuntu 16.04

 

Проверьте имя входа в MariaDB с помощью команды «mysql»

mysql -u root -p

И введите пароль root MariaB, который вы установили выше. Результат должен быть похож на скриншот ниже:

Чтобы выйти из оболочки MariaDB, введите команду «quit» и нажмите клавишу ввода.

 

  1. Установите Apache 2.4.

Следующим пунктом в статье «Установка LAMP Ubuntu 16.04» является Apache.

Apache 2 доступен как пакет Ubuntu, поэтому мы можем установить его следующим образом:

apt-get -y install apache2

Теперь направьте браузер на страницу http://192.168.1.100, и вы увидите страницу по умолчанию Apache2 (она работает!):

 

3. Установите PHP 7

Мы можем установить PHP 7 и модуль Apache PHP следующим образом:

apt-get -y install php7.0 libapache2-mod-php7.0

Затем перезапустите Apache:

systemctl restart apache2

  1. Протестируйте PHP и получите информацию о вашей установке PHP.

Корень документа веб-узла по умолчанию — / var / www / html. Теперь мы создадим небольшой PHP-файл (info.php) в этом каталоге и вызываем его в браузере. Файл отобразит множество полезных сведений о нашей установке PHP, например, установленной версии PHP.

nano /var/www/html/info.php

<?php
phpinfo();
?>

Затем измените владельца файла info.php на пользователя и группу www-данных.

chown www-data:www-data /var/www/html/info.php

Теперь мы вызываем этот файл в браузере (например, http://192.168.1.100/info.php):

Как вы видите, PHP 7.0 работает, и он работает через Apache 2.0 Handler, как показано в строке Server API. Если вы прокрутите вниз, вы увидите все модули, которые уже включены в PHP5. MySQL здесь отсутствует, а значит, у нас нет поддержки MySQL / MariaDB в PHP.

 

  1. Поддержка MySQL / MariaDB в PHP

Чтобы получить поддержку MySQL в PHP, мы можем установить пакет php7.0-mysql. Это хорошая идея, чтобы установить некоторые другие модули PHP, а также они могут понадобиться для ваших приложений. Вы можете искать доступные модули PHP следующим образом:

apt-cache search php7.0

 

Выберите нужные и установите их так:

apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache  php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettext

Теперь перезапустите Apache2:

systemctl restart apache2

PHP 7 теперь поддерживает MySQL / MariaDB, как показано в phpinfo () выше.

  1. Установите кеш Opcache + APCu PHP для ускорения работы PHP

PHP 7 поставляется со встроенным кэширующим кодом операции для кэширования и оптимизации промежуточного кода PHP, он имеет имя «opcache» и доступен в пакете php7.0-opcache. Настоятельно рекомендуется установить Opcache для ускорения работы вашей PHP-страницы. Помимо opcache, я установлю APCu, который является оболочкой совместимости для opcache, чтобы обеспечить функции кэша APC, часто используемой системы кэширования в версиях php 5.x, и многие системы CMS все еще используют ее.

Opcache и APCu могут быть установлены следующим образом:

apt-get -y install php7.0-opcache php-apcu

Не беспокойтесь, если он показывает, что Opcache уже установлен.

Теперь перезапустите Apache:

systemctl restart apache2

Теперь перезагрузите страницу http://192.168.1.100/info.php в своем браузере и снова прокрутите страницу до раздела модулей. Теперь вы должны найти много новых модулей:

Пожалуйста, не забудьте удалить файл info.php, когда он вам больше не нужен, так как он предоставляет конфиденциальную информацию о вашем сервере. Выполните следующую команду, чтобы удалить файл.

rm -f /var/www/html/info.php

  1. Включите веб-сайт SSL в Apache.

SSL / TLS является уровнем безопасности для шифрования соединения между веб-браузером и вашим сервером. Большинство веб-браузеров начинают показывать сайты как небезопасные, когда соединение между сервером и веб-браузером не шифруется с помощью SSL. В этой главе я покажу вам, как защитить ваш сайт с помощью SSL.

Выполните следующие команды на вашем сервере, чтобы включить поддержку SSL (https: //):

a2enmod ssl
a2ensite default-ssl

Способ включает модуль SSL и добавляет символическую ссылку в папку / etc / apache2 / sites в файл /etc/apache2/sites-available/default-ssl.conf, для того чтобы включить его в активную конфигурацию apache. Затем перезапустите apache, чтобы включить новую конфигурацию:

systemctl restart apache2

Теперь проверьте соединение SSL, открыв https://192.168.1.100 в веб-браузере.

Примите предупреждение SSL в Firefox

Вы получите предупреждение SSL, поскольку SSL-сертификат сервера является «самозаверяющим» SSL-сертификатом, это означает, что браузер не доверяет этому сертификату по умолчанию, и вы должны сначала принять предупреждение о безопасности. После принятия предупреждения вы увидите страницу по умолчанию apache.

Страница по умолчанию Apache в режиме https

Закрытый «Зеленый замок» перед URL-адресом в браузере показывает, что соединение зашифровано.

Есть два способа избавиться от предупреждения SSL: либо заменить самоподписанный сертификат SSL /etc/ssl/certs/ssl-cert-snakeoil.pem с официально подписанным SSL-сертификатом, который вы покупаете у SSL-органа, либо вы получаете Бесплатный SSL-сертификат от Let’s encrypt, который я опишу в главе 8.

  1. Получите бесплатный сертификат SSL от Let’s Encrypt

Первым шагом по обеспечению безопасности веб-сайта с помощью SSL-сертификата Let’s Encrypt является установка пакета python-letsencrypt-apache. Выполните следующую команду:

apt-get -y install python-letsencrypt-apache

На следующем шаге мы запросим сертификат SSL от Let’s Encrypt, во время этого процесса сервер Let’s Encrypt попытается подключиться к вашему серверу через имя домена, которое вы предоставляете команде letsencrypt. Важно, чтобы это доменное имя указывало на ваш сервер в DNS уже, чтобы веб-сайт достигал своего доменного имени уже на порту 80 (http). Если веб-сайт недоступен из Интернета, создание SSL-сертификата Let’s Encrypt не удастся.

Прежде чем мы начнем создавать сертификат SSL, задайте имя домена в файле конфигурации vhost. Откройте файл vhost по умолчанию с помощью редактора:

nano /etc/apache2/sites-available/000-default.conf

И добавьте строку:

ServerName example.com

Прямо под строкой «DocumentRoot». Замените example.com доменным именем вашего собственного веб-сайта.

Затем создайте SSL-сертификат с помощью следующей команды:

letsencrypt —apache -d example.com

Снова замените example.com своим доменным именем. Команда запустит мастер, который задаст вам несколько вопросов.

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

Примите условия лицензии Let’s Encrypt SSL.

Выберите, хотите ли вы автоматически перенаправлять запросы без SSL на https: //. Я выберу да здесь, чтобы избежать дублирования проблем с контентом, когда сайт доступен как http: // и https: // версия.

Сертификат SSL был успешно выдан.

Когда вы заходите на веб-сайт теперь с помощью браузера, вы автоматически перенаправляетесь на SSL, а зеленая блокировка перед строкой URL в браузере показывает, что мы используем доверенный SSL-сертификат.

8.1. Зашифруем автоматическое продление

Шифрующие SSL-сертификаты действительны только в течение короткого периода в 80 дней. Поэтому мы сейчас настроим cronjob для автоматического обновления SSL-сертификата при необходимости. Команда: «продлить лицензию».

Установите cronjob для автоматического обновления LE. Бег:

crontab -e

Для открытия корневого кронтаба в редакторе. Вставьте следующую строку в конец файла:

0 1 * * * / usr / bin / letsencrypt renew &> / dev / null

Сохраните файл, это активирует cronjob. Этот cronjob будет вызывать команду Let’s Encrypt renew каждый вечер в 1 час ночи. Команда обновит SSL-сертификат только при необходимости (за 30 дней до истечения срока его действия), нет проблем запускать его каждую ночь.

  1. Установите phpMyAdmin

PhpMyAdmin — это веб-интерфейс, через который вы можете управлять своими базами данных MySQL. Хорошей идеей будет, установить его:

apt-get -y install phpmyadmin

После установки должны появится следующие вопросы:

Установка LAMP Ubuntu 16.04
Установка LAMP Ubuntu 16.04

9.1. Корневой доступ к PHPMyAdmin с помощью MariaDB

Следующий шаг в теме «Установка LAMP Ubuntu 16.04», требуется только для установок MariaDB, если вы используете MySQL 5.7, то пропустите этот шаг.

По умолчанию MariaDB разрешает плагину под названием «unix_socket» root для пользователя, но этот плагин запрещает пользователю с root-правами, войти в PHPMyAdmin, и в этом случае TCP-соединения с MySQL работают на пользователя root.

Для того, чтобы получить привилегии Root для создания других аккаунтов и баз данных в PHPMyAdmin, я создам нового пользователя MySQL с именем «admin» с теми же привилегиями, что и пользователь root.

Войдите в базу данных MySQL как пользователь root в командной строке:

mysql -u root

Создайте нового пользователя с именем «admin» и паролем «linuxinsider». Замените пароль «linuxinsider» безопасным паролем как показано в команде!

CREATE USER ‘admin’@’localhost’ IDENTIFIED BY ‘linuxinsider‘;
GRANT ALL PRIVILEGES ON *.* TO ‘admin’@’localhost’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

После этого вы можете получить доступ к phpMyAdmin по адресу http://192.168.1.100/phpmyadmin/:

 

Загрузка образа виртуальной машины

Этот учебник доступен как готовый к использованию образ виртуальной машины в формате ovf / ova, совместимый с VMWare и Virtualbox. В образе виртуальной машины используются следующие данные для входа:

SSH / Shell Login

Username: administrator
Password: linuxinsider

Этот пользователь имеет права sudo.

MySQL Login

Username: root
Password: linuxinsider

IP-адрес виртуальной машины — 192.168.1.100, его можно изменить в файле / etc / network / interfaces. Измените все вышеперечисленные пароли для защиты виртуальной машины.

Перевод статьи из отличного английского сайта HowtoForge.

Выводы

Если у вас остались вопросы по теме «Установка LAMP Ubuntu 16.04», то пишите их в форму комментариев на нашем сайте. Постарайтесь как можно более подробно описать свой вопрос.

Обязательно оцените эту статью, и поделитесь ссылкой на свои страницы в Google+, Twitter, VK или, например, Facebook.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Добавьте комментариий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.