サーバー設定 · 4 min read · Sep 21, 2025
完璧なサーバー - OpenSUSE 11.3 x86_64 [ISPConfig 2] - ページ 5
11 Apache/PHP5/Ruby/Python/WebDAV
今、PHP5を使ってApacheをインストールします:
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のrewriteモジュールを有効にします:
a2enmod rewrite /etc/sysconfig/apache2を編集し、APACHE_SERVER_FLAGS行にSSLを追加します:
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がグローバルに無効になっている場合にのみ機能します。そうでないと、すべてのウェブサイトがISPConfigで指定した内容に関係なくPHP/Perlスクリプトを実行できてしまいます。
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_pythonmod_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
私は、SUSEのデフォルトFTPサーバーであるvsftpdの代わりにProFTPdを使用したいと思います。なぜなら、このサーバーにインストールする予定のコントロールパネルソフトウェア(ISPConfig)がOpenSUSE 11.3のProFTPdでより良く動作するからです。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. # All rights reserved. # # Original author: Marius Tomaschewski <[email protected]> # # Slightly modified in 2003 for use with SuSE Linux 8.1, # by http://www.learnlinux.co.uk/ # # Slightly modified in 2005 for use with SuSE Linux 9.2, # by 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: Starts ProFTPD server ### END INIT INFO # Determine the base and follow a runlevel link name. base=${0##*/} link=${base#*[SK][0-9][0-9]} # Force execution if not called by a runlevel directory. test $link = $base && START_PROFTPD=yes # Modified by learnlinux.co.uk test "$START_PROFTPD" = yes || exit 0 # Modified by learnlinux.co.uk # Return values acc. to LSB for all commands but # status (see below): # # 0 - success # 1 - generic or unspecified error # 2 - invalid or excess argument(s) # 3 - unimplemented feature (e.g. "reload") # 4 - insufficient privilege # 5 - program is not installed # 6 - program is not configured # 7 - program is not running 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 # Source status functions . /etc/rc.status # First reset status of this service rc_reset case "$1" in start) echo -n "Starting ProFTPD Server: " test -f /etc/shutmsg && rm -f /etc/shutmsg /sbin/startproc $proftpd_bin rc_status -v ;; stop) echo -n "Shutting down ProFTPD Server: " 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) ## If first returns OK call the second, if first or ## second command fails, set echo return value. $0 stop $0 start rc_status ;; try-restart) ## Stop the service and if this succeeds (i.e. the ## service was running before), start it again. ## Note: not (yet) part of LSB (as of 0.7.5) $0 status >/dev/null && $0 restart rc_status ;; reload|force-reload) ## Exclusive possibility: Some services must be stopped ## and started to force a new load of the configuration. echo -n "Reload ProFTPD Server: " /sbin/killproc -HUP $proftpd_bin rc_status -v ;; status) # Status has a slightly different for the status command: # 0 - service running # 1 - service dead, but /var/run/ pid file exists # 2 - service dead, but /var/lock/ lock file exists # 3 - service not running echo -n "Checking for ProFTPD Server: " checkproc $proftpd_bin rc_status -v ;; probe) ## Optional: Probe for the necessity of a reload, ## give out the argument which is required for a reload. [ $proftpd_cfg -nt $proftpd_pid ] && echo reload ;; *) echo "Usage: $0 {start|stop|status|restart|reload|try-restart|probe}" exit 1 ;; esac # Set an exit status. rc_exit |
その後、次を実行します
chmod 755 /etc/init.d/proftpd
chkconfig –add proftpd
ProFTPdを開始します:
/etc/init.d/proftpd start次のエラーが表示された場合…
Starting ProFTPD Server: - Fatal: UseIPv6: Use of the UseIPv6 directive requires IPv6 support (–enable-ipv6) on line 14 of ‘/etc/proftpd.conf’
startproc: exit status of parent of /usr/local/sbin/proftpd: 1
… /etc/proftpd.confを開き、UseIPv6行をコメントアウトまたは削除します:
vi /etc/proftpd.conf | [...] # Don't use IPv6 support by default. #UseIPv6 off [...] |
セキュリティ上の理由から、次の行を/etc/proftpd.confに追加できます:
vi /etc/proftpd.conf| [...] DefaultRoot ~ IdentLookups off ServerIdent on "FTP Server ready." [...] |
ftpユーザーがCHMODできるようにするために、次の行をコメントアウトすることを忘れないでください:
| [...] # Bar use of SITE CHMOD by default # |
そしてProFTPdを再起動します:
/etc/init.d/proftpd restart新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。