Серверные настройки · 5 min read · Jan 19, 2026

Идеальный сервер - CentOS 6.0 x86_64 [ISPConfig 2] - Страница 5

12 Apache2 с PHP, Ruby, Python, WebDAV

Теперь мы устанавливаем Apache с PHP (это PHP 5.3.2):

yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel

Затем редактируем /etc/httpd/conf/httpd.conf:

vi /etc/httpd/conf/httpd.conf

и изменяем DirectoryIndex на

| [...] DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl [...] |

Теперь настройте вашу систему для автоматического запуска Apache при загрузке:

chkconfig --levels 235 httpd on

Запустите Apache:

/etc/init.d/httpd start

12.1 Отключение PHP глобально

(Если вы не планируете устанавливать ISPConfig на этом сервере, пропустите этот раздел!)

В ISPConfig вы будете настраивать PHP для каждого сайта отдельно, т.е. вы можете указать, какой сайт может запускать PHP-скрипты, а какой нет. Это может работать только если PHP отключен глобально, потому что в противном случае все сайты смогут запускать PHP-скрипты, независимо от того, что вы укажете в ISPConfig.

Чтобы отключить PHP глобально, мы редактируем /etc/httpd/conf.d/php.conf и комментируем строки AddHandler и AddType:

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

| # # PHP - это встроенный в HTML язык сценариев, который пытается сделать его # простым для разработчиков писать динамически генерируемые веб-страницы. # LoadModule php5_module modules/libphp5.so LoadModule php5_module modules/libphp5-zts.so # # Заставьте интерпретатор PHP обрабатывать файлы с расширением .php. # #AddHandler php5-script .php #AddType text/html .php # # Добавьте index.php в список файлов, которые будут обслуживаться как индексы # директорий. # DirectoryIndex index.php # # Раскомментируйте следующую строку, чтобы разрешить PHP красиво выводить .phps # файлы как исходный код PHP: # #AddType application/x-httpd-php-source .phps |

После этого мы перезапускаем Apache:

/etc/init.d/httpd restart

12.2 Установка mod_ruby

Для CentOS 6.0 пакет mod_ruby недоступен, поэтому мы должны скомпилировать его сами. Сначала установим некоторые зависимости:

yum install httpd-devel ruby ruby-devel

Затем мы загружаем и устанавливаем mod_ruby следующим образом:

cd /tmp
wget http://www.modruby.net/archive/mod_ruby-1.3.0.tar.gz
tar zxvf mod_ruby-1.3.0.tar.gz
cd mod_ruby-1.3.0/
./configure.rb –with-apr-includes=/usr/include/apr-1
make
make install

Наконец, мы должны добавить модуль mod_ruby в конфигурацию Apache, поэтому создаем файл /etc/httpd/conf.d/ruby.conf…

vi /etc/httpd/conf.d/ruby.conf

| LoadModule ruby_module modules/mod_ruby.so RubyAddPath /1.8 |

… и перезапускаем Apache:

/etc/init.d/httpd restart

(Если вы пропустите директиву RubyAddPath /1.8, вы увидите ошибки, подобные следующим, в журнале ошибок Apache, когда вы вызываете Ruby-файлы:

[Thu May 26 02:05:05 2011] [error] mod_ruby: ruby:0:in require': no such file to load -- apache/ruby-run (LoadError) [Thu May 26 02:05:05 2011] [error] mod_ruby: failed to require apache/ruby-run [Thu May 26 02:05:05 2011] [error] mod_ruby: error in ruby ) #### 12.3 Установка mod_python Пакет mod_python доступен из репозиториев EPEL, которые мы можем включить следующим образом: rpm --import https://fedoraproject.org/static/0608B895.txt wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm rpm -ivh epel-release-6-5.noarch.rpm ``` yum install yum-priorities ``` Редактируем /etc/yum.repos.d/epel.repo... ``` vi /etc/yum.repos.d/epel.repo ``` ... и добавляем строку priority=10 в секцию [epel]: | ``` [epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] ``` | Чтобы установить mod_python, мы просто выполняем... ``` yum install mod_python ``` ... и затем перезапускаем Apache: ``` /etc/init.d/httpd restart ``` #### 12.4 WebDAV WebDAV должен быть уже включен, но чтобы проверить это, откройте /etc/httpd/conf/httpd.conf и убедитесь, что следующие три модуля активны: ``` vi /etc/httpd/conf/httpd.conf ``` | ``` [...] LoadModule auth_digest_module modules/mod_auth_digest.so [...] LoadModule dav_module modules/mod_dav.so [...] LoadModule dav_fs_module modules/mod_dav_fs.so [...] ``` | Если вам нужно изменить /etc/httpd/conf/httpd.conf, не забудьте перезапустить Apache после этого: ``` /etc/init.d/httpd restart ``` ### 13 ProFTPd ISPConfig имеет лучшую поддержку для proftpd, чем для vsftpd, поэтому давайте удалим vsftpd: ``` yum remove vsftpd ``` Теперь мы можем установить ProFTPd из репозитория EPEL следующим образом: ``` yum install proftpd ``` По соображениям безопасности вы также можете добавить следующую строку в /etc/proftpd.conf (спасибо Рейнальдо Карвалью; больше информации можно найти здесь: http://proftpd.org/localsite/Userguide/linked/userguide.html): ``` vi /etc/proftpd.conf ``` | ``` [...] IdentLookups off [...]``` | Теперь мы можем создать системные ссылки для автозапуска ProFTPd: ``` chkconfig --levels 235 proftpd on ``` И наконец, запускаем Proftpd: ``` /etc/init.d/proftpd start ``` ### 14 Webalizer Чтобы установить webalizer, просто выполните ``` yum install webalizer ``` ### 15 Синхронизация системных часов Если вы хотите синхронизировать системные часы с сервером NTP, выполните следующее: ``` yum install ntp ``` chkconfig --levels 235 ntpd on ntpdate 0.pool.ntp.org /etc/init.d/ntpd start ### 16 Установка некоторых модулей Perl ISPConfig поставляется с SpamAssassin, который требует несколько модулей Perl для работы. Мы устанавливаем необходимые модули Perl одной командой: ``` yum install perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1 perl-Archive-Tar perl-NetAddr-IP ``` ### 17 Конец Конфигурация сервера теперь завершена. Теперь вы можете установить ISPConfig на него, следуя этим инструкциям: http://www.ispconfig.org/manual_installation.htm Перед установкой ISPConfig есть одна важная вещь, которую вы должны сделать. Откройте /usr/include/stdio.h и замените getline на parseline в строке 673: ``` vim /usr/include/stdio.h ``` | ``` [...] /* Какgetdelim’, но читает до новой строки.

Эта функция не является частью POSIX и, следовательно, не имеет официальной точки отмены. Но из-за сходства с интерфейсом POSIX или из-за реализации это точка отмены и поэтому не помечена как THROW. / extern _IO_ssize_t parseline (char *restrict __lineptr,

                        size_t *__restrict __n,
                        FILE *__restrict __stream) __wur;

#endif […]


Если вы этого не сделаете, установка завершится неудачей из-за следующей ошибки:

htpasswd.c:101: ошибка: конфликтующие типы для âgetlineâ  
/usr/include/stdio.h:673: примечание: предыдущее объявление âgetlineâ было здесь  
make[2]: * [htpasswd.o] Ошибка 1  
make[2]: Выход из директории `/home/install_ispconfig/compile_aps/apache_1.3.41/src/support'  
make[1]: * [build-support] Ошибка 1  
make[1]: Выход из директории `/home/install_ispconfig/compile_aps/apache_1.3.41'  
make: *** [build] Ошибка 2  
ERROR: Не удалось создать Apache

Вы можете отменить изменение в /usr/include/stdio.h после успешной установки ISPConfig (но не забудьте вернуть его обратно, когда захотите обновить ISPConfig!).

#### 17.1 Примечание о SuExec

Если вы хотите запускать CGI-скрипты под suExec, вы должны указать /var/www как домашний каталог для сайтов, созданных ISPConfig, так как suExec CentOS скомпилирован с /var/www как Doc_Root. Выполните

/usr/sbin/suexec -V


и вывод должен выглядеть следующим образом:

[root@server1 ~]# /usr/sbin/suexec -V  
-D AP_DOC_ROOT="/var/www"  
-D AP_GID_MIN=100  
-D AP_HTTPD_USER="apache"  
-D AP_LOG_EXEC="/var/log/httpd/suexec.log"  
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"  
-D AP_UID_MIN=500  
-D AP_USERDIR_SUFFIX="public_html"  
[root@server1 ~]#

Так что если вы хотите использовать suExec с ISPconfig, не изменяйте корневую директорию веб-сайта по умолчанию (которая является /var/www), если вы используете экспертный режим во время установки ISPConfig (в стандартном режиме вы все равно не сможете изменить корневую директорию веб-сайта, так что вы сможете использовать suExec в любом случае).

### 18 Ссылки

- CentOS: http://www.centos.org/
- ISPConfig 2: http://www.ispconfig.org/ispconfig-2/
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.