Как установить Apache, MariaDB/MySQL и PHP на CentOS (LAMP)

Если вас интересует, как установить сервер на Windows, то вам сюда "Установка Apache, PHP, MySQL, phpMyAdmin на Windows".

Apache, MariaDB/MySQL и PHP — это популярная серверная связка, которая используется для создания динамических веб-сайтов и веб-приложений. На платформах Linux эту связку называют акронимом LAMP (по первым буквам слов Linux, Apache, MySQL и PHP). Т.е. связка LAMP состоит из Apache (сам сервер HTTP), баз данных MariaDB или MySQL и PHP, Perl или Python — серверных языков программирования. Возможные разные варианты, которые обозначаются разными акронимами: LEMP (nginx, MySQL, PHP), LAPP (Apache, PostgreSQL, PHP), LLPR (Lighttpd, PostgreSQL, Ruby on Rails) и так далее.

В этой инструкции я опишу как установить и настроить связку Apache, MariaDB/MySQL и PHP (LAMP) на сервер CentOS. Эта инструкция применима к платформам CentOS 6 а также CentOS 7.

1. Apache HTTP Server

На этом шаге давайте установим Apache HTTP server на CentOS. После мы также выполним базовую конфигурацию сервера Apache, такую как добавим службу Apache в список автозапуска и откроем HTTP в файерволе.

Установка сервера Apache HTTP

$ sudo yum install httpd

Запуск сервера Apache HTTP и настройка файервола

В CentOS 7:

$ sudo systemctl start httpd
$ sudo systemctl enable httpd
$ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
$ sudo firewall-cmd --reload

В CentOS 6:

$ sudo service httpd start
$ sudo chkconfig httpd on
$ sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo service iptables save

Проверка сервера Apache HTTP

Чтобы протестировать установку, проверяем, запущен ли и выполняется ли успешно демон httpd.

В CentOS 7:

$ sudo systemctl status httpd

15067546624_b8ecd04910_o

В CentOS 6:

$ sudo service httpd status
httpd (pid 2069) is running...

После подтверждения статуса httpd, откройте веб-браузер и перейдите http://<ip-адрес-веб-вервера> чтобы увидеть загрузку дефолтной веб-страницы Apache. Этот скриншот внизу показывает дефолтную веб-страницу на CentOS 6 (192.168.1.8) и CentOS 7 (192.168.1.11).

15501627019_4683010830_o

Обратите внимание, что по умолчанию корневой каталог httpd — это /var/www/html на обоих CentOS 6 и 7. Двигаемя дальше.

2. MariaDB/MySQL

Следующий шаг — это установить базу данных для нашего сервера, нам на выбор есть два варианта: MySQL и MariaDB. В то время как CentOS/RHEL 6 распространяется с пакетами сервер/клиент MySQL, CentOS/RHEL 7 отошла от MySQL, и вместо неё предлагает MariaDB как базу данных по умолчанию, MariaDB — это форк MySQL разрабатываемый сообществом.

Ниже как установить сервер MariaDB/MySQL и настроить автоматический старт при загрузке.

На CentOS 7:

$ sudo yum install mariadb-server
$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb

На CentOS 6:

Установка пакета сервер/клиент MySQL и запуск сервера MySQL делается так.

$ sudo yum install mysql-server
$ sudo service mysqld start
$ sudo chkconfig mysqld on

Так как MariaDB и MySQL совместимы друг с другом в плане API и использования командной строки, настройка связки нашего сервера будет одинаковой, независимо от выбора MariaDB или MySQL.

В качестве меры предосторожности, запустите следующий дополнительный скрипт, который включён в серверный пакет MariaDB/MySQL.

$ sudo mysql_secure_installation

15644566071_36908c00f3_o

Этот скрипт переконфигурирует базу данных сервера в целях упрочнения сервера. Например, он заменит (пустой) пароль рута (root), удалит анонимного пользователя, отключит удалённую авторизацию рута и удалит дефолтную тестовую базу данных.

3. PHP

Последний шаг настройки LAMP — это установка PHP, скриптового языка на стороне сервера, который отвечает за динамическое создание веб-страниц для пользователей. Для минимальной работы LAMP требуется установка следующих двух паетов.

$ sudo yum install php php-mysql

Этот пакет PHP добавляет поддержку сервера Apache HTTP и пакет php-mysql позволяет приложениям PHP иметь доступ к серверу MariaDB/MySQL. Кроме этих двух обязательных пакетов, есть много других полезных модулей PHP, которые можно установить в зависимости от ваших потребностей. Например:

  • php-gd: необходим для работы приложений PHP с изображениями.
  • php-odbc: необходим для доступа приложений PHP к базе данных ODBC.
  • php-pecl-memcache: необходим когда настроен демон кэша Memcached.
  • php-pgsql: необходим для доступа к базе данных PostgreSQL в приложениях PHP.
  • php-snmp: необходим для запросов к устройствам под управлением SNMP в приложениях PHP.
  • php-xml: необходим для разбора XML в приложениях PHP.
  • php-soap: необходим для поддержки протокола SOAP в приложениях PHP.
  • php-xmlrpc: необходим для поддержки протокола XML-RPC в приложениях PHP.

Вы можете получить полный список доступных модулей PHP выполнив:

$ yum search php-

Далее давайте изменить временную зону по умолчанию, которую используют приложения PHP. Вам будет нужно найти вашу временную зону используя команду tzselect.

$ tzselect

15068126933_ea64d1616d_o

После ответа на серию вопросов, tzselect выведет строку с вашей временной зоной (например, "America/New_York"). Откройте файл /etc/php.ini текстовым редактором и добавьте следующие строки.

date.timezone = "America/New_York"

Не забудьте перезапустить httpd после установки PHP.

В CentOS 7:

$ sudo systemctl restart httpd

В CentOS 6:

$ sudo service httpd restart

Наконец, давайте проверим, работает ли PHP должным образом. Для этого используйте следующую команду и проверьте корректен ли вывод phpinfo().

$ php -r "phpinfo();" | more

15502096038_04424d7602_o

Как только вы верифицировали вывод командной строки PHP, давайте создадим PHP файл и верифицируем, что PHP файл успешно загружается сервером Apache HTTP.

$ sudo vim /var/www/html/test.php
<?php phpinfo(); ?>

Перейдите http://<ip-адрес-веб-сервера>/test.php в вашем браузере. Вы должны увидеть следующий выход.

15689083192_6112673ce9_o

Теперь вы успешно настроили связку LAMP!

Оставьте комментарий