Серверные настройки · 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

| #AddHandler application/x-httpd-php .php4 #AddHandler application/x-httpd-php .php5 #AddHandler application/x-httpd-php .php #AddHandler application/x-httpd-php-source .php4s #AddHandler application/x-httpd-php-source .php5s #AddHandler application/x-httpd-php-source .phps DirectoryIndex index.php4 DirectoryIndex index.php5 DirectoryIndex index.php |

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

/etc/init.d/apache2 restart

11.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 restart

11.3 mod_python

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

yast2 -i apache2-mod_python

Чтобы включить mod_python, выполните…

a2enmod python 

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

/etc/init.d/apache2 restart

11.4 WebDAV

Включите модули WebDAV…

a2enmod dav
a2enmod dav_fs
a2enmod dav_lock

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

/etc/init.d/apache2 restart

12 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 по умолчанию # # DenyAll # [...] |

и перезапустите ProFTPd:

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

Get new posts in your inbox

No spam. Unsubscribe anytime.