Устанавливаем Apache 2, PHP 5.3 и MySQL 5.1 на CentOS 5.4/5.5
В моей работе мне чаще всего приходится работать с системами на Debian или Ubuntu, но в этот раз новый сервер оказался на CentOS, а так как с этой системой я сталкиваюсь впервые, то пришлось немного «погуглить», прежде чем освоиться в ней. Для начала необходимо было развернуть web сервер для проектов, то есть поставить Apache+PHP и MySQL. Впоследствии необходимо будет настроить эти компоненты, а так же установить и настроить nginx, но пока не об этом.
В качестве установщика пакетов здесь используется yum вместо привычного apt-get, что в принципе и понятно,т.к. данный дистрибутив основан на коммерческом Red Hat Enterprise Linux компании Red Hat, и совместимый с ним. Да и сам Apache называется не apache2, а httpd.
Ну что же, приступим к установке и настройке нашего веб-сервера.
1. Зайдем под пользователем root
su - ## Или ## sudo -i
2. Добавим репозиторий Remi
В данном репозитории находятся новые пакеты, например там лежит php-5.3, т.к. в стандартном репозитории php ещё версии 5.1.6
## Remi Dependency on CentOS and Red Hat (RHEL) rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
Стоит заметить, что на момент написания статьи последний релиз epel был 5.4 и он может в будущем измениться.
За ссылкой на последнюю версию epel можно обратиться вот сюда
3. Установим Apache (httpd) Web server и PHP 5.3
На момент написания статьи последняя версия php — 5.3.3. Не забывайте при установке пакетов указывать репозиторий (—enablerepo=remi).
yum --enablerepo=remi install httpd php php-common
4. Установим необходимые модули PHP
Мне понадобились следующие модули: PDO, MySQL, Memcache, GD, MBString, XML
yum --enablerepo=remi install php-pdo php-mysql php-pecl-memcache php-gd php-mbstring php-xml
5. Запустим Apache HTTP server (httpd) и добавим его в автозагрузку
/etc/init.d/httpd start ## или ## service httpd start chkconfig --levels 235 httpd on
Если вы обновляете Apache или уставливаете новые модули к php не забывайте его перезагружать (service httpd restart)
6. Создадим тестовый файл для проверки работоспособности сервера
Добавим функцию php — phpinfo() в файл «/var/www/html/test.php».
<?php phpinfo();
Следует заметить, что директория «/var/www/html/» является директорий по умолчанию для файлов веб-сервера. Ее можно сменить в конфигурационном файле Apache «/etc/httpd/conf/httpd.conf». В нем же, впоследствии, можно и настроить виртуальные хосты и указать необходимые модули для Apache.
Хочу заметить, что работа с файлами конфигурации веб-сервера в Debian мне нравится больше. Хотя бы из-за того, что все разложено по полочкам, а тут придется это делать самому.
7. Установим mysql
yum --enablerepo=remi install mysql yum --enablerepo=remi install mysql-server
Очень порадовало, что в репозитори лежит mysql 5.1.50
8. Запустим mysql
service mysqld start # Добавим в автозагрузку chkconfig --levels 235 mysqld on
И не забудьте, что бы поставить новый пароль пользователю root, необходимо выполнить вот такие команды
/usr/bin/mysqladmin -u root password 'new-password' /usr/bin/mysqladmin -u root -h localhost.localdomain password 'new-password'
Или запустить вот этот скрипт «/usr/bin/mysql_secure_installation». И, если, вы устанавливаете сервер для продакшена, не забывайте удалять анинимного (anonymous, everybody) пользователя и тестовую базу данных.
Впрочем эти сообщения Вы сможете видеть после запуска mysql.
9. Проверим доступность нашего сервера
Теперь откроем браузер и попробуем перейти по адресу http://<адрес сервера>/test.php, если информация о php появилась, то все работает как надо. Если страница не открылась, то:
- Проверьте, верно ли вы выполнили все шаги
- Открыть доступ в iptables для 80 порта (если iptables установлен)
Настройка iptables
Если у Вас не установлен редактор nano, то советую его поставить (если Вы, конечно, не привыкли работать в vi)
yum install nano
Далее откройте следующий файл «/etc/sysconfig/iptables»
nano /etc/sysconfig/iptables
И добавьте следующую строчку до слова COMMIT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
И перезагрузите iptables
service iptables restart ## Или ## /etc/init.d/iptables restart
Вот собственно и все. Удачной настройки!