Серверные настройки · 5 min read · Sep 21, 2025
Идеальный сервер - OpenSUSE 11.3 x86_64 [ISPConfig 2] - Страница 5
11 Apache/PHP5/Ruby/Python/WebDAV
Теперь мы устанавливаем Apache с PHP5:
yast2 -i apache2 apache2-devel apache2-mod_perl apache2-mod_php5 apache2-prefork perl-HTML-Parser perl-HTML-Tagset perl-Tie-IxHash perl-URI perl-libwww-perl php5 php5-devel zlib zlib-develЗатем мы устанавливаем некоторые модули PHP5:
yast2 -i php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm ImageMagick curlДалее редактируем /etc/apache2/httpd.conf:
vi /etc/apache2/httpd.confи изменяем DirectoryIndex на
| [...] DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php5 index.php4 index.php3 index.pl index.html.var index.aspx default.aspx [...] |
Включите модуль переопределения Apache:
a2enmod rewrite Редактируем /etc/sysconfig/apache2 и добавляем SSL в строку APACHE_SERVER_FLAGS:
vi /etc/sysconfig/apache2| [...] APACHE_SERVER_FLAGS="SSL" [...] |
Теперь настройте вашу систему для запуска Apache при загрузке:
chkconfig --add apache2Затем запустите
SuSEconfig
/etc/init.d/apache2 start
11.1 Отключить PHP и Perl глобально
(Если вы не планируете устанавливать ISPConfig на этом сервере, пожалуйста, пропустите этот раздел!)
В ISPConfig вы будете настраивать PHP и Perl для каждого веб-сайта, т.е. вы можете указать, какой веб-сайт может запускать PHP и Perl скрипты, а какой нет. Это может работать только в том случае, если PHP и Perl отключены глобально, потому что в противном случае все веб-сайты смогут запускать PHP/Perl скрипты, независимо от того, что вы укажете в ISPConfig.
Чтобы отключить PHP и Perl глобально, редактируем /etc/mime.types и комментируем строки application/x-perl и application/x-php:
vi /etc/mime.types| [...] #application/x-perl pl pm al perl #application/x-php php php3 php4 [...] |
Затем редактируем /etc/apache2/conf.d/php5.conf и комментируем все строки AddHandler:
vi /etc/apache2/conf.d/php5.conf| |
После этого перезапускаем Apache:
/etc/init.d/apache2 restart11.2 mod_ruby
OpenSUSE 11.3 не имеет пакета mod_ruby, поэтому мы должны скомпилировать его вручную. Сначала устанавливаем необходимые пакеты:
yast2 -i apache2-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, выполните…
a2enmod ruby … и перезапустите Apache:
/etc/init.d/apache2 restart11.3 mod_python
Чтобы установить mod_python, просто выполните:
yast2 -i apache2-mod_pythonЧтобы включить mod_python, выполните…
a2enmod python … и перезапустите Apache:
/etc/init.d/apache2 restart11.4 WebDAV
Включите модули WebDAV…
a2enmod dav
a2enmod dav_fs
a2enmod dav_lock
… и перезапустите Apache:
/etc/init.d/apache2 restart12 Proftpd
Я хочу использовать ProFTPd вместо vsftpd, который является стандартным FTP-сервером SUSE, потому что программное обеспечение панели управления, которое я собираюсь установить на этом сервере (ISPConfig), работает лучше с ProFTPd на OpenSUSE 11.3. Поскольку для ProFTPd нет пакетов OpenSUSE, мне нужно скомпилировать его вручную.
Сначала устанавливаем некоторые необходимые пакеты:
yast2 -i libcap libcap-develЗатем мы собираем ProFTPd следующим образом:
cd /tmp/
wget –passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3a.tar.gz
tar xvfz proftpd-1.3.3a.tar.gz
cd proftpd-1.3.3a/
./configure –sysconfdir=/etc
make
make install
cd ..
rm -fr proftpd-1.3.3a*
Теперь создайте файл /etc/init.d/proftpd:
vi /etc/init.d/proftpd| #! /bin/sh # Copyright (c) 2000-2001 SuSE GmbH Nuernberg, Germany. # Все права защищены. # # Оригинальный автор: Marius Tomaschewski <[email protected]> # # Немного изменено в 2003 году для использования с SuSE Linux 8.1, # от http://www.learnlinux.co.uk/ # # Немного изменено в 2005 году для использования с SuSE Linux 9.2, # от Falko Timme # # /etc/init.d/proftpd # ### BEGIN INIT INFO # Provides: proftpd # Required-Start: $network $remote_fs $syslog $named # Required-Stop: # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: Запускает сервер ProFTPD ### END INIT INFO # Определите базу и следуйте имени ссылки уровня выполнения. base=${0##*/} link=${base#*[SK][0-9][0-9]} # Принудительное выполнение, если не вызвано из каталога уровня выполнения. test $link = $base && START_PROFTPD=yes # Изменено learnlinux.co.uk test "$START_PROFTPD" = yes || exit 0 # Изменено learnlinux.co.uk # Возврат значений в соответствии с LSB для всех команд, кроме # статуса (см. ниже): # # 0 - успех # 1 - общая или неопределенная ошибка # 2 - недопустимый или избыточный аргумент(ы) # 3 - не реализованная функция (например, "перезагрузить") # 4 - недостаточно прав # 5 - программа не установлена # 6 - программа не настроена # 7 - программа не работает proftpd_cfg="/etc/proftpd.conf" proftpd_bin="/usr/local/sbin/proftpd" proftpd_pid="/usr/local/var/proftpd.pid" [ -r $proftpd_cfg ] || exit 6 [ -x $proftpd_bin ] || exit 5 # Источник функций статуса . /etc/rc.status # Сначала сбросьте статус этой службы rc_reset case "$1" in start) echo -n "Запуск сервера ProFTPD: " test -f /etc/shutmsg && rm -f /etc/shutmsg /sbin/startproc $proftpd_bin rc_status -v ;; stop) echo -n "Остановка сервера ProFTPD: " test -x /usr/local/sbin/ftpshut && /usr/local/sbin/ftpshut now && sleep 1 /sbin/killproc -TERM $proftpd_bin test -f /etc/shutmsg && rm -f /etc/shutmsg rc_status -v ;; restart) ## Если первый возвращает OK, вызовите второй, если первый или ## второй команда не удалась, установите значение возврата echo. $0 stop $0 start rc_status ;; try-restart) ## Остановите службу, и если это удастся (т.е. служба ## работала ранее), запустите ее снова. ## Примечание: не (еще) часть LSB (по состоянию на 0.7.5) $0 status >/dev/null && $0 restart rc_status ;; reload|force-reload) ## Исключительная возможность: некоторые службы должны быть остановлены ## и запущены, чтобы принудительно загрузить новую конфигурацию. echo -n "Перезагрузка сервера ProFTPD: " /sbin/killproc -HUP $proftpd_bin rc_status -v ;; status) # Статус имеет немного другое значение для команды статуса: # 0 - служба работает # 1 - служба не работает, но файл pid /var/run/ существует # 2 - служба не работает, но файл блокировки /var/lock/ существует # 3 - служба не работает echo -n "Проверка сервера ProFTPD: " checkproc $proftpd_bin rc_status -v ;; probe) ## Необязательно: проверьте необходимость перезагрузки, ## укажите аргумент, который требуется для перезагрузки. [ $proftpd_cfg -nt $proftpd_pid ] && echo reload ;; *) echo "Использование: $0 {start|stop|status|restart|reload|try-restart|probe}" exit 1 ;; esac # Установите статус выхода. rc_exit |
Затем выполните
chmod 755 /etc/init.d/proftpd
chkconfig –add proftpd
Запустите ProFTPd:
/etc/init.d/proftpd startЕсли вы получите следующую ошибку…
Запуск сервера ProFTPD: - Фатальная ошибка: UseIPv6: Использование директивы UseIPv6 требует поддержки IPv6 (–enable-ipv6) в строке 14 файла ‘/etc/proftpd.conf’
startproc: статус выхода родителя /usr/local/sbin/proftpd: 1
… откройте /etc/proftpd.conf и закомментируйте или удалите строку UseIPv6:
vi /etc/proftpd.conf | [...] # Не использовать поддержку IPv6 по умолчанию. #UseIPv6 off [...] |
В целях безопасности вы можете добавить следующие строки в /etc/proftpd.conf:
vi /etc/proftpd.conf| [...] DefaultRoot ~ IdentLookups off ServerIdent on "FTP Server ready." [...] |
Не забудьте закомментировать следующие строки, чтобы разрешить пользователям ftp использовать CHMOD:
| [...] # Запретить использование SITE CHMOD по умолчанию # |
и перезапустите ProFTPd:
/etc/init.d/proftpd restartGet new posts in your inbox
No spam. Unsubscribe anytime.