Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
lolo888
ISPConfig 3
Commits
0ca0b848
Commit
0ca0b848
authored
Feb 24, 2010
by
tbrehm
Browse files
- Improved debian 5 courier installation guide.
- Fixed a problem with the automatic creation of maildir subfolders.
parent
8ba82ee0
Changes
2
Hide whitespace changes
Inline
Side-by-side
docs/INSTALL_DEBIAN_5.0_courier_mydns.txt
View file @
0ca0b848
...
...
@@ -14,6 +14,7 @@ Installation
# if not, then we assign a hostname (for example ispconfig):
echo ispconfig.example.com > /etc/hostname
/etc/init.d/hostname.sh
vi /etc/hosts
...
...
@@ -36,14 +37,14 @@ apt-get install ntp ntpdate
opt0.3) Optionally if you want vi editor improvement
apt-get install vim-nox
apt-get
-y
install vim-nox
# Next is the real deal
1) Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin, rkhunter, binutils with the following command line (on one line!):
apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl courier-maildrop getmail4 rkhunter binutils
apt-get
-y
install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl courier-maildrop getmail4 rkhunter binutils
# Answer the questions from the package manager as follows.
...
...
@@ -74,7 +75,7 @@ to:
2) Install Amavisd-new, Spamassassin and Clamav (1 line!):
apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
apt-get
-y
install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
# During the installation, the SSL certificates for IMAP-SSL and POP3-SSL are created with the hostname localhost. To change this to the correct hostname (server1.example.com in this tutorial), delete the certificates...
...
...
@@ -109,7 +110,7 @@ mkpop3dcert
3) Install apache, PHP5, phpmyadmin, better fastCGI, suexec, Pear and mcrypt (1 line!):
apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libopenssl-ruby
apt-get
-y
install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libopenssl-ruby
# When phpMyAdmin is asking weather to configure itself automatically, select "Apache2"
...
...
@@ -125,25 +126,7 @@ a2enmod suexec rewrite ssl actions include
4) Install pure-ftpd and quota
apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool
# Edit the file /etc/default/pure-ftpd-common to change the start mode from "inetd" to "standalone"
and set VIRTUALCHROOT=true
vi /etc/default/pure-ftpd-common
# Edit the file /etc/inetd.conf to prevent inetd from trying to start ftp.
# To do this, comment line starting like "ftp stream tcp" by adding "#"-sign in front of the line.
vi /etc/inetd.conf
# Then execute:
/etc/init.d/openbsd-inetd restart
# Some additional settings for pureftpd
echo 'yes' > /etc/pure-ftpd/conf/DontResolve
apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool
# Enable TLS in pureftpd
echo 1 > /etc/pure-ftpd/conf/TLS
...
...
@@ -262,25 +245,18 @@ update-rc.d mydns defaults
apt-get install vlogger webalizer
Change the following line in /etc/webalizer/webalizer.conf from
#Incremental no
to
Incremental yes
7) Install Jailkit (optional, only needed if you want to use chrroting for SSH users)
apt-get install build-essential autoconf automake1.9 libtool flex bison debhelper
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.
7
.tar.gz
tar xvfz jailkit-2.
7
.tar.gz
cd jailkit-2.
7
wget http://olivier.sessink.nl/jailkit/jailkit-2.
11
.tar.gz
tar xvfz jailkit-2.
11
.tar.gz
cd jailkit-2.
11
./debian/rules binary
cd ..
dpkg -i jailkit_2.
7
-1_*.deb
rm -rf jailkit-2.
7
*
dpkg -i jailkit_2.
11
-1_*.deb
rm -rf jailkit-2.
11
*
8) Install fail2ban (optional but recomended, because the monitor tries to show the log)
More info at: http://www.howtoforge.com/fail2ban_debian_etch
...
...
@@ -289,26 +265,10 @@ apt-get install fail2ban
9) Install ISPConfig 3
# There are two possile scenarios, but not both:
9.1) Install the latest released version
9.2) Install directly from SVN
9.1) Installation of last version from tar.gz
cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3.0.0.9-rc2.tar.gz
tar xvfz ISPConfig-3.0.0.9-rc2.tar.gz
cd ispconfig3_install/install/
9.2) Installation from SVN
apt-get install subversion
cd /tmp
svn export svn://svn.ispconfig.org/ispconfig3/trunk/
cd trunk/install
9.1+9.2) Now proceed with the ISPConfig installation.
cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3.0.2.tar.gz
tar xvfz ISPConfig-3.0.2.tar.gz
cd ispconfig3_install/install/
# Now start the installation process by executing:
...
...
server/plugins-available/mail_plugin.inc.php
View file @
0ca0b848
...
...
@@ -119,27 +119,6 @@ class mail_plugin {
//exec("su -c 'maildirmake ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
$app
->
system
->
maildirmake
(
$maildomain_path
,
$mail_config
[
'mailuser_name'
]);
if
(
!
is_dir
(
$data
[
'new'
][
'maildir'
]
.
'/.Sent'
))
{
//exec("su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
//$app->log('Created submaildir Sent: '."su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
$app
->
system
->
maildirmake
(
$maildomain_path
,
$mail_config
[
'mailuser_name'
],
'Sent'
);
}
if
(
!
is_dir
(
$data
[
'new'
][
'maildir'
]
.
'/.Drafts'
))
{
//exec("su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
//$app->log('Created submaildir Drafts: '."su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
$app
->
system
->
maildirmake
(
$maildomain_path
,
$mail_config
[
'mailuser_name'
],
'Drafts'
);
}
if
(
!
is_dir
(
$data
[
'new'
][
'maildir'
]
.
'/.Trash'
))
{
//exec("su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
//$app->log('Created submaildir Trash: '."su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
$app
->
system
->
maildirmake
(
$maildomain_path
,
$mail_config
[
'mailuser_name'
],
'Trash'
);
}
if
(
!
is_dir
(
$data
[
'new'
][
'maildir'
]
.
'/.Junk'
))
{
//exec("su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
//$app->log('Created submaildir Junk: '."su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
$app
->
system
->
maildirmake
(
$maildomain_path
,
$mail_config
[
'mailuser_name'
],
'Junk'
);
}
exec
(
'chown -R '
.
$mail_config
[
'mailuser_name'
]
.
':'
.
$mail_config
[
'mailuser_group'
]
.
' '
.
escapeshellcmd
(
$data
[
'new'
][
'maildir'
]));
$app
->
log
(
"Set ownership on "
.
escapeshellcmd
(
$data
[
'new'
][
'maildir'
]),
LOGLEVEL_DEBUG
);
...
...
@@ -150,6 +129,27 @@ class mail_plugin {
}
}
if
(
!
is_dir
(
$data
[
'new'
][
'maildir'
]
.
'/.Sent'
))
{
//exec("su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
//$app->log('Created submaildir Sent: '."su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
$app
->
system
->
maildirmake
(
$maildomain_path
,
$mail_config
[
'mailuser_name'
],
'Sent'
);
}
if
(
!
is_dir
(
$data
[
'new'
][
'maildir'
]
.
'/.Drafts'
))
{
//exec("su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
//$app->log('Created submaildir Drafts: '."su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
$app
->
system
->
maildirmake
(
$maildomain_path
,
$mail_config
[
'mailuser_name'
],
'Drafts'
);
}
if
(
!
is_dir
(
$data
[
'new'
][
'maildir'
]
.
'/.Trash'
))
{
//exec("su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
//$app->log('Created submaildir Trash: '."su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
$app
->
system
->
maildirmake
(
$maildomain_path
,
$mail_config
[
'mailuser_name'
],
'Trash'
);
}
if
(
!
is_dir
(
$data
[
'new'
][
'maildir'
]
.
'/.Junk'
))
{
//exec("su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
//$app->log('Created submaildir Junk: '."su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
$app
->
system
->
maildirmake
(
$maildomain_path
,
$mail_config
[
'mailuser_name'
],
'Junk'
);
}
//* Set the maildir quota
if
(
is_dir
(
$data
[
'new'
][
'maildir'
]
.
'/new'
)
&&
$mail_config
[
'pop3_imap_daemon'
]
!=
'dovecot'
)
{
exec
(
"su -c 'maildirmake -q "
.
$data
[
'new'
][
'quota'
]
.
"S "
.
escapeshellcmd
(
$data
[
'new'
][
'maildir'
])
.
"' "
.
$mail_config
[
'mailuser_name'
]);
...
...
@@ -207,27 +207,6 @@ class mail_plugin {
//$app->log("Created Maildir "."su -c 'maildirmake ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
$app
->
system
->
maildirmake
(
$maildomain_path
,
$mail_config
[
'mailuser_name'
]);
if
(
!
is_dir
(
$data
[
'new'
][
'maildir'
]
.
'/.Sent'
))
{
//exec("su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
//$app->log('Created submaildir Sent: '."su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
$app
->
system
->
maildirmake
(
$maildomain_path
,
$mail_config
[
'mailuser_name'
],
'Sent'
);
}
if
(
!
is_dir
(
$data
[
'new'
][
'maildir'
]
.
'/.Drafts'
))
{
//exec("su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
//$app->log('Created submaildir Drafts: '."su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
$app
->
system
->
maildirmake
(
$maildomain_path
,
$mail_config
[
'mailuser_name'
],
'Drafts'
);
}
if
(
!
is_dir
(
$data
[
'new'
][
'maildir'
]
.
'/.Trash'
))
{
//exec("su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
//$app->log('Created submaildir Trash: '."su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
$app
->
system
->
maildirmake
(
$maildomain_path
,
$mail_config
[
'mailuser_name'
],
'Trash'
);
}
if
(
!
is_dir
(
$data
[
'new'
][
'maildir'
]
.
'/.Junk'
))
{
//exec("su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
//$app->log('Created submaildir Junk: '."su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
$app
->
system
->
maildirmake
(
$maildomain_path
,
$mail_config
[
'mailuser_name'
],
'Junk'
);
}
exec
(
'chown -R '
.
$mail_config
[
'mailuser_name'
]
.
':'
.
$mail_config
[
'mailuser_group'
]
.
' '
.
escapeshellcmd
(
$data
[
'new'
][
'maildir'
]));
$app
->
log
(
"Set ownership on "
.
escapeshellcmd
(
$data
[
'new'
][
'maildir'
]),
LOGLEVEL_DEBUG
);
//* This is to fix the maildrop quota not being rebuilt after the quota is changed.
...
...
@@ -237,6 +216,27 @@ class mail_plugin {
}
}
if
(
!
is_dir
(
$data
[
'new'
][
'maildir'
]
.
'/.Sent'
))
{
//exec("su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
//$app->log('Created submaildir Sent: '."su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
$app
->
system
->
maildirmake
(
$maildomain_path
,
$mail_config
[
'mailuser_name'
],
'Sent'
);
}
if
(
!
is_dir
(
$data
[
'new'
][
'maildir'
]
.
'/.Drafts'
))
{
//exec("su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
//$app->log('Created submaildir Drafts: '."su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
$app
->
system
->
maildirmake
(
$maildomain_path
,
$mail_config
[
'mailuser_name'
],
'Drafts'
);
}
if
(
!
is_dir
(
$data
[
'new'
][
'maildir'
]
.
'/.Trash'
))
{
//exec("su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
//$app->log('Created submaildir Trash: '."su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
$app
->
system
->
maildirmake
(
$maildomain_path
,
$mail_config
[
'mailuser_name'
],
'Trash'
);
}
if
(
!
is_dir
(
$data
[
'new'
][
'maildir'
]
.
'/.Junk'
))
{
//exec("su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
//$app->log('Created submaildir Junk: '."su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
$app
->
system
->
maildirmake
(
$maildomain_path
,
$mail_config
[
'mailuser_name'
],
'Junk'
);
}
// Move mailbox, if domain has changed and delete old mailbox
if
(
$data
[
'new'
][
'maildir'
]
!=
$data
[
'old'
][
'maildir'
]
&&
is_dir
(
$data
[
'old'
][
'maildir'
]))
{
if
(
is_dir
(
$data
[
'new'
][
'maildir'
]))
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment