Установка и настройка PhpMyAdmin (PMA)
Ставить будем вручную. Для этого нам потребуется менеджер загрузок wget.
Если у вас нет, то ставим:
#
yum-yinstall wget
Идем на http://www.phpmyadmin.net/home_page/downloads.php и копируем ссылку на самую последнюю мультиязычную версию PhpMyAdmin со сжатием .zip (На данный момент это — http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/4.2.8/phpMyAdmin-4.2.8-all-languages.zip).
Идем в /var/www/html/:
#
cd/var/www/html/
Скачиваем PMA:
#
wget http//sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/4.2.8/phpMyAdmin-4.2.8-all-languages.zip
В директории появится архив phpMyAdmin-4.2.8-all-languages.zip, распаковываем его:
#
unzip phpMyAdmin-4.2.8-all-languages.zip
Переименуем директорию phpMyAdmin-4.2.8-all-languages в pma:
#
mv phpMyAdmin-4.2.8-all-languages pma
Удалим архив phpMyAdmin-4.2.8-all-languages.zip т.к. он нам больше не нужен:
#
rm phpMyAdmin-4.2.8-all-languages.zip
По идее у нас уже полностью рабочий PhpMyAdmin должен быть доступен по адресу — https://IP-адрес_сервера/pma/
Дополнительно читаем: Тонкая настройка PhpMyAdmin
Шаг 4 — Тестирование работы PHP на вашем веб-сервере
Чтобы проверить, что наша система сконфигурирована должным образом, мы можем создать простой PHP скрипт. Назовём этот скрипт . Чтобы Apache нашел и обработал файл корректно, он должен быть сохранен в специальной директории, которая называется “web root”.
В Ubuntu 18.04 данная директория находится по адресу . Мы можем создать там файл введя следующую команду:
Откроется пустой файл. Введём в файл следующий текст, который является корректным PHP кодом:
info.php
После внесения изменений сохраните и закройте файл.
Теперь мы можем проверить, может ли веб-сервер корректно отображать контент, сгенерированный PHP скриптом. Для проверки нам просто нужно открыть данную страницу в веб-браузере. Вам снова потребуется публичный IP-адрес сервера.
Откроем этот адрес:
Страница, на которую вы попадете, должна выглядеть похожим образом:
Данная страница содержит информацию о вашем сервере с точки зрения PHP. Она полезна для отладки и чтобы удостовериться в корректности применения настроек.
Если все прошло успешно, значит ваш PHP работает корректно.
Вы, возможно, захотите удалить этот файл после теста, т.к. он может дать информацию о вашем сервере неавторизованным пользователям. Для удаления файла введите команду:
Вы всегда сможете заново создать этот файл, если вам снова потребуется доступ к этой информации.
Install Apache Web Server
Let us start installing the Apache webserver. The package name of the Apache server is httpd. Install the httpd rpm package using the YUM command.
In RHEL 8, ensure rhel-8-for-x86_64-baseos-rpms and rhel-8-for-x86_64-appstream-rpms enabled on your system.
yum install -y httpd
Start the Apache web service by using the systemctl command.
systemctl start httpd
Make the Apache server to start automatically. Type the following command on terminal and press enter.
systemctl enable httpd
Check the Apache Web server status using the below command.
systemctl status httpd
Output:
Install LAMP Stack On RHEL 8 – Apache Web Server Service Status
Firewall
By default, the system firewall blocks the HTTP connections coming from external machines. So, to test or use the Apache web server, we need to configure the firewall to allow HTTP requests from external machines.
firewall-cmd --permanent --add-port=80/tcp firewall-cmd --reload
Test Apache
Open up a web browser and then enter the following URL into the web address.
http://localhost
OR
ADVERTISEMENT
http://your.ip.adr.ess
You will get the below Apache test web page. This test page confirms that the Apache is working fine.
Install LAMP Stack on RHEL 8 – Apache Web Server Test PageApache’s default document root is /var/www/html on RHEL, and the main configuration file is /etc/httpd/conf/httpd.conf. Additional configurations for Apache Web server are stored in /etc/httpd/conf.d/ directory.
Шаг 2 — Установка MySQL
Мы запустили веб-сервер, и теперь нам нужно установить СУБД, которая может хранить данные вашего сайта и управлять ими. MySQL — популярная СУБД, используемая в средах PHP.
Используйте для получения и установки этого программного обеспечения:
Для подтверждения установки введите , а затем нажмите .
После завершения установки рекомендуется запустить скрипт безопасности, предустановленный в MySQL. Этот скрипт будет удалять некоторые небезопасные настройки по умолчанию и блокировать доступ к системе управления базы данных. Для запуска интерактивного скрипта введите следующую команду:
Скрипт предложит настроить плагин .
Примечание. Эту функцию следует активировать при наличии разумных оснований. Если она активирована, MySQL будет отклонять пароли, не соответствующие определенным критериям, и выводить сообщение об ошибке. Оставить проверку отключенной достаточно безопасно, но для входа в базу данных всегда нужно использовать надежные уникальные пароли.
Выберите для активации или любой другой вариант, чтобы продолжить без активации этой функции.
Если вы ответите утвердительно, вам будет предложено выбрать уровень проверки пароля. Если вы укажете самый высокий уровень , система будет выводить сообщения об ошибке при попытке установки пароля, который не будет содержать цифры, буквы в верхнем и нижнем регистре и специальные символы, или будет содержать распространенные словарные слова.
Вне зависимости от того, будете ли вы использовать плагин , ваш сервер предложит вам выбрать и подтвердить пароль для root user в MySQL. Не нужно путать его с системным пользователем root. Пользователь root базы данных — это пользователь с правами администратора, который имеет все права для работы с системой управления базы данных. Хотя в MySQL метод аутентификации пользователя root по умолчанию не требует использования пароля даже при его наличии, задайте надежный пароль для обеспечения дополнительной безопасности. Чуть дальше мы расскажем об этом подробнее.
Если вы включили использование паролей, вы увидите уровень надежности введенного пароля для пользователя root, и ваш сервер запросит у вас подтверждение дальнейшего использования этого пароля. Если вас устраивает текущий пароль, введите в диалоге для подтверждения:
Для всех остальных вопросов нужно выбирать и нажимать в каждом диалоге. Выбрав эти ответы, вы удалите ряд анонимных пользователей и тестовую базу данных, отключите возможность удаленного входа пользователя root и загрузите новые правила, чтобы внесенные изменения немедленно активировались в MySQL.
Завершив настройку, проверьте возможность входа в консоль MySQL, набрав следующую команду:
В результате будет установлено подключение к серверу MySQL с помощью пользователя root базы данных с правами администратора, который логически выводится в результате использования при запуске данной команды. Результат должен выглядеть следующим образом:
Для выхода из консоли MySQL введите следующую команду:
Обратите внимание, что для подключения под именем пользователя root не требуется вводить пароль, хотя вы и задали его при запуске скрипта. Это работает, поскольку используемый по умолчанию метод аутентификации для пользователя MariaDB с правами администратора — , а не
Хотя это может выглядеть как проблема безопасности, это делает сервер БД более безопасным, поскольку вход с правами root в MySQL доступен только системным пользователям с привилегиями sudo, которые подключаются через консоль или через приложение с тем же уровнем прав. На практике это означает, что вы не сможете использовать пользователя root базы данных с правами администратора для подключения из вашего приложения PHP. Настройка пароля учетной записи root MySQL работает как гарантия, если метод аутентификации по умолчанию меняется с на .
Для дополнительной безопасности рекомендуется иметь специальные учетные записи пользователей с менее обширными привилегиями, особенно если вы планируете использовать несколько баз данных на сервере.
Примечание. На момент написания этого руководства родная библиотека MySQL PHP не поддерживает , метод аутентификации MySQL 8 по умолчанию. Поэтому при создании пользователей базы данных для приложений PHP на MySQL 8 вам нужно убедиться, что они настроены на использование вместо этого пароля . Мы расскажем, как это сделать в .
Теперь ваш сервер MySQL установлен и защищен. Далее мы выполним установку PHP, последнего компонента набора LAMP.
Шаг 1 — Установка Apache и настройка файрвола
Веб-сервер Apache в настоящее время является одним из самых популярных веб-серверов в мире. Он хорошо документирован и используется значительную часть времени с момента создания сети Интернет, что делает его прекрасным выбором для хостинга веб-сайта.
Установим Apache используя менеджер пакетов Ubuntu :
Поскольку мы используем команду , эти команды будут выполняться с привилегиями root. В процессе установки операционная система запросит ваш пароль пользователя.
После ввода пароля сообщит, какие пакеты будут установлены и сколько места они займут на диске. Нажмите и для продолжения установки.
Настройка файрвола для разрешения веб-трафика
Теперь убедимся, что ваш файрвол пропускает HTTP и HTTPS трафик. Мы будем исходить из предположения, что вы уже выполнили инструкции по первичной настройке сервера и включили файрвол UFW. Для начала убедимся, что UFW имеет профиль для Apache следующей командой:
Проверим настройку профиля , она должна разрешать трафик для портов и :
Разрешим входящий HTTP и HTTPS трафик для этого профиля:
Проверить результат установки можно набрав в вашем веб-браузере публичный IP адрес вашего сервера (если вы еще не знаете, как найти публичный IP адрес вашего сервера, смотрите следующий раздел этой статьи):
Вы увидите страницу Apache, отображаемую по умолчанию для информации и целей тестирования. Она должна выглядеть похожим образом:
Если вы видите эту страницу, ваш веб-сервер корректно установлен и доступен через файрвол.
Как найти публичный IP адрес вашего сервера
Если вы не знаете публичный IP адрес вашего сервера, его можно определить несколькими способами. Обычно, это адрес, который вы используете для соединения с вашим сервером по SSH.
Определить этот адрес можно с помощью командной строки. Сначала используйте инструмент для получения вашего адреса набрав следующую команду:
Результатом выполнения этой команды будут две или три строки, содержащие корректный адрес. Ваш компьютер, возможно, сможет использовать только один из них, поэтому попробуйте каждый вариант.
В качестве альтернативы можно узнать, как видит ваш сервер. Это можно сделать следующим образом:
В независимости от метода, который вы использовали для получения своего IP адреса, вы можете использовать этот IP адрес для доступа к серверу через адресную строку веб-браузера.
Начнем установку apache, я установлю с SSL:
# yum -y install httpd mod_ssl
Апач установился, нужно подправить его конфиг, открыв в текстовом редакторе :
# ee /etc/httpd/conf/httpd.conf
И в поле ServerName прописываем ваш IP или имя сервера, у меня оно выглядит так:ServerName 192.168.77.113
Чтобы Apache стартовал автоматически пропишем в автозапуск следующее:
# chkconfig httpd on
Стартуем Apache:
# service httpd start
Создадим пробную страницу, можно не выполнять это:
# echo '<h1>It's Work</h1>' > /var/www/html/index.html
Проверить можно перейдя по адресу который вы прописали в ServerName:http://192.168.77.113/
И мы увидим строчку «It’s Work»
Шаг 4 — Тестирование обработки PHP на вашем веб-сервере
Чтобы проверить, правильно ли настроена ваша система, создайте очень простой скрипт PHP с именем .
Чтобы Apache мог найти этот файл и правильно его обслужить, он должен быть сохранен в конкретном каталоге, который называется «веб-корнем».
В Ubuntu 18.04 этот каталог находится по адресу . Создайте файл в этом месте, запустив:
Это откроет пустой файл. Добавьте следующий текст:
Когда вы закончите, сохраните и закройте файл.
Теперь вы можете проверить, может ли ваш веб-сервер правильно отображать контент, сгенерированный этим PHP-скриптом.
Посетите эту страницу в своем веб-браузере:
Эта страница содержит основную информацию о вашем сервере с точки зрения PHP. Если вы видите эту страницу в своем браузере, значит ваш PHP работает как положено.
Возможно, вы захотите удалить этот файл после этого теста, потому что он может дать информацию о вашем сервере злоумышленникам. Для этого выполните следующую команду:
Настройка ssl сертификата Lets Encrypt в apache
Теперь настроим работу web сервера apache с ssl сертификатом. Хотя если быть точным, то tls сертификатом. Устанавливаем пакет certbot для получения бесплатного ssl сертификата от let’s encrypt. Для этого нам сначала надо подключить репозиторий epel.
# dnf install epel-release # dnf install certbot
После установки пакетов certbot, если его запустить, напишет ошибку, что не может сам настроить apache.
Настроим все сами. Для начала создадим самоподписанный дефолтный сертификат, чтобы apache не ругался на отсутствие файла и смог запуститься.
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/localhost.key -out /etc/ssl/certs/localhost.crt
Все параметры оставляйте дефолтные, не принципиально. Мы этот сертификат использовать не будет. Перезапустите apache.
# apachectl restart
Теперь выпустим сертификат для нашего домена. Имейте ввиду, чтобы получить сертификат у вас должно быть действующее доменное имя, ссылающееся на web сервер, который настраиваете. Let’s Encrypt будет по доменному имени обращаться к серверу, на котором настраиваете сертификат, чтобы проверить домен. В тестовой лаборатории с вымышленным доменным именем получить настоящий ssl сертификат не получится.
# certbot certonly
В качестве способа аутентификации выбирайте
1: Apache Web Server plugin (apache)
Дальше заполняйте в соответствии с вашими названиями. После получения сертификата, укажем его в конфигурации виртуального хоста. В моем случае в файле z.Boutoul.com.conf. Добавляем туда параметры ssl.
<VirtualHost *:80 *:443> ServerName z.Boutoul.com ServerAlias www.z.Boutoul.com DocumentRoot /web/sites/z.Boutoul.com/www ErrorLog /web/sites/z.Boutoul.com/log/error.log CustomLog /web/sites/z.Boutoul.com/log/access.log common SSLEngine on SSLCertificateFile /etc/letsencrypt/live/z.Boutoul.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/z.Boutoul.com/privkey.pem <Directory /web/sites/z.Boutoul.com/www> Options FollowSymLinks AllowOverride All Require all granted </Directory> php_admin_value date.timezone 'Europe/Moscow' php_admin_value max_execution_time 60 php_admin_value upload_max_filesize 30M </VirtualHost>
Перезапускайте apache и проверяйте работу сайта по https, зайдя по соответствующему протоколу.
По аналогии делаете с остальными виртуальными хостами, для которых используете бесплатные сертификаты let’s encrypt. Осталось дело за малым — настроить автоматический выпуск новых ssl сертификатов, взамен просроченным. Для этого добавляем в /etc/crontab следующую строку:
# Cert Renewal 30 4 * * * root /usr/bin/certbot renew --post-hook "/usr/sbin/apachectl restart" >> /var/log/le-renew.log
Переадресация с http на https в apache
В настроенном ранее примере https отлично работает, но неудобно, что нет автоматической переадресации с http на https. Чтобы использовать безопасную версию сайта, необходимо вручную в браузере набирать https. Хотя все современные браузеры уже сами умеют проверять версии сайта и если есть защищенная, то они автоматически сами ее выбирают.
Тем не менее, лучше все же добавить редирект с http на https. Его можно сделать двумя различными способами:
- Через файл .htaccess
- С помощью настройки виртуального хоста.
Мне нравится больше второй вариант, поэтому приводим конфиг виртуального хоста к следующему виду.
<VirtualHost *:80> ServerName z.Boutoul.com ServerAlias www.z.Boutoul.com Redirect permanent / https://z.Boutoul.com </VirtualHost> <VirtualHost *:443> ServerName z.Boutoul.com ServerAlias www.z.Boutoul.com DocumentRoot /web/sites/z.Boutoul.com/www ErrorLog /web/sites/z.Boutoul.com/log/error.log CustomLog /web/sites/z.Boutoul.com/log/access.log common SSLEngine on SSLCertificateFile /etc/letsencrypt/live/z.Boutoul.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/z.Boutoul.com/privkey.pem <Directory /web/sites/z.Boutoul.com/www> Options FollowSymLinks AllowOverride All Require all granted </Directory> php_admin_value date.timezone 'Europe/Moscow' php_admin_value max_execution_time 60 php_admin_value upload_max_filesize 30M </VirtualHost>
Перечитывайте конфиг httpd и проверяйте. Должно работать автоматическое перенаправление на https версию.
Онлайн курс по Linux
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом “Administrator Linux. Professional” в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.
Что даст вам этот курс:
- Знание архитектуры Linux.
- Освоение современных методов и инструментов анализа и обработки данных.
- Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
- Владение основными рабочими инструментами системного администратора.
- Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
- Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.
Проверьте себя на вступительном тесте и смотрите подробнее программу по .
Установка NGINX
Устанавливаем NGINX:
dnf install nginx
Внесем небольшую корректировку в файл nginx.conf:
vi /etc/nginx/nginx.conf
В секцию http добавим строку:
http {
…
server_names_hash_bucket_size 64;
….
}
* на практике, может встретиться ошибка could not build server_names_hash, you should increase server_names_hash_bucket_size: 32. Она возникает при большом количестве виртуальных серверов или если один из них будет иметь длинное название. Данная строка в конфиге исправит ситуацию.
Разрешаем автозапуск сервиса и запустим его:
systemctl enable nginx
systemctl start nginx
Проверим, что веб-сервер работает. Для этого открываем браузер на другом компьютере, который находится в одной сети и вводим в адресной строке IP-адрес сервера. В итоге мы должны увидеть заголовок «Welcome to nginx!»:
* обратите внимание, что данное приветствие может иметь и другой вид
Установка PHP 5
Чтобы установить модуль PHP для Apache используйте любой метод для того, чтобы установить пакет .
Включить модуль PHP 5 в Apache можно выполнив:
sudo a2enmod php5
Это создаст символическую ссылку /etc/apache2/mods-enabled/php5 указывающую на /etc/apache2/mods-availble/php5 .
Если не вы используете устаревшие в PHP короткие теги (что крайне нерекомендуемо) вместо откройте от имени суперпользователя
файл , найдите в нем строчку
short_open_tag = On
и замените ее на
short_open_tag = Off
Это заставит игнорировать открывающие теги в файлах, обрабатываемых PHP.
Для того, чтобы изменения вступили в силу перезапустите Apache
sudo service apache2 restart
note
Проверка PHP
В папке /var/www создайте файл test.php, дайте права на чтение из него всем (или хотя бы пользователю ) и запишите в него следующую строку:
<?php phpinfo(); ?>
Возможные ошибки
Ваш браузер предлагает вам скачивать PHP-страницы, а не показывает вам их? Если Apache не обрабатывает PHP-страницы после того как вы ео перезапустили, попробуйте установить пакет . Обычно он устанавливается вместе с пакетом , но он может быть удален изза конфликта пакетов, которым нужна другая версия PHP.
Если при выполнении команды вы получаете в ответ
This module does not exist!
попробуйте полностью удалить пакет
sudo apt-get purge libapache2-mod-php5
и установить его заново.
Не забывайте очищать кеш браузера перед тем как снова тестировать свой сайт.
Заключение
Теперь, когда ваш стек LAMP установлен, у вас есть множество вариантов того, что делать дальше. Фактически, вы установили платформу, которая позволит установить (развернуть) большинство типов веб-сайтов и сетевого программного обеспечения на вашем сервере.
В качестве первого шага мы рекомендуем настроить веб-сервер на работу через HTTPS. Самый простой вариант обезопасить свой сайт с помощью бесплатного TLS/SSL сертификата — это использовать сервис Let’s Encrypt.
Некоторые другие популярные мероприятия:
- Установить WordPress — наиболее популярную систему управления контентом в интернете.
- Установить PHPMyAdmin для управления базами данных MySQL из веб-браузера.
- Научиться использовать SFTP для передачи файлов на ваш сервер и с него.