今年试着切回Apache2,原因是Nginx没有提供一些比较详细的实时信息统计功能,从日志分析比较滞后,而且消耗资源。而Apache2通过第三方的一些小东西可以实现,之前也发过图。

但是很奇怪的是,那个统计似乎有问题,而且不同的mpm似乎效果并不同,把我也给搞晕了……

于是想起以前见过OpenLiteSpeed有这个,前些天就试了一下,但因为不熟悉,当时把我彻底搞晕了,多SSL站点死活干不起来,原因未知,日志里面提供的信息都是不相关的,于是丢下了。

这两天有时间,就又试了一下,居然成功了,特意在另一个机器上也做了一遍一样是成功的,而且做法和之前完全一样,晕,搞的我也迷茫了……

 

 

我这用的是Debian系统,需要注意的是必须用稳定版,具体版本是9还是10无所谓,但testing是一定不行的。

安装很简单,命令:

wget -O - http://rpms.litespeedtech.com/debian/enable_lst_debian_repo.sh | bash
apt-get install -y openlitespeed lsphp74 lsphp74-apcu lsphp74-curl lsphp74-memcached lsphp74-mysql lsphp74-opcache lsphp74-pear lsphp74-redis lsphp74-sqlite3 lsphp74-sybase

 

然后需要设置web管理员密码:

/usr/local/lsws/admin/misc/admpass.sh

 

然后就可以通过https://ip:7080访问了,用刚才设置的管理员密码登入。

这个软件的界面操作起来感觉很繁琐,大致列一下https站点的创建步骤:

 

1,监听器设置

添加两个监听器,80和443,其中443要选中加密,然后在ssl的证书路径里面填写

私钥:/var/www/ca/tingtao.org/privkey.pem

证书:/var/www/ca/tingtao.org/fullchain.pem

我这个是Let's encrypt的,其他证书填写对应路径。协议全选,其他的不设置。这个监听器的证书其实随便一个都可以,因为具体的虚拟主机是通过SNI来识别的,这里的证书只是为了让443端口启动起来,因为不填写就起不来。

 

2,虚拟主机设置

依次添加需要的虚拟主机,例如我这里要添加tingtao.org

下面依次抓图说明需要设置/填写的内容:

虚拟主机名,随便起个名,尽量别带特殊字符

虚拟主机根目录,就是网站文件的位置

配置文件,就是这个虚拟主机的配置文件放哪里,这个看个人喜好的。

suExec的两个,这个很重要,整个虚拟主机里面有两个地方需要指明身份,这样可以避免一个站点出问题而殃及其他站点甚至整个服务器。需要用系统中已经存在的账号和组,同时要确保设置的这个身份可以正常访问站点文件,最好是属主。对应的命令会在后面附上。

 

 

文档根这个是用变量调用的前面虚拟主机根目录,想再填写一次物理路径也可以,一样的。

域名和别名,都懂的,就是主机名。

这个页面还有一个php.ini需要设置:

默认参数不太行,需要覆盖的设置可以填在这里,我这里完整的内容:

php_admin_value open_basedir  /tmp:/var/www/www.tingtao.org
php_admin_value upload_max_filesize  50M
php_admin_value max_execution_time  300
php_admin_value max_input_time  60
php_admin_value memory_limit  256M
php_admin_value output_buffering  4096
php_admin_value disable_functions  system,exec,shell_exec,passthru,error_log,dl,sys_getloadavg,pfsockopen,openlog,syslog,readlink,symlink,link,leak,popen,escapeshellcmd,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,escapeshellarg,pcntl_exec,show_source,highlight_file,ini_restore,apache_child_terminate,apache_get_modules,apache_get_version,apache_getenv,apache_note,apache_setenv,virtual,mb_send_mail,set_time_limit,max_execution_time,php_uname,disk_free_space,diskfreespace,stream_copy_to_stream
php_admin_flag allow_url_fopen on
php_admin_flag expose_php  Off
php_admin_flag display_errors  Off

 

添加一个外部程序,名称随意,这个名称是虚拟主机级别的,所以可以重复。

地址看个人喜好。

下面3个参数跟性能有关,自己慢慢摸索。

 

响应缓冲和自动启动,看个人喜好去选择。

命令地址是固定的,就是php的执行文件位置 $SERVER_ROOT/lsphp74/bin/lsphp

下面两个是第二个suExec设置,这个设置的是用什么身份去执行php文件,和前面一样设置。

 

然后添加一个脚本处理器,后缀填写php,下面两个选中刚才添加的lsapi和php74

 

重写这里是为了虚拟静态,兼容apache的.htaccess文件,所以这样选择一下就最省事了。

 

ssl的设置和前面监听器一样,填写站点对应的证书文件就行了。

 

还有日志什么的,可有可无的,根据需要自行选择。

 

 

3,映射虚拟主机和监听器

 

然后把虚拟主机映射到监听器,在80和443里面分别添加映射。

虚拟主机选择刚才建立的tingtao,域名要填写虚拟主机的域名+别名,中间用半角逗号分隔: tingtao.org, www.tingtao.org

 

到此就配置完成了。

 

4,重启OpenLiteSpeed

界面上点一下平滑重启就行了,

 

最后附上我这里建站的命令,用于添加站点账号、同名的组,以及把该账号添加到proftpd的组里。

useradd www.tingtao.org -s /sbin/nologin
echo www.tingtao.org:ftp密码|chpasswd
groupadd -f www.tingtao.org
usermod -G www.tingtao.org -a www-data
usermod -G www.tingtao.org -a proftpd
mkdir /var/www/www.tingtao.org
usermod -d /var/www/www.tingtao.org www.tingtao.org
chown -R www.tingtao.org:www.tingtao.org /var/www/www.tingtao.org
chmod -R 755 /var/www/www.tingtao.org

其中第四行是为了兼容Apache2和Nginx的,如果确定不用那两个,则可以删掉。

该账号不可以登录ssh。

第二行是设置密码。

这些命令在Debian/Ubuntu中确定没问题,Centos什么的不清楚,印象中也行,基础命令都是一样的。

 

如果有多个站点的话,按照添加虚拟主机的步骤,从第二步开始去做就可以。监听器的创建是一次性的。

 

作者 听涛

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注