今年试着切回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什么的不清楚,印象中也行,基础命令都是一样的。
如果有多个站点的话,按照添加虚拟主机的步骤,从第二步开始去做就可以。监听器的创建是一次性的。