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
- Установка MySQL или MariaDB
- Установка MySQL 5.7
- Установка MariaDB 10
- Установите Apache 2.4.
- Установите PHP 7
- Протестируйте PHP и получите информацию о вашей установке PHP.
- Поддержка MySQL / MariaDB в PHP
- Установите кеш Opcache + APCu PHP для ускорения работы PHP
- Включите веб-сайт SSL в Apache
- Страница по умолчанию Apache в режиме https
- Получите бесплатный сертификат SSL от Let’s Encrypt
- 8.1. Зашифруем автоматическое продление
- Установите phpMyAdmin
- Корневой доступ к PHPMyAdmin с помощью MariaDB
- Загрузка образа виртуальной машины
Установка 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.
Установка 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
Вам будут заданы следующие вопросы:
Теперь настройка MySQL была защищена.
Установка MariaDB 10
Для установки MariaDB-сервера и клиента выполните следующую команду:
apt-get -y install mariadb-server mariadb-client
Теперь мы установили пароль root для MariaDB.
mysql_secure_installation
Вам будут заданы следующие вопросы:
Проверьте имя входа в MariaDB с помощью команды «mysql»
mysql -u root -p
И введите пароль root MariaB, который вы установили выше. Результат должен быть похож на скриншот ниже:
Чтобы выйти из оболочки MariaDB, введите команду «quit» и нажмите клавишу ввода.
Установите Apache 2.4.
Следующим пунктом в статье «Установка LAMP Ubuntu 16.04» является Apache.
Apache 2 доступен как пакет Ubuntu, поэтому мы можем установить его следующим образом:
apt-get -y install apache2
Теперь направьте браузер на страницу http://192.168.1.100, и вы увидите страницу по умолчанию Apache2 (она работает!):
Установите PHP 7
Мы можем установить PHP 7 и модуль Apache PHP следующим образом:
apt-get -y install php7.0 libapache2-mod-php7.0
Затем перезапустите Apache:
systemctl restart apache2
Протестируйте 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.
Поддержка 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 () выше.
Установите кеш 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
Включите веб-сайт 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.
Получите бесплатный сертификат 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 дней до истечения срока его действия), нет проблем запускать его каждую ночь.
Установите phpMyAdmin
PhpMyAdmin — это веб-интерфейс, через который вы можете управлять своими базами данных MySQL. Хорошей идеей будет, установить его:
apt-get -y install phpmyadmin
После установки должны появится следующие вопросы:
Корневой доступ к 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. Измените все вышеперечисленные пароли для защиты виртуальной машины.
Если у вас остались вопросы по теме «Установка LAMP Ubuntu 16.04», то пишите их в форму комментариев на нашем сайте. Постарайтесь как можно более подробно описать свой вопрос.
Обязательно оцените эту статью, и поделитесь ссылкой на свои страницы в Google+, Twitter, VK или, например, Facebook.