Если вас интересует, как установить сервер на 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
В 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).
Обратите внимание, что по умолчанию корневой каталог 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
Этот скрипт переконфигурирует базу данных сервера в целях упрочнения сервера. Например, он заменит (пустой) пароль рута (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
После ответа на серию вопросов, 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
Как только вы верифицировали вывод командной строки PHP, давайте создадим PHP файл и верифицируем, что PHP файл успешно загружается сервером Apache HTTP.
$ sudo vim /var/www/html/test.php <?php phpinfo(); ?>
Перейдите http://<ip-адрес-веб-сервера>/test.php в вашем браузере. Вы должны увидеть следующий выход.
Теперь вы успешно настроили связку LAMP!