The document provides instructions for installing and configuring a full-featured Linux server for hosting websites, email, and other services. It includes steps to install and configure an ISPConfig control panel along with associated software like Apache, PHP, MySQL, Postfix, Dovecot, PureFTPd, BIND, Roundcube webmail, and more. The overall process allows you to set up an full-fledged web hosting server on a Linux machine.
Report
Share
Report
Share
1 of 9
Download to read offline
More Related Content
Tested install-isp config3-ubuntu-16-04
1. Install ISPConfig 3 With RoundCube Mail Server
2. Edit /etc/apt/sources.list And Update Your Linux Installation
Disable CD Rom
# nano /etc/apt/sources.list
# apt-get update
# apt-get upgrade
# reboot
3. Change the Default Shell
# dpkg-reconfigure dash
Use dash as the default system shell (/bin/sh)? <-- No
4. Disable AppArmor
# service apparmor stop
# update-rc.d -f apparmor remove
# apt-get remove apparmor apparmor-utils
5. Synchronize the System Clock
# apt-get -y install ntp ntpdate
6. Install Postfix, Dovecot, MariaDB, rkhunter and binutils
# service sendmail stop; update-rc.d -f sendmail remove
# apt-get install postfix postfix-mysql postfix-doc mariadb-client mariadb-server
openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql
dovecot-sieve dovecot-lmtpd sudo
General type of mail configuration: <-- Internet Site
System mail name: <-- server1.example.com
4. 8. Install Apache, PHP, phpMyAdmin, FCGI, SuExec, Pear, and mcrypt
# apt-get install apache2 apache2-doc apache2-utils libapache2-mod-php php7.0
php7.0-common php7.0-gd php7.0-mysql php7.0-imap phpmyadmin php7.0-cli
php7.0-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear php-auth
php7.0-mcrypt mcrypt imagemagick libruby libapache2-mod-python php7.0-curl
php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc
php7.0-xsl memcached php-memcache php-imagick php-gettext php7.0-zip
php7.0-mbstring
Web server to reconfigure automatically: <-- apache2
Configure database for phpmyadmin with dbconfig-common? <-- Yes
MySQL application password for phpmyadmin: <-- Press enter
# a2enmod suexec rewrite ssl actions include cgi
# a2enmod dav_fs dav auth_digest headers
# sudo nano /etc/apache2/conf-available/httpoxy.conf
<IfModule mod_headers.c>
RequestHeader unset Proxy early
</IfModule>
# a2enconf httpoxy
# service apache2 restart
# nano /etc/mime.types
#application/x-ruby rb
# service apache2 restart
8.1 PHP Opcode cache
# apt-get install php7.0-opcache php-apcu
# service apache2 restart
8.2 PHP-FPM
# apt-get install libapache2-mod-fastcgi php7.0-fpm
# a2enmod actions fastcgi alias
# service apache2 restart
5. 9. Install Let's Encrypt
# mkdir /opt/certbot
# cd /opt/certbot
# wget https://dl.eff.org/certbot-auto
# chmod a+x ./certbot-auto
# ./certbot-auto
No names were found in your configuration files. Etc... <-- No
10. Install Mailman
# apt-get install mailman
Languages to support: <-- en (English)
Missing site list <-- Ok
# newlist mailman
Enter the email of the person running the list: <-- admin email addressInitial
mailman password: <-- admin password for the mailman list
# nano /etc/aliases
## mailman mailing list
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"
# newaliases
# service postfix restart
# ln -s /etc/mailman/apache.conf /etc/apache2/conf-available/mailman.conf
# service apache2 restart
# service mailman start
6. 11. Install PureFTPd and Quota
# apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool
# nano /etc/default/pure-ftpd-common
STANDALONE_OR_INETD=standalone
VIRTUALCHROOT=true
# echo 1 > /etc/pure-ftpd/conf/TLS
# mkdir -p /etc/ssl/private/
# openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout
/etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Country Name (2 letter code) [AU]: <-- Enter your Country Name
State or Province Name (full name) [Some-State]:<-- Enter your State or Province Name.
Locality Name (eg, city) []:<-- Enter your City.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:<-- Enter your Organization Name
Organizational Unit Name (eg, section) []:<-- Enter your Organizational Unit Name
Common Name (eg, YOUR name) []:<-- Enter the Fully Qualified Domain Name of the system
Email Address []:<-- Enter your Email Address.
# chmod 600 /etc/ssl/private/pure-ftpd.pem
# service pure-ftpd-mysql restart
# nano /etc/fstab
/dev/mapper/server1--vg-root / ext4
errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# mount -o remount /
# quotacheck -avugm
# quotaon -avug
12. Install BIND DNS Server
# apt-get install bind9 dnsutils haveged