Установка и настройка Apache, PHP, MySQL на CentOS

Если Вы заказали VPS/VDS сервер и не знаете как корректно его настроить для работы с сайтами то данная статья как раз для вас. 
В данной статье мы рассмотрим как установить и настроить полноценный веб сервер.  Следую всем указаниям и примерам в статье Вы получите настроенный веб сервер с установленным  Apache, PHP, MySQL.
Для начала нам нужно подключится к нашему серверу. 

1. Обновляем систему.

# yum update

 

2. Настройка брэндмауера (iptables).

Для этого воспользуемся утиллитой setup (если ее нет, то ставим #yum install setuptool).
Запускаем # setup.
Вылезет окошко, в котором очень просто разобраться. Там можно либо отключить iptables, либо открыть нужные порты. Рекомендую сделать второе. Выбираем все нужные нам веб, фтп, ssh и прочие соединения.
Если не помогло, то просто отключаем его 

# service iptables stop && chkconfig iptables off

 

3. Устаналвиваем Apache, SSL.

# yum -y install httpd mod_ssl

Редактируем конфигурационный файл апача

Открываем в любимом редакторе файл
/etc/httpd/conf/httpd.conf В ServerName вносим свой адрес или имя сервера.

Прописываем Apache в автозапуск:

# chkconfig httpd on

Запускаем Apache:
# service httpd start

Создаем тестовую страницу:
# echo '<h1>It Works!{C}h1>' > /var/www/html/index.html

Проверяем результат, открыв в браузере с другой машины IP-адрес сервера:

http://IP-адрес_сервера/

Если надпись It Works! появилась, продолжаем дальше

4. Устанавливаем PHP с его доп. компонентами

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

Перезагружаем Apache:
# service httpd restart

Проверяем PHP:
Создадим php скрипт выводящий информацию о php:
# echo '' > /var/www/html/inf.php
Смотрим по адресу http://IP-адрес_сервера/inf.php
Если информация отобразилась, продолжаем дальше.

5. Устанавливаем MySQL.

# yum -y install mysql mysql-server

Прописываем MySQL в автозапуск:
# chkconfig mysqld on

Запускаем MySQL:
# service mysqld start

Устанавливаем root пароль MySQL:
# mysqladmin -u root password 'new-password'
Где new-password — ваш новый root пароль для MySQL.

6. Настраиваем Apache.

После того, как мы убедились, что все основные веб-службы у нас хорошо работают, можно переходить к созданию директорий сайтов.
Структура у нас будет такая:
/home/ — директория с сайтами
/home/site.by/ — директория отдельного сайта
/home/site.by/www/ — файлы этого сайта
/home/site.by/logs/ — логи этого сайта
/home/site.by/tmp/ — временные файлы этого сайта

И так, создаем в /home/ директории сайтов и в каждом из них папки www, logs, tmp.

После этого прописываем их в конфиг апача:
/etc/httpd/conf.d/ — В эту директорию будем создавать отдельный конфиг фаил для каждого сайта (так удобнее).
Файл site1.conf:

    ServerName site1.ru
    ServerAlias www.site1.by
    DocumentRoot /home/site1.by/www
    
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    Directory>
    #лог ошибок
    ErrorLog /home/site1.by/logs/error.log
    #
    #лог обращений выключен по умолчанию, для включения уберите #
    #CustomLog /home/site1.by/logs/access.log common
    #
    # php safety options
    #
    php_admin_flag register_globals 1
    php_admin_value date.timezone 'Europe/Minsk'
    php_admin_value open_basedir /home/site1.by
    php_admin_value max_execution_time 60
    php_admin_value upload_max_filesize 50M
    php_admin_value upload_tmp_dir /home/site1.by/tmp
    php_admin_value session.save_path /home/site1.by/tmp
VirtualHost>

Такой-же фаил надо создать для каждого сайта из директории /home/
После этого, перезапускаем апач:
# service httpd restart
Если апач вдруг не запустился, лог ошибок всегда можно посмотреть в /var/log/httpd/

Примечание:
Необходимо убедиться, что в файле /etc/sysconfig/selinux значение SELINUX равно disabled, если нет, то выставить.

Проверяем:
Для проверки совершенно не обязательно менять NS записи домена, достаточно отредактировать файл hosts на компьютере, с которого вы производите настройку. В windows он обычно лежит в C:\Windows\System32\drivers\etc\, в nix системах в /etc/

Добавляем туда строчку:
192.168.1.5 site1.by
Где 192.168.1.5 — ip адрес вашего сервера.
Далее, создаем в /home/site1.by/www/ фаил index.html с каким нибудь текстом.
Октрываем в браузере http://site1.by/
Если видим там его содержимое, то продолжаем.

7. Установка и настройка PhpMyAdmin (PMA)

Ставить будем вручную. Для этого нам потребуется менеджер загрузок wget.
Если у вас нет, то ставим:
# yum -y install wget
Идем на http://www.phpmyadmin.net/home_page/downloads.php и копируем ссылку на самую последнюю мультиязычную версию PhpMyAdmin со сжатием .tar.gz (На данный момент это — http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/3.5.6/phpMyAdmin-3.5.6-all-languages.tar.gz/download#!md5!aa6c996d264f4c04c00cbb2e97f3972a).
Идем в /var/www/html/:
# cd /var/www/html/
Скачиваем PMA:
# wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/3.5.6/phpMyAdmin-3.5.6-all-languages.tar.gz/download#!md5!aa6c996d264f4c04c00cbb2e97f3972a
В директории появится архив phpMyAdmin-3.5.6-all-languages.tar.gz, распаковываем его:
# tar xzf phpMyAdmin-3.5.6-all-languages.tar.gz
Переименуем директорию phpMyAdmin-3.5.6-all-languages в phpmyadmin:
# mv phpMyAdmin-3.5.6-all-languages phpmyadmin
Удалим архив phpMyAdmin-3.5.6-all-languages.tar.gz т.к. он нам больше не нужен:
# rm phpMyAdmin-3.5.6-all-languages.tar.gz

По идее у нас уже полностью рабочий PhpMyAdmin должен быть доступен по адресу — https://IP-адрес_сервера/phpmyadmin/

На этом можно завершить базовую настройку VPS/VDS сервера под управлением CentOS