Froxlor是知名的主机控制面板。它完全开源,因此所有人都可以免费使用。同时,它拥有不弱于cPanel, DirectAdmin等收费面板的功能、安全性和实用性(包括子账户、邮箱、FTP、分销、工单系统等功能),以及美观大气的使用界面。其唯一缺点,在我看来是安装过程繁琐冗长。本次我将详细介绍Debian 8操作系统下安装Froxlor和配置的方法。本文作者为香菇肥牛https://qing.su 未经允许,不得转载。
值得一提的是,国内不少知名博主(比如赵容、老左等)均写过Froxlor的安装过程,然而如果大家按照那上面的步骤去操作,则安装好的Froxlor完全无法使用(表现为Cron Job List一直堆积, FTP无法连接等),其根本原因是他们根本就没有自己操作和使用过这个面板,因此都没有提及安装完成后的配置步骤(而那才是主要部分)。本次我给出的这个Froxlor安装和配置过程非常详细。希望对大家有所帮助。
安装的基本条件: 1, 新装的Debian 8 (32/64 bit) VPS一台; 2, SSH root账户; 3, 较为熟练的vi操作; 4, 请将你的域名example.com A记录解析到你的VPS的IP, *.example.com A记录解析到你的VPS的IP; 5, 确保VPS的主机名是example.com (请用hostname命令查看)。
下面,我们就开始安装Froxlor. 安装Froxlor之前,我们要安装好必要的软件。下面以LAMP为例搭建Froxlor基础环境,若你倾向于用EngineX, 则后续的配置部分请自行更改。如果你的包管理器中默认将MySQL替换成了MariaDB, 这没有关系,后续部分无需任何更改。
LAMP环境的搭建
首先,我们更新源。执行:
1 2 | apt-get update apt-get upgrade |
接下来,依次安装Apache, MySQL与PHP. 执行:
1 2 3 4 5 | apt-get install apache2 apt-get install mysql-server mysql_install_db mysql_secure_installation apt-get install php5 php5-mysql libapache2-mod-php5 php5-mcrypt |
然后我们需要配置一下Apache. Apache从版本2.4开始,在配置文件中多了几条语句,如果不对其进行更改,则访问所有新建的虚拟主机网站时都会遇到403错误。因此,这个更改非常关键。编辑/etc/apache2/apache2.conf 找到下面这行:
1 | Require all denied |
将其改成
1 | Require all granted |
这样,我们完成了LAMP的搭建。此处我们虽然更改了Apache配置文件,但无需reload, 因为接下来安装好Froxlor之后还需要更改。
Froxlor的安装
在Debian系统中我们可以通过包管理器安装Froxlor. 依次执行:
1 2 3 4 5 | touch /etc/apt/sources.list.d/froxlor.list echo 'deb http://debian.froxlor.org jessie main' > /etc/apt/sources.list.d/froxlor.list apt-key adv --keyserver pool.sks-keyservers.net --recv-key FD88018B6F2D5390D051343FF6B4A8704F9E9BBC apt-get update && apt-get upgrade apt-get install froxlor |
安装过程中会出现两个选项框,第一次是配置Courier, 我们选择YES. 第二次是配置ProFTPD, 这里我们需要选择Standalone.
如果没有报错,那么Froxlor文件夹已经安装到主机上了,其位置是/var/www/froxlor 然而这个地址是不能直接通过浏览器访问的(这很奇怪,Froxlor经过这么多的版本了难道连apache的默认网页文件夹都不知道在哪儿吗…),我们需要将其复制到可以访问的目录下:
1 | mv /var/www/froxlor /var/www/html/froxlor |
然后我们在浏览器中打开http://your_IP/froxlor则可以看到froxlor安装界面,点击下一步会出现froxlor需要的组件清单,如果有哪一项缺失,请自行安装。比如如果缺少php-curl组件,则在SSH中执行apt-get install php5-curl安装该组件。(安装完毕后需重启Apache)
将缺少的包全部补充完毕后,点击continue, 会出现连接数据库的界面。这里,我们需要新建一个数据库用来存放Froxlor数据。回到SSH, 执行:
1 | mysql -u root -p |
输入你的MySQL root账户密码后,进入MySQL命令界面。我们新建数据库:
1 2 3 | CREATE DATABASE froxlor; GRANT ALL ON froxlor.* TO 'froxlor' IDENTIFIED BY 'MYSQL_PASSWORD'; quit; |
然后我们将froxlor用户和密码以及root账户和密码填进froxlor安装界面的表单中,填好FQDN, IP等信息,设定管理员用户名和密码,最后点击continue。这样,Froxlor成功地安装在了主机上。
Froxlor的配置
按上述步骤安装好Froxlor后并不能马上使用。如果此时你在后台新建账户、发送邮件、管理FTP等操作时虽然会提示成功,但实际上没有发生任何变化。我们需要配置系统环境使其能够配合Froxlor. 考虑到国内大多数朋友不会用到邮件服务器,因此我们在这里只介绍HTTP, FTP和Cron这三个必须的配置。如果您需要用Froxlor管理您的邮件服务器,请后台登录后在左侧仪表盘中找到Configuration, 选择对应的邮件服务器,按提示进行配置。
首先,配置HTTP服务器。打开SSH, 依次执行:
1 2 3 4 5 6 7 8 9 10 11 12 | mkdir -p /etc/apache2/sites-enabled/ chown root:0 /etc/apache2/sites-enabled/ chmod 0600 /etc/apache2/sites-enabled/ mkdir -p /etc/apache2/sites-enabled/ chown root:0 /etc/apache2/sites-enabled/ chmod 0600 /etc/apache2/sites-enabled/ mkdir -p /var/customers/webs/ mkdir -p /var/customers/logs/ mkdir -p /var/customers/tmp chmod 1777 /var/customers/tmp a2dismod userdir /etc/init.d/apache2 restart |
接着我们配置FTP服务器。执行:
1 | apt-get install proftpd-basic proftpd-mod-mysql |
编辑文件/etc/proftpd/proftpd.conf, 将其内容替换为下面的内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | Include /etc/proftpd/modules.conf UseIPv6 off IdentLookups off ServerName "FTP Server" ServerType standalone DeferWelcome off MultilineRFC2228 on DefaultServer on ShowSymlinks on TimeoutNoTransfer 600 TimeoutStalled 600 TimeoutIdle 1200 DisplayLogin welcome.msg DisplayChdir .message true ListOptions "-l" DenyFilter \*.*/ Port 21 MaxInstances 30 User proftpd Group nogroup Umask 022 022 AllowOverwrite on TransferLog /var/log/proftpd/xferlog SystemLog /var/log/proftpd/proftpd.log QuotaEngine on Ratios off DelayEngine on ControlsEngine off ControlsMaxClients 2 ControlsLog /var/log/proftpd/controls.log ControlsInterval 5 ControlsSocket /var/run/proftpd/proftpd.sock AdminControlsEngine off Include /etc/proftpd/sql.conf Include /etc/proftpd/conf.d/ |
执行:
1 2 | chmod 0600 "/etc/proftpd/proftpd.conf" chown root:0 "/etc/proftpd/proftpd.conf" |
编辑文件:/etc/proftpd/modules.conf, 将其内容替换为以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | ModulePath /usr/lib/proftpd ModuleControlsACLs insmod,rmmod allow user root ModuleControlsACLs lsmod allow user * LoadModule mod_ctrls_admin.c LoadModule mod_tls.c LoadModule mod_sql.c LoadModule mod_sql_mysql.c LoadModule mod_radius.c LoadModule mod_quotatab.c LoadModule mod_quotatab_file.c LoadModule mod_quotatab_sql.c LoadModule mod_quotatab_radius.c LoadModule mod_wrap.c LoadModule mod_rewrite.c LoadModule mod_load.c LoadModule mod_ban.c LoadModule mod_wrap2.c LoadModule mod_wrap2_file.c LoadModule mod_dynmasq.c LoadModule mod_exec.c LoadModule mod_shaper.c LoadModule mod_ratio.c LoadModule mod_site_misc.c LoadModule mod_sftp.c LoadModule mod_sftp_pam.c LoadModule mod_facl.c LoadModule mod_unique_id.c LoadModule mod_copy.c LoadModule mod_deflate.c LoadModule mod_ifversion.c LoadModule mod_tls_memcache.c LoadModule mod_ifsession.c |
执行:
1 2 | chmod 0644 "/etc/proftpd/modules.conf" chown root:0 "/etc/proftpd/modules.conf" |
编辑文件:/etc/proftpd/sql.conf, 将内容替换为下面的内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | DefaultRoot ~ RequireValidShell off AuthOrder mod_sql.c SQLBackend mysql SQLEngine on SQLAuthenticate on SQLAuthTypes Crypt SQLAuthenticate users* groups* SQLConnectInfo froxlor@127.0.0.1 froxlor MYSQL_PASSWORD SQLUserInfo ftp_users username password uid gid homedir shell SQLGroupInfo ftp_groups groupname gid members SQLUserWhereClause "login_enabled = 'y'" SQLLog PASS login SQLNamedQuery login UPDATE "last_login=now(), login_count=login_count+1 WHERE username='%u'" ftp_users SQLLog RETR download SQLNamedQuery download UPDATE "down_count=down_count+1, down_bytes=down_bytes+%b WHERE username='%u'" ftp_users SQLLog STOR upload SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users QuotaEngine on QuotaShowQuotas on QuotaDisplayUnits Mb QuotaLock /var/lock/ftpd.quotatab.lock QuotaLimitTable sql:/get-quota-limit QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally SQLNamedQuery get-quota-limit SELECT "ftp_users.username AS name, ftp_quotalimits.quota_type, ftp_quotalimits.per_session, ftp_quotalimits.limit_type, panel_customers.diskspace*1024 AS bytes_in_avail, ftp_quotalimits.bytes_out_avail, ftp_quotalimits.bytes_xfer_avail, ftp_quotalimits.files_in_avail, ftp_quotalimits.files_out_avail, ftp_quotalimits.files_xfer_avail FROM ftp_users, ftp_quotalimits, panel_customers WHERE ftp_users.username = '%{0}' AND panel_customers.loginname = SUBSTRING_INDEX('%{0}', 'ftp', 1) AND quota_type ='%{1}'" SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used,bytes_out_used, bytes_xfer_used, files_in_used, files_out_used,files_xfer_used FROM ftp_quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'" SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used= files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name= '%{6}' AND quota_type = '%{7}'" ftp_quotatallies SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4},%{5}, %{6}, %{7}" ftp_quotatallies |
注意:请将该文件中的MYSQL_PASSWORD替换为你的Froxlor数据库密码。
执行:
1 2 3 | chmod 0600 "/etc/proftpd/sql.conf" chown root:0 "/etc/proftpd/sql.conf" /etc/init.d/proftpd restart |
这样,我们完成了FTP的配置。
最后,我们配置Cron Job. 编辑文件:/etc/cron.d/froxlor, 内容替换为:
1 2 | PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin */5 * * * * root /usr/bin/nice -n 5 /usr/bin/php5 -q /var/www/html/froxlor/scripts/froxlor_master_cronjob.php |
执行:
1 2 3 | chmod 0640 "/etc/cron.d/froxlor" chown root:0 "/etc/cron.d/froxlor" /etc/init.d/cron reload |
至此,Froxlor配置完毕,可以实现新建账户、分配空间、设置分销等功能了。
需要注意的是,Froxlor的某些操作通过Cron Job实现,因此会有稍许延迟,比如我们新建一个虚拟主机账户,则新建的主机网站需要几分钟后才能访问。
如果大家有什么问题或者在安装过程中报错,欢迎留言一起探讨。
本文为香菇肥牛(https://qing.su)原创,未经本人允许,禁止转载,谢谢。
我现在用的VPS都是32M 64M 128M 256M的,用不上面板
小机子折腾起来才有意思,哈哈
年前再来转转!
收藏备用。