尽管命令行是一个功能强大的工具,可以让您在许多情况下快速轻松地工作,但在某些情况下,可视化界面会很有帮助。如果您要在一台计算机上配置许多不同的服务,或者为客户端管理系统的某些部分,则可以使用诸如ISP配置可以使这个任务变得更加简单。
ISPConfig 是服务器的控制面板,可让您轻松配置域、电子邮件地址、站点配置和用户帐户。我们将在 Ubuntu 14.04 服务器上安装该面板。
在我们开始之前,您应该有一个指向您将使用的服务器的域名。找出答案如何使用 DigitalOcean 配置您的域名, 点击这里。
您还需要一个具有 sudo 权限的非 root 用户。您可以按照我们的步骤 1-4 来了解如何设置非 root 帐户Ubuntu 14.04 初始服务器设置指南。以该用户身份登录即可开始。
我们要做的第一件事就是升级基础系统。这将确保我们系统上的软件包是最新的打包版本。
在执行此操作之前,我们应该更新本地包索引,以便apt
了解最新的软件包版本:
sudo apt-get update
sudo apt-get upgrade
我们的系统现在应该是最新的,我们可以开始进行其余的安装。
我们将首先确保我们的主机名配置正确。在本指南中,我们假设我们正在设置的域名是server.test.com
服务器的 IP 地址是111.111.111.111
.
我们需要验证我们的主机名配置是否正确。我们应该查看我们的主机文件:
sudo nano /etc/hosts
它可能看起来像这样:
127.0.0.1 localhost server.test.com server
我们想让我们的主机名使用我们的公共 IP 地址。您可以通过将该行分成两行并将域名部分指向我们的公共 IP 地址来完成此操作:
127.0.0.1 本地主机
111.111.111.111服务器.test.com服务器
前>
完成后保存并关闭文件。
我们还应该编辑我们的hostname
文件以确保它也包含正确的域名:
sudo nano /etc/hostname
如果未显示整个主机名,请修改该值:
server.test.com
前>
您应该通过键入以下内容来确保系统使用新值:
sudo hostname -F /etc/hostname
Ubuntu 以非常规方式配置了一些项目,我们需要撤消这些项目才能使我们的软件正常运行。
我们需要做的第一件事是禁用 AppArmor,它与 ISPConfig 不兼容。首先,我们应该停止服务:
sudo service apparmor stop
我们还可以通过键入以下内容来告诉它卸载其配置文件:
sudo service apparmor teardown
完成此操作后,我们需要告诉我们的服务器不要在启动时启动此服务:
sudo update-rc.d -f apparmor remove
实际上,我们可以通过键入以下内容来删除所有关联的文件和包:
sudo apt-get remove apparmor
我们需要修改的另一个配置是默认的系统 shell。 Ubuntu 使用dash
shell 用于系统进程,但 ISPConfig 利用了专门提供的附加功能bash
。我们可以设置bash
键入以下命令作为默认系统 shell:
sudo dpkg-reconfigure dash
在出现提示时,选择“否”以使实用程序重新配置要使用的系统 shell 指针bash
代替dash
.
现在我们的基础系统已准备就绪,我们可以开始安装 ISPConfig 可以管理的一些服务以及一些支持 ISPConfig 的软件。
我们将安装基本的 LAMP(Linux、Apache、MySQL、PHP)组件、邮件软件、邮件防病毒扫描软件以及其他软件包。
我们将一次完成这一切apt
命令,所以这将一次安装很多软件包:
sudo apt-get install apache2 apache2-utils libapache2-mod-suphp libapache2-mod-fastcgi libapache2-mod-python libapache2-mod-fcgid apache2-suexec libapache2-mod-php5 php5 php5-fpm php5-gd php5-mysql php5-curl php5-intl php5-memcache php5-memcached php5-ming php5-ps php5-xcache php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-imap php5-cgi php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libruby memcached phpmyadmin postfix postfix-mysql postfix-doc mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve mailman amavisd-new spamassassin clamav clamav-daemon zoo unzip zip arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl libnet-dns-perl bind9 dnsutils vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl squirrelmail pure-ftpd-common pure-ftpd-mysql snmp
在安装过程中,系统会询问您一些问题。系统会要求您选择一种语言mailman
。选择en (English)
接着说。您还将被要求选择并确认 MySQL 管理用户的密码。
您将收到的另一个提示是是否为以下内容创建自签名 SSL 证书:dovecot
。您应该选择“是”。您必须输入 SSL 证书的“commonName”。这只是您的完全限定域名:
server.test.com
For postfix
,系统会询问您需要哪种邮件配置。选择Internet Site
。然后系统会要求您选择系统邮件名称。您也应该将其设置为您的域名:
server.test.com
对于 phpMyAdmin,该软件能够根据您的 Web 服务器自动配置自身。选择“apache2”并按“空格键”选择该选项。按“TAB”然后按“ENTER”进行选择。
稍后,您将询问是否要为 phpMyAdmin 配置数据库:dbconfig-common
。此处选择“是”。您需要输入上面选择的 MySQL 管理员帐户的密码。然后您可以选择并确认 phpMyAdmin 用户的密码。
此时,所有组件都应该已安装。
现在一切都已安装,我们需要开始配置我们的服务和工具。
让我们首先启用一些功能postfix
。使用编辑器打开默认配置文件:
sudo nano /etc/postfix/master.cf
我们只需取消该文件中某些行的注释即可。具体来说,处理提交服务的行和下面的前三个选项行,以及 smtps 服务和该服务的前三个选项行:
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
. . .
smtps inet n - - - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
现在,我们需要在这两项服务下添加一个附加选项。每个都相同:
提交inet n - - - - smtpd
-o syslog_name=后缀/提交
-o smtpd_tls_security_level=加密
-o smtpd_sasl_auth_enable=是
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
。 。 。
smtps inet n - - - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=是
-o smtpd_sasl_auth_enable=是
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
前>
完成后保存并关闭文件。
我们应该配置的另一个与邮件相关的服务是mailman
,它可以处理邮件列表。
我们可以首先告诉它创建一个新列表:
sudo newlist mailman
系统将要求您提供与该列表关联的电子邮件。您还将被要求选择一个密码。
该脚本将输出一长串别名。您应该将它们添加到您的底部/etc/aliases
file:
sudo nano /etc/aliases
它应该看起来像这样:
邮政局长:根
mailman: “|/var/lib/mailman/mail/mailman post mailman”
mailman-admin: “|/var/lib/mailman/mail/mailman admin mailman”
mailman-bounces: “|/var/lib/mailman/mail/mailman 反弹 mailman”
mailman-confirm: “|/var/lib/mailman/mail/mailman 确认 mailman”
mailman-join: “|/var/lib/mailman/mail/mailman 加入 mailman”
mailman-leave: “|/var/lib/mailman/mail/mailman 离开 mailman”
mailman-owner:“|/var/lib/mailman/mail/mailman 所有者 mailman”
mailman-request: “|/var/lib/mailman/mail/mailman 请求 mailman”
mailman-subscribe: “|/var/lib/mailman/mail/mailman 订阅 mailman”
mailman-unsubscribe: “|/var/lib/mailman/mail/mailman 取消订阅 mailman”
前>
完成后保存并关闭文件。你需要做postfix
了解您添加的别名。您可以通过输入以下内容来做到这一点:
sudo newaliases
我们可以开始mailman
服务通过键入:
sudo service mailman start
重新启动postfix
启用邮件更改的服务:
sudo service postfix restart
当我们处理服务时,我们也应该停止和禁用spamassassin
。 ISPConfig 根据需要调用它,并且不需要一直运行:
sudo service spamassassin stop
然后我们可以告诉服务器不要在启动时再次启动它:
sudo update-rc.d -f spamassassin remove
我们需要启用mcrypt
PHP 中的功能:
sudo php5enmod mcrypt
我们需要做的另一件事是启用我们安装的一些 Apache 模块。
sudo a2enmod rewrite ssl actions include cgi dav_fs suexec dav auth_digest fastcgi alias
我们还需要对Apache的一些配置文件进行一些调整。
我们启用的模块之一当前将拦截我们的所有 PHP 文件。我们想阻止它这样做。打开suphp
配置文件:
sudo nano /etc/apache2/mods-available/suphp.conf
前>
SetHandler 应用程序/x-httpd-suphp
文件匹配>
suPHP_AddHandler 应用程序/x-httpd-suphp
。 。 。
前>
我们将用一个命令替换顶部的块。完成后它应该看起来像这样:
AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml
suPHP_AddHandler 应用程序/x-httpd-suphp
前>
完成后保存并关闭文件。
我们必须手动创建符号链接mailman
阿帕奇文件。我们可以通过输入以下内容来做到这一点:
sudo ln -s /etc/mailman/apache.conf /etc/apache2/conf-available/mailman.conf
然后我们可以通过键入以下内容来启用它:
sudo a2enconf mailman
如果您计划创建托管 Ruby 文件的站点,则应该注释掉.rb
文件在mime.types
文件。 ISPConfig 将自行处理:
须藤纳米 /etc/mime.types
前>
应用程序/x-rss+xml rss
#application/x-ruby rb
应用程序/x-rx
前>
完成后保存并关闭文件。
现在,我们可以重新启动 Apache 来实施我们的更改:
sudo service apache2 restart
我们还需要编辑系统的更多部分。
由于 ISPConfig 通常用于细分服务器空间以进行转售,因此通常需要为客户端提供 FTP 访问权限。我们已经安装了必要的软件,但我们需要进行一些调整。
首先编辑 FTP 服务器的配置:
sudo nano /etc/default/pure-ftpd-common
我们需要确保 FTP 用户被限制在 chroot 环境中,这样他们就不会干扰系统的其余部分。我们可以通过改变VIRTUALCHROOT
设置为true
:
VIRTUALCHROOT=true
前>
由于 FTP 本质上是不安全的,我们至少应该使用 TLS 加密来保护它。我们可以通过创建一个仅包含以下内容的标志文件来进行设置1
特点:
sudo nano /etc/pure-ftpd/conf/TLS
1
现在,我们需要创建一个进程可以使用的自签名证书。我们可以通过调用以下方法来做到这一点:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
该证书的有效期为一年。您必须回答一些提示。用您的信息填写它们。这Common Name
也许是最重要的部分。
之后我们需要通过键入以下内容来锁定密钥文件:
sudo chmod 600 /etc/ssl/private/pure-ftpd.pem
当所有这些都完成后,我们可以重新启动服务:
sudo service pure-ftpd-mysql restart
这将允许我们的 FTP 守护进程使用加密。
我们在该系统上设置 FTP 的原因之一是因为我们安装了一个名为awstats
配置为期望此服务的存在。
ISPConfig 将调用awstats
如有必要,因此不需要依赖cron
通常用于轮询服务器的作业。我们可以通过输入以下内容来删除它:
sudo rm /etc/cron.d/awstats
我们终于准备好安装实际的 ISPConfig 软件了。
我们可以通过将最新的稳定版本下载到我们的服务器上来做到这一点。截至撰写本文时,具有可用直接链接的最新稳定版本是版本 3。安装完所有内容后,我们将更新安装。
现在,您应该更改到主目录并使用下载项目wget
:
cd ~
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
下载完成后,解压目录结构并进入install
提取的文件夹结构的子目录:
tar xzvf ISPConfig*
cd ispconfig3_install/install/
现在,我们准备安装该软件。通过键入以下内容来执行此操作:
sudo php -q install.php
您将经历一个非常漫长的安装过程。
幸运的是,唯一的细节是你actually需要输入的是你的MySQL root密码!对于其他每个条目,只需按“ENTER”即可使用默认值并向前跳。
完成安装后,请继续输入以下命令更新到最新版本:
sudo php -q update.php
再次,只需按“ENTER”即可使用每个命令的默认值。
完成后,您可以通过访问您的域名并随后访问您的 ISPConfig 服务:8080
在您的网络浏览器中:
https://server_domain_name:8080
前>
由于我们使用自签名证书,您将收到 SSL 警告:
单击“继续”或“继续”接受证书。
您将进入登录屏幕。
默认的用户名和密码都是admin
:
Username: admin
Password: admin
输入这些值,您将进入 ISPConfig3 界面:
一旦你到达这里,你应该改变admin
单击“系统”按钮,然后单击左侧导航菜单“用户管理”类别下的“CP 用户”链接,即可输入用户密码。
单击admin
主窗口中的用户帐户。您可以选择在此页面上更改管理员用户的密码。
您现在应该已经安装并配置了 ISPConfig 面板。您应该能够从此界面中管理域、邮件和帐户。
作者:Justin Ellingwood