Установка LAMP на СentOS 7 (Apache, PHP 7.1, SQL MariaDB 10, phpMyAdmin)

В статье рассмотрим, как установить LAMP (Linux, Apache, MySQL, PHP) на СentOS 7. В качестве примера будем использовать php версии 7.1, MySQL (MariaDB 10.1), phpMyAdmin и Apache.
LAMP – аббревиатура от слов Linux, HTTP-сервер Apache, реляционная база данных MySQL и язык программирования PHP. Компоненты этой связке можно изменять, не ограничиваясь вышеперечисленными. По сути, LAMP – это стек, который используется при создании динамических web-сайтов и web-приложений.
Обновление системы
yum -y updateУстанавливаем репозиторий EPEL
yum -y install epel-releaseУстанавливаем репозиторий REMI
wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm rpm -Uvh remi-release-7*.rpmСмотрим информацию об установленных репозиториях
yum repolistУстановка MySQL (MariaDB)
Скачиваем репозиторий MariaDB
vi /etc/yum.repos.d/MariaDB.repoДобавляем репозиторий MariaDB YUM
Важно! Для начала убедитесь, что используется последняя версия MariaDB 10.[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.1/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1Добавляем репозиторий REMI (меняем enabled=0 на enabled=1)
vi /etc/yum.repos.d/remi.repoВывод должен быть примерно таким
[remi] name=Remis RPM repository for Enterprise Linux 7 - $basearch #baseurl=http://rpms.remirepo.net/enterprise/7/remi/$basearch/ #mirrorlist=https://rpms.remirepo.net/enterprise/7/remi/httpsmirror mirrorlist=http://rpms.remirepo.net/enterprise/7/remi/mirror enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remiУстанавливаем MySQL (MariaDB)
yum -y install mariadb-server mariadbЗапускаем утилиту
systemctl start mariadb.serviceСоздаем пароли в MariaDB для учетной записи root
mysql_secure_installationВывод команды
# mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, well need the current password for the root user. If youve just installed MariaDB, and you havent set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): (just press enter here) OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] (just press enter here) New password: (enter new root SQL password) Re-enter new password: (re-enter new root SQL password) Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] (just press enter here) ... Success! Normally, root should only be allowed to connect from localhost. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] (just press enter here) ... Success! By default, MariaDB comes with a database named test that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] (just press enter here) - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] (just press enter here) ... Success! Cleaning up... All done! If youve completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!Установка веб сервера Apache
Вводим команду
yum -y install httpdЗапускаем веб-сервер Apache
systemctl start httpd.serviceДобавляем httpd в автозагрузку
systemctl enable httpd.serviceCentOS 7 использует Firewall-CMD в закрытом режиме по умолчанию, поэтому необходимо настроить его для обеспечения доступа по порту 80 (http) или 443 (https).
systemctl start firewalld firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-service=https firewall-cmd --reloadПроверяем, запустился ли Apache
yum install -y network-tools netstat -nltp | grep 80
Установка PHP 7.1
Убеждаемся, что у нас установлен remi-php71.repo
ls /etc/yum.repos.dВывод команды
CentOS-Base.repo CentOS-Vault.repo remi-php54.repo CentOS-CR.repo CentOS-fasttrack.repo remi-php70.repo CentOS-Debuginfo.repo MariaDB.repo remi-php71.repo CentOS-Media.repo epel-testing.repo remi-safe.repo CentOS-Sources.repo epel.repo remi.repoДобавляем репозиторий REMI для php7.1 (меняем enabled=0 на enabled=1)
vi /etc/yum.repos.d/remi-php71.repoПолучаем вывод
[remi-php71] name=Remis PHP 7.1 RPM repository for Enterprise Linux 7 - $basearch #baseurl=http://rpms.remirepo.net/enterprise/7/php71/$basearch/ #mirrorlist=https://rpms.remirepo.net/enterprise/7/php71/httpsmirror mirrorlist=http://rpms.remirepo.net/enterprise/7/php71/mirror enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remiУстанавливаем PHP
yum -y install phpЗатем поддержку MySQL для PHP7
yum -y install php-mysqlМожем установить некоторые распространенные модули PHP, которые необходимы для работы CMS, таких как WordPress, Drupal и Joomla
yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-develПерезапускаем Apache
systemctl restart httpd.serviceСоздадим пробный файл php info
vi /var/www/html/info.phpДобавим туда строки
<?php phpinfo(); phpinfo(INFO_MODULES); ?>
Установка phpMyAdmin
Устанавливаем phpMyAdmin – веб интерфейс для управления базами данных MySQL
yum install phpMyAdminВносим изменения в Apache, чтобы дать возможность подключаться phpMyAdmin не только с localhost
vi /etc/httpd/conf.d/phpMyAdmin.confДобавляем строки
<Directory /usr/share/phpMyAdmin/> Options none AllowOverride Limit Require all granted </Directory>И получаем вот такой вывод команды
cat /etc/httpd/conf.d/phpMyAdmin.conf # phpMyAdmin - Web based MySQL browser written in php # # Allows only localhost by default # # But allowing phpMyAdmin to anyone other than localhost should be considered # dangerous unless properly secured by SSL Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin <Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> # Apache 2.4 Require local </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory> <Directory /usr/share/phpMyAdmin/> Options none AllowOverride Limit Require all granted </Directory>Вывод
[...] /* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'http'; /* Server parameters */ [...]Перезапускаем Apache
systemctl restart httpd.serviceЧтобы убедиться, что phpMyAdmin работает, переходим по ссылке systemctl restart httpd.service
Наш логин: root, пароль – тот, который мы создавали при создании аккаунта суперпользователя для MySQL
Все готово!
Детально изучаем каждый компонент связки LAMP, а также настраиваем программную реализацию протокола dns, ssl, системы мониторинга, резервного копирования и многое другое на нашем курсе “L2-LAMP. Администрирование веб-серверов на Linux“!