サーバー設定 · 4 min read · Dec 12, 2025
完璧なサーバー - Fedora 12 x86_64 [ISPConfig 2] - ページ 5
11 Apache2 With PHP, Ruby, Python, WebDAV
Now we install Apache with PHP5 (this is PHP 5.3.0):
yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mapserver php-mbstring php-mcrypt php-mhash php-mssql php-shout php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-develThen edit /etc/httpd/conf/httpd.conf:
vi /etc/httpd/conf/httpd.confand change DirectoryIndex to
| [...] DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl [...] |
Now configure your system to start Apache at boot time:
chkconfig --levels 235 httpd onStart Apache:
/etc/init.d/httpd start11.1 Disable PHP Globally
(If you do not plan to install ISPConfig on this server, please skip this section!)
In ISPConfig you will configure PHP on a per-website basis, i.e. you can specify which website can run PHP scripts and which one cannot. This can only work if PHP is disabled globally because otherwise all websites would be able to run PHP scripts, no matter what you specify in ISPConfig.
To disable PHP globally, we edit /etc/httpd/conf.d/php.conf and comment out the AddHandler and AddType lines:
vi /etc/httpd/conf.d/php.conf| # # PHP is an HTML-embedded scripting language which attempts to make it # easy for developers to write dynamically generated webpages. # |
Afterwards we restart Apache:
/etc/init.d/httpd restart11.2 Ruby
Starting with version 2.2.20, ISPConfig has built-in support for Ruby. Instead of using CGI/FastCGI, ISPConfig depends on mod_ruby being available in the server’s Apache.
For Fedora 12, there’s no mod_ruby package available, so we must compile it ourselves. First we install some prerequisites:
yum install httpd-devel ruby ruby-develNext we download and install mod_ruby as follows:
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 installFinally we must add the mod_ruby module to the Apache configuration, so we create the file /etc/httpd/conf.d/ruby.conf…
vi /etc/httpd/conf.d/ruby.conf| LoadModule ruby_module modules/mod_ruby.so |
… and restart Apache:
/etc/init.d/httpd restartYou can find more details about mod_ruby in this article.
11.3 Installing mod_python
To install mod_python, we simply run…
yum install mod_python… and restart Apache afterwards:
/etc/init.d/httpd restart11.4 WebDAV
WebDAV should already be enabled, but to check this, open /etc/httpd/conf/httpd.conf and make sure that the following two modules are active:
vi /etc/httpd/conf/httpd.conf| [...] LoadModule dav_module modules/mod_dav.so [...] LoadModule dav_fs_module modules/mod_dav_fs.so [...] |
If you have to modify /etc/httpd/conf/httpd.conf, don’t forget to restart Apache afterwards:
/etc/init.d/httpd restart12 ProFTPd
ISPConfig has better support for proftpd than vsftpd, so let’s remove vsftpd and install proftpd:
yum remove vsftpdyum install proftpdNow we can create the system startup links for Proftpd and start it:
chkconfig --levels 235 proftpd on
/etc/init.d/proftpd start13 Webalizer
To install webalizer, just run
yum install webalizer14 Synchronize The System Clock
If you want to have the system clock synchronized with an NTP server do the following:
yum install ntpchkconfig --levels 235 ntpd on
ntpdate 0.pool.ntp.org
/etc/init.d/ntpd start15 Install Some Perl Modules
ISPConfig comes with SpamAssassin which needs a few Perl modules to work. We install the required Perl modules with a single command:
yum install perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1 perl-ExtUtils-AutoInstall16 ISPConfig
The configuration of the server is now finished. You can now install ISPConfig on it, following these instructions: http://www.ispconfig.org/manual_installation.htm
Before you install ISPConfig, there’s one important thing you must do. Open /usr/include/stdio.h and replace getline with parseline in line 653:
vim /usr/include/stdio.h| [...] /* Like `getdelim', but reads up to a newline. This function is not part of POSIX and therefore no official cancellation point. But due to similarity with an POSIX interface or due to the implementation it is a cancellation point and therefore not marked with __THROW. */ extern _IO_ssize_t parseline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) __wur; #endif [...] |
If you don’t do this, the installation will fail because of the following error:
htpasswd.c:101: error: conflicting types for âgetlineâ
/usr/include/stdio.h:653: note: previous declaration of âgetlineâ was here
make[2]: * [htpasswd.o] Error 1
make[2]: Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41/src/support'
make[1]: * [build-support] Error 1
make[1]: Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41'
make: *** [build] Error 2
ERROR: Could not make ApacheYou can undo the change to /usr/include/stdio.h after the successful ISPConfig installation ( but don’t forget to change it back whenever you want to update ISPConfig!).
16.1 A Note On SuExec
If you want to run CGI scripts under suExec, you should specify /var/www as the web root for websites created by ISPConfig as Fedora’s suExec is compiled with /var/www as Doc_Root. Run
/usr/sbin/suexec -Vand the output should look like this:
[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 ~]#So if you want to use suExec with ISPconfig, don’t change the default web root (which is /var/www) if you use expert mode during the ISPConfig installation (in standard mode you can’t change the web root anyway so you’ll be able to use suExec in any case).
17 Links
- Fedora: http://fedoraproject.org/
- ISPConfig: http://www.ispconfig.org/
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。