Menu

Ставим Apache, PHP 7.1 и MariaDB на CentOS 7.3

В этом руководстве показано, как можно установить веб-сервер Apache на сервере CentOS 7.1 с поддержкой PHP (mod_php) и MySQL.

LAMP - это короткое обозначение связки Linux, Apache, MySQL, PHP. Выполним установку последних версий PHP 7.1 на CentOS 7.3.

1 Предварительное замечание

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

Добавляем Epel repo, чтобы установить последнюю версию phpMyAdmin следующим образом:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
yum –y install epel-release

Для редактирования файлов в этой статье используется редактор nano. Можно использовать vi для редактирования файлов, но тогда надо пропустить этот шаг.

yum -y install nano

2 Установка MySQL / MariaDB

MariaDB является параллельной веткой MySQL от оригинального разработчика MySQL Манти Видениуса. MariaDB совместим с MySQL, поэтому в этой статье используется MariaDB вместо MySQL. Требуется выполнить эту команду, чтобы установить MariaDB с Yum:

yum -y install mariadb-server mariadb

Затем создаются ссылки для запуска системы MySQL (так как MySQL запускается автоматически всякий раз, когда система загружается) и запускается сервер MySQL:

systemctl start mariadb.service
systemctl enable mariadb.service

Установка паролей для корневой учетной записи MySQL:

mysql_secure_installation

[root@server1 ~]# mysql_secure_installation
/
usr/bin/mysql_secure_installation: line 379: find_mysql_client: command
not found

ПРИМЕЧАНИЕ: Запуск всех частей этого скрипта РЕКОМЕНДУЕТСЯ ДЛЯ ВСЕХ MariaDB
СЕРВЕРА В ПРОИЗВОДСТВЕННОМ ИСПОЛЬЗОВАНИИ! ПРОЧТИТЕ ВНИМАТЕЛЬНО каждый шаг!

Введите текущий пароль для root (ввод не нужен):
<- ENTER
OK, успешно используется пароль, далее ...

Установка пароля гарантирует, что никто не сможет войти в MariaDB
корневого пользователя без требующегося разрешения.

Установить пароль? [Y / N]
Новый пароль:
<- yourmariadbpassword
Повторно ввести новый пароль:
<- yourmariadbpassword
Пароль успешно обновлен!
Перезагрузка таблицы привилегий.....

Успешно!
Удалить анонимных пользователей? [Y / N]
<- ENTER...

Успешно!
Запретить логин root удаленно? [Y / N]
<- ENTER...

Успешно!
Удалить тестовую базу данных и доступ к ней? [Y / N]
<- ENTER
- Удаление тестовой базы данных ......

Успешно!
- Удаление привилегий на тестовой базе ......

Успешно!
Обновить таблицы привилегий сейчас? [Y / N]
<- ENTER
... Успешно!
Очистка ...
Готово!

 

Если были выполнены все описанные выше действия, то установка MariaDB
теперь должна стать безопасной.

3 Установка Apache

CentOS 7 поставляется с Apache 2.4. Apache непосредственно доступен как пакет CentOS 7, поэтому можно установить его так:

yum -y install httpd

Вот скриншот процесса установки.

***

Теперь настройка системы для запуска Apache во время загрузки ...

systemctl start httpd.service

systemctl enable httpd.service

Для того, чтобы иметь возможность получения доступа к веб-серверу извне, необходимо открыть порты HTTP (80) и HTTPS (443) в брандмауэре. Межсетевой экран по умолчанию на CentOS - firewalld, который может быть сконфигурирован с помощью команды firewalld-cmd.

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

Теперь в браузере постучимся на IP-адрес сервера, в нашем случае http://192.168.1.100 , и - о, чудо! - можно увидеть страницу приветствия Apache.

 

4 Установка PHP

PHP версия, которая поставляется с CentOS довольно старая (PHP 5.4), поэтому в этом разделе показано некоторые варианты установки более новых версий PHP, как PHP 7.0 или 7.1 из Remi хранилища.

Надо добавить репозиторий Remi CentOS.

rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Требуется установка

yum-утилит, если нужна утилита

yum-

config-

manager.

yum -y install yum-utils

и запуск

yum обновления

yum update

Теперь надо выбрать, какая версия PHP будет использоваться на сервере. Если PHP 5.4, то приступить к следующей команде. Если PHP 7.0, то следовать командам в разделе 4.1, а для PHP 7.1 использовать раздел 4.2.

Чтобы установить PHP 5.4, требуется выполнить следующую команду:

yum –y install php

4.1 Установка PHP 7.0 (опционально)

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

yum-config-manager --enable remi-php70

yum -y install php php-opcache

4.2 Установка PHP 7.1 (опционально)

Если PHP 7.1 то нужно использовать:

yum-config-manager --enable remi-php71

yum -y install php php-opcache

В этом примере и в загружаемой виртуальной машине, будет использоваться PHP 7.1.

Необходимо перезапустить Apache, чтобы применить изменения:

systemctl restart httpd.service

5 Тестирование PHP / Получение более полной информации о PHP. Установка

Корень документа веб-сайта по умолчанию является / Var / WWW / HTML. Нужно создадать маленький PHP файл (info.php) в этом каталоге и назвать его в браузере, чтобы проверить установку PHP. Файл будет отображать множество полезных деталей о установке PHP, таких как установленная версия PHP.

nano /var/www/html/info.php

<? PHP

phpinfo ();

?>

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

 

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

6 Поддержка MySQL в PHP

Чтобы получить поддержку MySQL в PHP, нужно установить php71w-MySQL пакет. Это хорошая идея: установить некоторые другие модули PHP, а также они могут понадобиться для других приложений. Можно выполнить поиск доступных PHP5 модулей , например, так:

yum search php

Надо выбрать те, что нужны, и установить их следующим образом:

yum -y install php-mysql

На следующем этапе выполняется установка некоторых общих PHP модулей, которые необходимы для CMS систем, таких как Wordpress, Joomla и Drupal:

 

yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-soap curl curl-devel

Теперь перезапуск веб-сервера Apache:

systemctl restart httpd.service

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

curl и т.д.:

 

Если не нужна больше информация o PHP, можно удалить этот файл из соображений безопасности.

rm /var/www/html/info.php

7 установка PhpMyAdmin

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

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

yum -y install PhpMyAdmin

Теперь, пока устанавливается PhpMyAdmin, надо поменять конфигурацию Apache так, чтобы PhpMyAdmin позволял устанавливать соединение не только с локального хоста (закомментировать строфу <RequireAny> и добавить строку "Require all granted"):

nano /etc/httpd/conf.d/phpMyAdmin.conf

[...]
[...]
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
# <RequireAny>
# Require ip 127.0.0.1
# Require ip ::1
# </RequireAny>
Require all granted
</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>
[...]
[...]

Далее, нужно изменить аутентификацию в PhpMyAdmin из cookie в HTTP:

[...]
$cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)?
[...]

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

systemctl restart httpd.service

После этого, получен доступ к

phpMyAdmin в разделе http://192.168.1.100/phpmyadmin/:

5 комментарии

  • Марк Заславский

    написал Марк Заславский

    Понедельник, 19 Июнь 2017 21:29

    Вашими силами и установил на VDS. Простой юзер.
    Только зачем с phpmyadmin не понял, (я ведь простой уч. врач).
    remove и снова install
    требует javascript
    Но , я так для порядку поставил phpmyadmin (без Ваших непонятных корректив)
    А так я в консоли справляюсь без этих 2 mb (да и изменять не надо).
    С уважением. Огромное спасибо. Сейчас поставлю друпал 8.

    Пожаловаться
  • Владимир Драч

    написал Владимир Драч

    Пятница, 23 Июнь 2017 21:26

    Конечно, можно не устанавливать phpmyadmin, если он Вам не нужен. Если можете работать без него - прекрасно!

    Пожаловаться
  • RicсhardSar

    написал RicсhardSar

    Воскресенье, 30 Сентябрь 2018 04:59

    Всё-таки MariaDB не лучший выбор. Я бы рекомендовал проверенный mySQL.

    Пожаловаться
  • Андрей

    написал Андрей

    Понедельник, 24 Декабрь 2018 14:10

    Не работает!
    Установил php 7.1 по мануалу. Создал файл info.php, при попытке зайти в браузере на localhost/info.php выдает пустую страницу. localhost отдает стартовую страницу Апача. Ощущение такое, что httpd не подружился с php7.1. Что делать?

    Пожаловаться
  • Владимир Драч

    написал Владимир Драч

    Понедельник, 24 Декабрь 2018 23:59

    Андрей, а что в логах nginx и PHP?
    Кстати, заметьте, уже вышла весрия РНР 7.2.

    Пожаловаться
Авторизуйтесь, чтобы получить возможность оставлять комментарии
Go to top