Apache и PHP под Drupal на CentOS 5

Копипаста статьи про установку Apache и PHP на сервер. Когда использовал эти знания для своей работы, но оригинальная статья канула в лето вместе с сайтом автора…

+ многое уже и поменялось.

Может кому-то пригодится :-)

После действий, описанных в статье, будет установлено следующее ПО:

  • Веб-сервер Apache 2
  • PHP 5.2.x PHP 5.3.x или новее.
  • Uploadprogress
  • eAccelerator

CentOS 5 поставляется с PHP версий 5.1.6 и 5.3, библиотеки которых либо ограничивают функциональность Drupal, либо вызывают ошибки при работе. Мы будем использовать репозиторий CentOS Testing, который содержит в себе подходящую нам версию PHP 5.2.x (на момент написания данной статьи в репозитории находится версия 5.2.10)*.

* — Данный пункт на самом деле сильно устарел. Drupal 7 великолепно работает под php 5.3. Даже лучше, чем на старых версиях. К тому же установить php 5.2 из репозитория сейчас уже не реально. Нужно компилировать её самому. Как это сделать я писал в статье Установка нескольких версий php на ISPmanager

Установка Apache и PHP

Ставим инструменты:

yum groupinstall ’Development Tools’

Apache и PHP:

yum install httpd httpd-devel mod_php

Добавляем в автозагрузку (для автостарта Apache при рестарте VPS) и стартуем:

  1. chkconfig httpd on
  2. service httpd start

Небольшая настройка PHP:

Открываем файл:

/etc/httpd/conf.d/php.conf

…меняем строку:

AddType text/html .php

…на

AddType application/x-httpd-php .php

Проверяем связку Apache и PHP:

Создаем файл test.php в папке:

/var/www/html

…с содержимым:

  1. <?php
  2. ?>

Перезагружаем Apache:

service httpd restart

В строке браузера вводим:

ip_сервера/test.php

Появится информация о связке PHP и Apache.

Ставим дополнительные библиотеки:

Предварительно:

  1. yum install php-pear php-devel
  2. yum install gcc gcc-c++ autoconf automake

Uploadprogress:

pecl install uploadprogress

…подключаем

echo "extension=uploadprogress.so" > /etc/php.d/uploadprogress.ini

GD2:

yum install gd php-gd

Imagemagick:

  1. yum install ImageMagick ImageMagick-perl ImageMagick-devel
  2. pecl install imagick

…подключаем

echo "extension=imagick.so" > /etc/php.d/imagick.ini

MBstring:

yum install php-mbstring

eAccelerator:

Скачиваем. Заходим на github eaccelerator и копируем ссылку на свежий релиз, например так:

  1. #cd /tmp
  2. #wget https://github.com/downloads/eaccelerator/eaccelerator/eaccelerator-0.9.6.1.tar.bz2

Распаковываем каталог и ставим eAccelerator (выполняем команды по-очереди):

  1. tar xvfj eaccelerator-0.9.5.2.tar.bz2
  2. cd eaccelerator-0.9.5.2
  3. phpize
  4. ./configure
  5. make
  6. make install

Создаём файл конфигурации eaccelerator.ini в папке:

/etc/php.d

…с содержимым:

  1. extension="eaccelerator.so"
  2. eaccelerator.shm_size="32"
  3. eaccelerator.cache_dir="/var/cache/eaccelerator"
  4. eaccelerator.enable="1"
  5. eaccelerator.optimizer="1"
  6. eaccelerator.check_mtime="1"
  7. eaccelerator.debug="0"
  8. eaccelerator.filter=""
  9. eaccelerator.shm_max="0"
  10. eaccelerator.shm_ttl="0"
  11. eaccelerator.shm_prune_period="0"
  12. eaccelerator.shm_only="0"
  13. eaccelerator.compress="1"
  14. eaccelerator.compress_level="9"

С описанием директив можно ознакомиться в Wiki eAccelerator’а.

Создаём каталог под кеш и даём права на чтение и запись:

  1. mkdir -p /var/cache/eaccelerator
  2. chmod 0777 /var/cache/eaccelerator

Также необходимы следующие библиотеки:

yum install php-xml php-xmlrpc php-mcrypt

Для вступления в действие подключенных библиотек необходимо перезагрузить Apache

service httpd restart

В строке браузера вводим:

ip_сервера/test.php

Проверяем наличие секций eAccelerator, gd, imagick, uploadprogress, mbstring, mcrypt, xml.

Установка mod_ruid

Модуль для Apache mod_ruid позволяет запуск каждого из вирт. хостов под своими UID/GID, что повышает безопасность сервера и позволяет проследить чем занят тот или иной процесс и какой из них нагружает сервер.

Развитие mod_ruid было приостановлено на несколько лет. С недавних пор над проектом возобновили работу и Sourceforge проекта пополняется стабильными версиями модуля. На данный момент это mod_ruid2-0.9.8.

Установка:

Ставим зависимости:

yum install libcap libcap-devel

Скачиваем модуль и разархивируем (команды по-очереди):

  1. cd /tmp/
  2. wget http://sourceforge.net/projects/mod-ruid/files/mod_ruid2/mod_ruid2-0.9.8.tar.bz2
  3. tar xvfj mod_ruid2-0.9.8.tar.bz2

Переходим в каталог модуля и устанавливаем:

  1. cd mod_ruid2-0.9.8
  2. apxs -a -i -l cap -c mod_ruid2.c

Так же, вместо mod_ruid2 можно использовать mpm-itk. Тут уже дело вкуса.

Перезагружаем Apache:

service httpd restart