Linux: web-сервер на CentOS 6

Я в курсе, что в глобальной сети полно статей про установку и настройку web-серверов. И сегодня каких-то неописанных особенностей про настройку LAMP нет. Но моя лень в будущем заставила написать свою версию мануала для дальнейшей копипаст-установки.
Итак начнем. Выбор шестой версии центОси связан с отсутствием "оченьУмного" фаервола из семерки, который всё равно лишь оболочка iptables. Другими словами "шестерка"(в образе минимал) - идеальная платформа для любого веб-сервера.
Процесс установки и обязательного обновления операционной системы я пропущу - этих мануалов много =)

Для дальнейшей успешной работы веба откроем(пока) 2 основных порта - 80(http) и 443(https):

iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT; iptables -I INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT; service iptables save

Теперь ставим Apache(httpd'eamon) и модуль апача для работы с защищенным протоколом:

yum install httpd mod_ssl -y

Проверим работу http-протокола:

service httpd start

Предупреждение "httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName" исправляется просто и лучше это сделать сразу.
Откройте в браузере адрес вашего индейца и убедитесь, что страница "Apache HTTP Server Test Page powered by CentOS" открылась.
Не люблю стоПятьсот строк комментариев в часто используемых конфигурационных файлах. Поэтому сразу после создания копии конфига индейца: cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.old - удалю не нужные строки. Важно! Всегда перед внесением изменений 2-ух и более строк конфиг-файлов делайте бекап!

-=Здесь будут важные моменты конфига=-

Перезагрузим службу и укажем автоматический запуск с системой:

service httpd restart; chkconfig httpd on

Остались ssl, бекэнд для http(s) запросов, СУБД, phpMyAdmin и php.

Корректная работа таких популярных CMS-систем, как Joomla, WordPress, Bitrix возможна лишь на системах с предустановленным php. А, да, еще же и phpMyAdmin =)

yum install php php-common php-gd php-xml php-mbstring php-mysql -y

Проверим корректность работы php после установки:

service httpd restart; echo '' > /var/www/html/phpinfo.php

Переходим по адресу http://айпи.индейца/phpinfo.php Работает? Остались ssl, nginx, phpMyAdmin и MySQL.

О предназначении СУБД на веб-сервере я рассказывать не стану. Да и о причинах выбора именно MySQL тоже.

yum install mysql mysql-server -y; chkconfig mysqld on; service mysqld start && mysql_secure_installation

Погнали: Enter(Пароля рута пока нет) -> Enter(Конечно хочу такой создать) -> p@s$w0rd -> p@s$w0rd -> Enter(Очень хочу удалить анонимов) -> Enter(Безумно хочу отключить рута из вне) -> Enter(Да и тестовые БД мне не нужны) -> Enter(Перезагрузка привилегий обязательна) -> Спасибо что выбрали MySQL!
Бравая тройка ssl, nginx и phpMyAdmin впереди!

Для установки phpMyAdmin нам пора подключить репозиторий EPEL. Дальше:
yum install phpMyAdmin -y; cp /etc/httpd/conf.d/phpMyAdmin.conf /etc/httpd/conf.d/phpMyAdmin.conf.old; vi /etc/httpd/conf.d/phpMyAdmin.conf.

Важно! Всегда изменяйте адреса-синонимы на что-то не логичное. Для phpMyAdmin не надо использовать /phpmyadmin или /pma. Возьмите к примеру такое имя: Alias /hJn2f /usr/share/phpMyAdmin, а полный адрес запишите себе в KeePass, чтобы не забыть.
Никогда не комментируйте строки "Deny from All", забыть вернуться сюда слишком просто. Добавьте в качестве разрешенного айпишника внутренний/внешний(надеюсь он статический) айпи(в зависимости от места пребывания вашего веб-сервера) и смело выходите, сохранив файл.

chmod 744 -R /usr/share/phpMyAdmin; chown -R apache:apache /usr/share/phpMyAdmin; service httpd restart

ssl и nginx нас ждут! ...позже

Запись опубликована в рубрике Заметки