Installation on SUSE Linux 10.0"
2006-11-14
Brand
Ron
ron.brand@syscp.org
Aders
Florian
florian.aders@syscp.org
2006
SysCP
This work is licensed under the Creative Commons
Attribution-Noncommercial-Share Alike 2.0 Germany License. To view a
copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.0/de/
or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San
Francisco, California, 94105, USA.
1
2006-10-06
Original version
1.1
2006-10-27
LaTeX - formatted and first commit to SysCP-documentation -
SVN
1.2
2006-11-09
Converted to Docbook
1.3
2006-11-14
Added hint about ini_restore, updated the cronscript and added
licensing-information
The first words
Welcome
Welcome to the installation - process for the SysCP
server-management-tool. You have chosen a powerful tool with a very
small need of resources. Just execute the commands we show you in this
HowTo and you should be happy. If problems occur, ask in our
IRC channel or visit our
forum. Do yourself a favour
and use the powerful search function before asking any question. The
results you get might be more efficient than a single question about a
particular problem.
Naming conventions
In this HowTo, we used the following basic naming
conventions:
Commands executed as root:
syscp ~ #
/execute/this/command
Commands executed as a specific user:
vmail@syscp $
/execute/this/command/as/user/vmail
Output of various programs:
I am the echo of a normal command, executed in a
shell
Content of a file:# The following sets the variable PATH to a useless value
PATH=/dev/nullFilenames:
/etc/apache2/httpd.conf
Variable names: $iamavariable
Requirements
User requirements
It is essential to be familiar with your Linux-Environment. You
might encounter situations, where you definitely need a shell. If you
wish to install your server according to this HowTo it is advisable to
consult and understand the basics of networking, DNS and - of course -
Linux itself. You don't need to know every detail of your mail system
already, this will be discussed here in this HowTo. Should you, however,
have no experience at all how to operate a server which is connected to
the Internet, we strongly recommend the usage of a test-environment. A
wrongly configured server is a target for all kind of attack and
misuse.
This HowTo requires also basic-knowledge about the MySQL database
server. Installation and configuration will not be discussed here. Last
but not least you need to know basics about your apache webserver,
without this basic knowledge you wont be able to configure your
SysCP setup, and the software might not function
properly. Every admin should be aware what kind of software is running
on his/her system. Please keep in mind one basic thing:
The best admintool can never replace a good
administrator
Server Requirements
To perform a successful installation of
SysCP it is assumed to have a SUSE 10.0 up and
running. A discussion about how to install Linux itself will not take
place here. Certainly there are enough good HowTos available elsewhere
and are misplaced here. In addition a MySQL database is needed too.
Likewise there are good HowTos for helping you to install MySQL.
Installing software packages
Online repositories
Although SUSE Linux 10.0 is more a Desktop System than a server,
its still possible to set up a system with fully functional
SysCP-support. However, it is necessary to add
some lately published installation-sources. Fortunately these sources
include the modules that we need to built up
SysCP. They were not shipped with the original
SUSE CD/DVD. This sources are:
http://software.opensuse.org/download/server:/ftp/SUSE_Linux_10.0/
http://repos.opensuse.org/home:/cboltz/SUSE_Linux_10.0/
Add the above sources to your installation of
SUSE
Required packages/modules
apache2 Webserver
apache2-prefork Multi-Processing
Module(mpm)similar to the process-model in Apache
1.3
apache2-mod_php5 PHP5 Module for
Apache2.0
mysql Database server
mysql-client
Standard-MySQL-CLients
php5 PHP5 Core-Files
php5-mysql PHP5 Extension-Module for access to
MySQL database servers.
Note: You might want to have PHP4 installed for
compatibility reasons. In this case use the respective php4 - modules.
This HowTo however is based and tested with PHP5.
postfix a powerful Mail-MTA
postfix-mysql MySQL-Plugin for
Postfix
courier-imap lightweight server to provide IMAP
and POP3 functionality
courier-authlib provides authentication
services
courier-authlib-mysql MySQL support for the
courier authentication library
proftpd FTP-server
proftpd-sql-mysql MySQL module for
proftpd
bind Domain Name Server (DNS)
cyrus-sasl-sqlauxprop MySQL auxprop
plugin
openssl for crypted connections
phpMyAdmin (optional) to manage your MySQL account
over the web
webalizer to manage your
statistics
Note: Keep in mind that above mentioned
packages/modules will require further packages to resolve dependencies.
YAST will automatically inform you upon installation which additional
software is needed.
SysCP installation
Webfrontend
Type the following commands in a Shell, to create the directory
for SysCP:
syscp ~ # mkdir
/srv/www/htdocs/syscp
Currently there is no SUSE rpm of SysCP.
Therefore we will get and install the *.tar.gz:
syscp ~ # cd /root
syscp ~ # wget
http://files.syscp.org/releases/tgz/syscp-current.tar.gz
In this HowTo we will install SysCP into
the directory /srv/www/htdocs/syscp:
syscp ~ # tar xzvf
/root/syscp-current.tar.gz -C /srv/www/htdocs/
syscp ~ # chown -R wwwrun:www
/srv/www/htdocs/syscp/*
In order to provide maximum user-flexibility and let
SysCP find its Include-files we need to change
the default entry in /etc/php5/apache2/php.ini as
follows: replace include_path = "/usr/share/php5"
with include_path = ".:/usr/share/php5".
Please note: Due to some
security-issues inside PHP, a customer can disable
open_basedir and / or
safe_mode, if it's disabled in your
php.ini. The function used for this is called
ini_restore. To prevent these attacks, you can
disable this function in your
php.ini:disable_functions = ini_restoreTo
continue with your SysCP installation restart the
needed services:
syscp ~ # /etc/init.d/apache2
restart
syscp ~ # /etc/init.d/mysql
restart
Call the installer of SysCP:
http://<your ip>/syscp/ and hopefully you will get the message:
"You have to configure SysCP first!" click on "configure" to continue
the installers script.
The SysCP-installer
Important: Should you have a
MySQL root password set already, you need to give it to the installer,
if you don't have set a MySQL root password already (e.g. if this is
your first run of MySQL), just type in your desired root password,
SysCP will set it for you.
Successful installation of the frontend
After installing SysCP just log in with
your admin account and click on Settings in the
left-handed menu. Here we need to change some things:
Needed settings:
Apache configuration directory:
/etc/apache2
Apache reload command:
/etc/init.d/apache2 reload
Bind config directory:
/etc/named.d
Bind reload command:
/etc/init.d/named reload
Backend
Apache2
See the section Configuration (in the menu) -> SUSE 10.0
-> Apache Webserver and follow the instructions there (execute the
following commands in a shell.)
syscp ~ # echo -e \"\nInclude
/etc/apache2/vhosts.conf\" >>
/etc/apache2/httpd.conf
syscp ~ # touch
/etc/apache2/vhosts.conf
syscp ~ # mkdir -p
/var/kunden/webs/
syscp ~ # mkdir -p
/var/kunden/logs/
syscp ~ # /etc/init.d/apache2
restart
Don't forget to change this section in the
httpd.conf (the default is shown below) according
to your needs, otherwise you will get 403 error.# forbid access to the entire filesystem by default
<Directory />
Options None
AllowOverride None
Order deny,allow
Deny from all
</Directory>
The easiest way to allow access to the customer - webs is to add
the following directly after the default:# Allow access to the SysCP - customer - webs
<Directory /var/kunden/webs>
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
ProFTPd
As mentioned earlier, the ProFTPD of SUSE 10.0 comes with MySQL
support. This will make things quite easy. Just use the config files
suggested by SysCP: Configuration -> SUSE 10.0 -> ProFTPD
To enable TLS-mode of ProFTPD we need some modifications. Lets
create a certificate, which is needed to establish a crypted
connection. It can be created easily using this command:
syscp ~ # openssl req -new -x509
-days 365 -nodes -out /etc/ssl/certs/proftpd.cert.pem -keyout
/etc/ssl/certs/proftpd.key.pem
After creating the certificate we must adjust the configuration
of Proftpd. Add these lines to
/etc/proftpd/proftpd.conf:# Uncomment this if you would use TLS module:
TLSEngine on
TLSLog /var/log/ftp_tls.log
TLSProtocol SSLv23
TLSOptions NoCertRequest
TLSRSACertificateFile /etc/ssl/certs/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/ssl/certs/proftpd.key.pem
TLSVerifyClient off
# Uncomment the following line to force tls-login
#TLSRequired on
Save your proftpd.conf and restart ProFTPD
syscp ~ # /etc/init.d/proftpd
restart
Courier
Nothing much to say here: Install the suggested files from
Configuration -> SUSE 10.0 -> Courier (POP3/IMAP) into the given
directories and restart the services:
syscp ~ #
/etc/init.d/courier-authdaemon
restart
syscp ~ # /etc/init.d/courier-pop
restart
Simple, isn't it? ;)
Postfix
We appreciate the newly added MySQL support for Postfix in SUSE
10.0. Let us start the configuration: Refer again to the Mainpage of
SysCP and call Configuration -> SUSE 10.0
->Postfix(MTA) you need to run the following commands in your
shell:
syscp ~ # mkdir -p
/var/spool/postfix/etc/pam.d
syscp ~ # groupadd -g 2000
vmail
syscp ~ # useradd -u 2000 -g vmail
vmail
syscp ~ # mkdir -p
/var/kunden/mail/
syscp ~ # chown -R vmail:vmail
/var/kunden/mail/
Now change the following files or create them - if they do not
exist - with the content shown on the "Configuration" -
site.
/etc/postfix/main.cf
/etc/postfix/mysql-virtual_alias_maps.cf
/etc/postfix/mysql-virtual_mailbox_domains.cf
/etc/postfix/mysql-virtual_mailbox_maps.cf
/usr/lib/sasl2/smtpd.conf
Please Note: The MySQL-password has not been replaced for
security reasons. Please replace "MYSQL_PASSWORD" on your own. If you
forgot your MySQL-password you'll find it in
"lib/userdata.inc.php". Then restart the Postfix
MTA:
syscp ~ # /etc/init.d/postfix
restart
Bind Nameserver
In Configuration -> SUSE 10.0 ->Bind Nameserver (DNS) you
will find a short description how to configure bind, the Domain Name
Server shipped with SUSE:
syscp ~ # echo "include
\"/etc/named.d/syscp_bind.conf\";" >>
/etc/named.conf
syscp ~ # touch
/etc/named.d/syscp_bind.conf
After a restart, bind is ready to use:
syscp ~ # /etc/init.d/named
restart
Cron
Configuration -> SUSE 10.0 ->Crond will guide you through
the Configuration of the SysCP cronscript.
First create the needed directory including the php.ini file for the
CLI:
syscp ~ # mkdir -p
/etc/php5/syscpcron
syscp ~ # touch
/etc/php5/syscpcron/php.ini
Copy the suggested content into the newly created file
/etc/php5/syscpcron/php.ini. Create the file
/etc/cron.d/syscp with the
content:#
# Set PATH, otherwise restart-scripts won't find start-stop-daemon
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
#
# Regular cron jobs for the syscp package
#
*/5 * * * * root /usr/bin/php5 -q -C /etc/php5/syscpcron /srv/www/htdocs/syscp/scripts/cron_tasks.php
0 0 * * * root /usr/bin/php5 -q -C /etc/php5/syscpcron /srv/www/htdocs/syscp/scripts/cron_traffic.php
10 0 * * * root /usr/bin/php5 -q -C /etc/php5/syscpcron /srv/www/htdocs/syscp/scripts/cron_traffic_report.php
Make sure there is an empty line at the end, otherwise cron
will not read the command. After a restart you should be able to have
a running system.
syscp ~ # /etc/init.d/cron
restart
Make sure, that your runlevel - editor is set to restart all
needed services upon reboot.
Reminder: do NOT use any
Microsoft Windows editor (e.g. Notepad), some of your files might
become corrupt due to wrong line breaks.
The last words
Personal Remarks
Finally! SysCP is installed and fully
functional. At this point we wish you much fun with your server and
SysCP. If you encounter any problems with this
HowTo, just ask, either in our IRC channel (#syscp on irc.freenode.net) or in the
forum (http://forum.syscp.org), but please
use the search-function first. Many question were answered in the past,
your might be solved, too.
Credits
This HowTo was originally written by Ron Brand and formatted by
Florian Aders.
Disclaimer
This HowTo was written to the best of our knowledge. Although it
will be maintained carefully, the authors cannot guarantee a 100% error
free work. Use it at your own risc. The authors can not be held
responsible for damage on hard/software due to the usage of this
document. Feel free to distribute this HowTo as long as the Credits and
Disclaimer will remain untouched.