Установка 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.service

CentOS 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

http://your.server.ip.adders/

apache-server-online-centos-7-1

Установка 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);
?>

php-working-centos-7-2

Установка 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

phpmyadmin-install-demo-success

Все готово!
Детально изучаем каждый компонент связки LAMP, а также настраиваем программную реализацию протокола dns, ssl, системы мониторинга, резервного копирования и многое другое на нашем курсе «L2-LAMP. Администрирование веб-серверов на Linux«!

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *