Серверы · 3 min read · Nov 01, 2025

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

12 Apache2 с PHP, Ruby, Python

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

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 # # Заставьте интерпретатор 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 5.3 пакет mod_ruby недоступен, поэтому мы должны скомпилировать его самостоятельно. Сначала установим некоторые предварительные зависимости:

yum install httpd-devel ruby ruby-devel

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

cd /tmp  
wget http://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 |

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

/etc/init.d/httpd restart

12.3 Установка mod_python

Чтобы установить mod_python, просто выполните…

yum install mod_python

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

/etc/init.d/httpd restart

13 ProFTPd

ISPConfig имеет лучшую поддержку для proftpd, чем для vsftpd, поэтому давайте удалим vsftpd:

yum remove vsftpd

Поскольку в CentOS нет пакета proftpd, мы должны скомпилировать Proftpd вручную:

cd /tmp/  
wget --passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.2.tar.gz  
tar xvfz proftpd-1.3.2.tar.gz  
cd proftpd-1.3.2/  
./configure --sysconfdir=/etc  
make  
make install  
cd ..  
rm -fr proftpd-1.3.2*

Бинарный файл proftpd устанавливается в /usr/local/sbin, но нам нужно его в /usr/sbin, поэтому создаем символическую ссылку:

ln -s /usr/local/sbin/proftpd /usr/sbin/proftpd

Теперь создайте скрипт инициализации /etc/init.d/proftpd:

vi /etc/init.d/proftpd

| #!/bin/sh # $Id: proftpd.init,v 1.1 2004/02/26 17:54:30 thias Exp $ # # proftpd Этот сценарий оболочки отвечает за запуск и остановку # proftpd. # # chkconfig: - 80 30 # description: ProFTPD - это улучшенный FTP-сервер, ориентированный на \ # простоту, безопасность и легкость настройки. \ # Он имеет очень похожий на Apache синтаксис конфигурации, \ # и высоко настраиваемую серверную инфраструктуру, \ # включая поддержку нескольких 'виртуальных' FTP-серверов, \ # анонимного FTP и видимости директорий на основе разрешений. # processname: proftpd # config: /etc/proftp.conf # pidfile: /var/run/proftpd.pid # Библиотека функций источника. . /etc/rc.d/init.d/functions # Конфигурация сети источника. . /etc/sysconfig/network # Проверьте, что сеть работает. [ ${NETWORKING} = "no" ] && exit 0 [ -x /usr/sbin/proftpd ] || exit 0 RETVAL=0 prog="proftpd" start() { echo -n "$"Starting $prog: " daemon proftpd RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/proftpd } stop() { echo -n "$"Shutting down $prog: " killproc proftpd RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/proftpd } # Посмотрите, как мы были вызваны. case "$1" in start) start ;; stop) stop ;; status) status proftpd RETVAL=$? ;; restart) stop start ;; condrestart) if [ -f /var/lock/subsys/proftpd ]; then stop start fi ;; reload) echo -n "$"Re-reading $prog configuration: " killproc proftpd -HUP RETVAL=$? echo ;; *) echo "Использование: $prog {start|stop|restart|reload|condrestart|status}" exit 1 esac exit $RETVAL |

Затем сделаем скрипт инициализации исполняемым:

chmod 755 /etc/init.d/proftpd

Далее откроем /etc/proftpd.conf и изменим Group на nobody:

vi /etc/proftpd.conf

| [...] Group nobody [...] |

По соображениям безопасности вы также можете добавить следующие строки в /etc/proftpd.conf (спасибо Рейнальдо Карвалью; больше информации можно найти здесь: http://proftpd.org/localsite/Userguide/linked/userguide.html):

vi /etc/proftpd.conf

| [...] DefaultRoot ~ IdentLookups off ServerIdent on "FTP Server ready." [...] |

Чтобы убедиться, что FTP-пользователи могут использовать команду chmod, закомментируйте раздел :

| [...] # Запретить использование SITE CHMOD по умолчанию # # DenyAll # [...] |

Теперь мы можем создать системные ссылки для автозагрузки Proftpd:

chkconfig --levels 235 proftpd on

И наконец, запускаем Proftpd:

/etc/init.d/proftpd start
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.