The Perfect Server - Mandriva 2010.0 Free (x86_64) [ISPConfig 2] - Page 6
12 Apache2 With PHP5, Ruby, And Python
To install Apache2, PHP5, and Ruby, run the following command (in one line):
urpmi apache-mod_suexec apache-mod_ssl apache-mod_php apache-mod_ruby apache-mod_python lib64php5_common5 php-bz2 php-calendar php-ctype php-curl php-devel php-dio php-dom php-eaccelerator php-enchant php-esmtp php-event php-exif php-fam php-ffmpeg php-fileinfo php-filepro php-ftp php-gd php-gettext php-gmp php-iconv php-id3 php-idn php-imap php-imlib2 php-mailparse php-mbstring php-mcache php-mcrypt php-ming php-mysql php-mysqli php-newt php-odbc php-oggvorbis php-pcntl php-pcre php-pear-Net_IDNA php-posix php-pspell php-readline php-recode php-session php-shmop php-simplexml php-snmp php-soap php-sockets php-sqlite php-ssh2 php-suhosin php-sysvmsg php-sysvsem php-sysvshm php-tclink php-tcpwrap php-tidy php-xml php-xmlrpc php-zip php-ini curl lib64curl4-devel perl-libwww-perl ImageMagick
Create the system startup links for Apache...
chkconfig httpd on
... and start it:
/etc/init.d/httpd restart
12.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.
Edit /etc/httpd/modules.d/70_mod_php.conf and comment out the AddType lines:
vi /etc/httpd/modules.d/70_mod_php.conf
<IfDefine HAVE_PHP5> <IfModule !mod_php5.c> LoadModule php5_module extramodules/mod_php5.so </IfModule> </IfDefine> <IfModule mod_mime.c> # AddType application/x-httpd-php .php # AddType application/x-httpd-php .phtml # AddType application/x-httpd-php-source .phps </IfModule> <IfModule mod_php5.c> <IfModule mod_dir.c> DirectoryIndex index.php index.phtml </IfModule> </IfModule> |
Edit /etc/httpd/conf/httpd.conf and add the following line to the LoadModule section:
vi /etc/httpd/conf/httpd.conf
[...] LoadModule php5_module extramodules/mod_php5.so [...] |
(Although this line is already in /etc/httpd/modules.d/70_mod_php.conf this is very important because otherwise the command
httpd -t
will report errors instead of Syntax OK when the virtual hosts created by ISPConfig contain lines like php_admin_flag safe_mode On or the like!)
Restart Apache:
/etc/init.d/httpd restart
12.2 Disable Ruby Globally
(If you do not plan to install ISPConfig on this server, please skip this section!)
In ISPConfig you will configure Ruby on a per-website basis, i.e. you can specify which website can run Ruby scripts and which one cannot. This can only work if Ruby is disabled globally because otherwise all websites would be able to run Ruby scripts, no matter what you specify in ISPConfig.
vi /etc/httpd/modules.d/20_mod_ruby.conf
Comment out or delete everything in that file except the following lines:
<IfDefine HAVE_RUBY> <IfModule !mod_ruby.c> LoadModule ruby_module extramodules/mod_ruby.so </IfModule> </IfDefine> |
Then restart Apache:
/etc/init.d/httpd restart
12.3 Enabling WebDAV Support
Since version 2.2.30 of ISPConfig, you can manage WebDAV through ISPConfig. Of course, this works only if WebDAV is installed and enabled in Apache. To install WebDAV, we run
urpmi apache-mod_dav
Next we open /etc/httpd/conf/httpd.conf and uncomment the following three lines in the LoadModule section (make sure you delete the following string at the end of these lines because otherwise Apache might complain about a syntax error: -> available in the apache-mod_dav package):
vi /etc/httpd/conf/httpd.conf
[...] LoadModule dav_module modules/mod_dav.so [...] LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule dav_lock_module modules/mod_dav_lock.so [...] |
Then restart Apache:
/etc/init.d/httpd restart
13 Proftpd
Install Proftpd like this:
urpmi proftpd
For security reasons you can add the following lines to /etc/proftpd.conf (thanks to Reinaldo Carvalho; more information can be found here: http://www.proftpd.org/localsite/Userguide/linked/userguide.html):
vi /etc/proftpd.conf
[...] DefaultRoot ~ IdentLookups off ServerIdent on "FTP Server ready." [...] |
Be sure to comment out the following lines at the end of /etc/proftpd.conf in order to allow ftp users to CHMOD:
[...] # Bar use of SITE CHMOD by default #<Limit SITE_CHMOD> # DenyAll #</Limit> |
Then restart Proftpd:
/etc/init.d/proftpd restart
14 Webalizer
Webalizer can be installed as follows:
urpmi webalizer
ln -s /usr/bin/awffull /usr/bin/webalizer
15 Install Some Perl Modules Needed By SpamAssassin (Comes With ISPConfig)
To install all needed Perl Modules, we can use the appropriate Mandriva packages and install them using urpmi:
urpmi perl-HTML-Parser perl-Digest-SHA1 perl-DB_File perl-Net-DNS perl-NetAddr-IP perl-Archive-Tar
16 The End
The configuration of the server is now finished, and if you wish you can now install ISPConfig on it. You can find the installation instructions here: http://www.ispconfig.org/manual_installation.htm. A First-Steps tutorial can be found here: https://www.howtoforge.com/ispconfig-2.x-first-steps
Before you install ISPConfig, there's one important thing you must do. Open /usr/include/stdio.h and replace getline with parseline in line 651:
vi /usr/include/stdio.h
[...] 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:651: note: previous declaration of âgetlineâ was here
make[2]: *** [htpasswd.o] Error 1
make[2]: Leaving directory `/home/administrator/install_ispconfig/compile_aps/apache_1.3.41/src/support'
make[1]: *** [build-support] Error 1
make[1]: Leaving directory `/home/administrator/install_ispconfig/compile_aps/apache_1.3.41'
make: *** [build] Error 2
ERROR: Could not make Apache
You 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!).
17 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 Mandriva's suExec is compiled with /var/www as Doc_Root. Run
/usr/sbin/suexec -V
and 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_SUEXEC_UMASK=077
-D AP_UID_MIN=100
-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).
18 Links
- Mandriva: http://www.mandriva.com/
- ISPConfig: http://www.ispconfig.org/