建站程序

DirectAdmin安装多个PHP版本,配置Nginx和brotli压缩以及备份至FTP

用过了DirectAdmin空间后,发现DirectAdmin面板还是非常强大的,网站管理、域名绑定、SSL证书申请与管理、邮局以及数据库等功能做得不错,配备DirectAdmin中文,新手用户在使用DirectAdmin空间上搭建网站没有太大的困难。

有同学在挖站否美国1GB免费PHP空间问到能否加上多个PHP版本可供选择,因为现在部分网站程序可能还需要PHP 5.6的支持。这篇文章就来分享一下DirectAdmin面板安装多个PHP版本的过程,同时分享DirectAdmin配置Nginx和自动备份至FTP的方法。

DirectAdmin默认的是Apache,主要是因为Apache对于网站程序的兼容性要好不少,特别适合虚拟主机用户。因为如果用Nginx的话,还要涉及到用户自已写重写规则,比较麻烦。而Apache直接编辑.htaccess文件就可以自定各种功能,用起来会更方便些。

更多的关于网站建设的经验文章,请参考:

  1. 博客主要应用技术及支持特性-挖站否网站与服务器优化方法总结
  2. idc.wiki 微基主机VPS主机性能与速度测评-日本香港及美国波特兰KVM
  3. cPanel和DirectAdmin面板备份和恢复方法-cPanel和DirectAdmin搬家

PS:2019年8月19日更新,DirectAdmin安装缓存以及整合WHMCS的方法参考:

DirectAdmin空间启用OpCache和redis缓存加速-WP启用redis缓存

WHMCS和DirectAdmin面板整合方法-DirectAdmin面板安装使用教程

一、DirectAdmin安装多个PHP

DirectAdmin目前支持最多4版本的PHP同时安装及使用,安装命令如下:

#directadmin安装多个版本PHP
cd /usr/local/directadmin/custombuild
./build update
#执行命令
./build set php1_release=7.2
./build set php1_mode=php-fpm
./build set php2_release=5.6
./build set php2_mode=php-fpm
./build set php3_release=7.0
./build set php3_mode=php-fpm
./build set php4_release=7.1
./build set php4_mode=php-fpm
#或者直接编辑
vi options.conf

php1_release=7.2
php1_mode=php-fpm
php2_release=5.6
php2_mode=php-fpm
php3_release=7.0
php3_mode=php-fpm
php4_release=7.1
php4_mode=php-fpm

#重新编译PHP
./build php n
./build rewrite_confs

安装完成后,进入到DirectAdmin,在“网站管理”那里就可以给自己的网站选择PHP版本了。

同样,想要添加PHP 7.3等其它的版本,命令差不多,如下:

#php 7.3
cd /usr/local/directadmin/custombuild
./build update
./build set php1_release 7.1
./build set php2_release 5.6
./build set php3_release 7.0
./build set php4_release 7.3
./build set php1_mode php-fpm
./build set php2_mode php-fpm
./build set php3_mode php-fpm
./build set php4_mode php-fpm
./build php n
./build rewrite_confs

二、DirectAdmin改用Nginx

DirectAdmin弃用Apache,改用Nginx非常地简单,记得把所有的PHP模式改成:php-fpm。命令如下:

#安装Nginx
cd /usr/local/directadmin/custombuild
./build set webserver nginx
./build set php1_mode php-fpm #版本多的话直接手动修改
./build update
./build all d
./build rewrite_confs

三、DirectAdmin Nginx+Apache

为了保证DirectAdmin建站的兼容性,我们可以保留Apache,同时在前端使用Nginx,这样用户不需要改重写规则又可能享受到nginx带来的性能提升。同样也要求所有的PHP模式为:php-fpm。命令如下:

#安装nginx+Apache
cd /usr/local/directadmin/custombuild
./build set webserver nginx_apache
./build set php1_mode php-fpm #版本多的话直接手动修改
./build update
./build nginx_apache
./build rewrite_confs

这样网页会显示服务器为nginx,实际上是后端采用Apache。

四、DirectAdmin配置TLSv1.3

Apache启用TLSv1.3需要Apache 2.4.37版本以上,OpenSSL 1.1.1版本以上。你可以通过命令httpd -V和openssl version来查看自己的版本是否符合要求。这里给出CentOS 6.10 升级OpenSSL_1_1_1b的方法,命令如下:

#CentOS 6.10 升级OpenSSL

sudo yum install libtool perl-core zlib-devel -y
curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1c.tar.gz
tar -zxvf OpenSSL_1_1_1c.tar.gz
cd openssl-OpenSSL_1_1_1c
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
make
make test
sudo make install

#Add new version to PATH
sudo vi /etc/profile.d/openssl.sh
#粘贴以下内容
pathmunge /usr/local/openssl/bin

#Link libraries
sudo vi /etc/ld.so.conf.d/openssl-1.1.1b.conf
#粘贴以下内容
/usr/local/openssl/lib

#reload linker 
sudo ldconfig -v

安装的过程中可能会遇到  Non-zero exit status: 255的错误,如下:

#遇到错误
../test/recipes/01-test_sanity.t (Wstat: 65280 Tests: 0 Failed: 0)
  Non-zero exit status: 255
  Parse errors: No plan found in TAP output
Files=1, Tests=0,  0 wallclock secs ( 0.01 usr +  0.00 sys =  0.01 CPU)
Result: FAIL
make[1]: *** [_tests] Error 1
make[1]: Leaving directory `/root/openssl-OpenSSL_1_1_1b'
make: *** [tests] Error 2

解决的办法是升级Perl ,命令如下:

#解决办法是升级Perl 
wget http://www.cpan.org/src/5.0/perl-5.20.2.tar.gz
tar -xzf perl-5.20.2.tar.gz
cd perl-5.20.2
./Configure -des -Dprefix=$HOME/localperl
make
make test
make install
export PATH=$HOME/localperl/bin:$PATH

用命令:perl -v来查看版本升级成功。

最后就是重新安装升级directadmin。

#升级directadmin
cd /usr/local/directadmin/custombuild
./build update
./build all d
./build rewrite_confs

配置SSL。推荐网站:https://ssl-config.mozilla.org,打开你的Apache配置文件,将TLSv1.3加入到Apache中,演示如下:

// 仅启用安全的TLS 1.3和TLS 1.2协议。
SSLProtocol -All +TLSv1.3 +TLSv1.2
// TLS 1.3加密套件
SSLCipherSuite TLSv1.3 TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
// SSLv3 ~ TLS 1.2加密套件
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384
// 椭圆曲线(Named curve)和DH生成元(Diffie-Hellman Parameter)
SSLOpenSSLConfCmd Curves X25519:P-256:P-384
SSLOpenSSLConfCmd DHParameters /etc/ssl/private/dhparam_4096.pem
// 在不支持AES-NI的设备上优先使用CHACHA20-POLY1305
SSLOpenSSLConfCmd Options "+PrioritizeChaCha"

你可以自己根据Web环境来配置,最后重启Apache生效。

DirectAdmin也提供了自定义SSL配置的选项,你不需要去寻找Apache的配置文件,使用以下命令可以修改所有的SSL配置。

#自定义SSL
cd /usr/local/directadmin/custombuild
mkdir -p custom/ap2/conf/extra
cp configure/ap2/conf/extra/httpd-ssl.conf custom/ap2/conf/extra/httpd-ssl.conf
#编辑
/usr/local/directadmin/custombuild/custom/ap2/conf/extra/httpd-ssl.conf
#加入自定义配置
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK

SSLHonorCipherOrder On
SSLCompression off

#重新配置
cd /usr/local/directadmin/custombuild
./build rewrite_confs

五、DirectAdmin启用brotli

DirectAdmin启用brotli 不是很复杂,如果你的系统是CentOS的话,可以参考以下命令先安装好brotli 。

#自定义apache配置
cd /usr/local/directadmin/custombuild
mkdir -p custom/ap2
cp configure/ap2/configure.apache custom/ap2/configure.apache
vi custom/ap2/configure.apache
#加入以下扩展
--enable-brotli 
--with-brotli=/usr

#继续安装编译
./build clean
./build update
./build nginx_apache
#或者./build apache
./build rewrite_confs
#重启完成 
/sbin/service httpd restart

注意添加Apache扩展时记得结尾有一个“\”号。

打开浏览器可以看到brotli 压缩启用成功了。

六、DirectAdmin自动备份至FTP

DirectAdmin自带了系统自动备份功能,你可以通过管理工具来启用。

选择DirectAdmin的备份内容。

然后给DirectAdmin添加定时任务。

最后我们就可以在FTP服务器里看到备份过来的文件了。PS:2019年8月22日更新,如果不想自建FTP服务器,可以采用第三方的FTP存储服务:巧用又拍云FTP和坚果云WebDAV

七、总结

DirectAdmin面板功能强大,支持多个PHP版本,同时也可以自己安装各种PHP扩展,如果自己对安全要求高的话,也可以自定义SSL配置,比如说禁用tls 1.0等不安全的协议。

在编译DirectAdmin扩展时记得要保证Apache、Nginx以及MysqL、PHP等的兼容性,添加完了扩展后要记得重新安装一遍PHP或者DirectAdmin,最后重写配置文件。

文章出自:挖站否 https://wzfou.com/directadmin-php/,版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。部分内容参考vultrdirectadminesecuredatablacksaildivision

文章更新于: %s = human-readable time difference 下午8:47

Qi

关于站长(Qi),2008年开始混迹于免费资源圈中,有幸结识了不少的草根站长。之后自己摸爬滚打潜心学习Web服务器、VPS、域名等,兴趣广泛,杂而不精,但愿将自己经验与心得分享出来与大家共勉。

查看评论