lnmp下使用bpcs_uploader备份网站数据到百度云盘的注意事项

使用bpcs_uploader将云主机上的网站备份后上传到百度云盘很便捷,蜗牛在《lnmp1.2下服务器设置的几个注意事项》谈到了使用bpcs_uploader时的问题:

设置./bpcs_uploader.php quickinti 时显示不正常。解决方法:运行 vim /usr/local/php/etc/php.ini文件中,找到 disable_functions,将后面的 “popen”的函数删掉,重启lnmp。

在运用过程中遇到过将php升级到7.0.x后,运行出现如下错误:

-bash: ./bpcs_uploader.php: /usr/bin/php: bad interpreter: No such file or directory

解决方法:在运行bpcs_uploader.php前,加入

php -d disable_functions -d safe_mode=Off -f

如何遇到类似错误,都可以尝试使用这种方法。为了实现自动备份,在编辑.sh自动运行脚本时,也需要在运行bpcs_uploader.php前加上以上代码。

 

升级openssl和nginx实现同IP主机上给多个网站开启ssl证书

Linux升级openssl到最新版就是为了弥补漏洞,杜绝安全风险。蜗牛在配置lnmp时系统默认openssl是1.0.1g版,前段时间也爆出漏洞。在《centos下如何升级openssl的版本》中具体介绍了升级方法。

蜗牛在云主机上配置https网站时,重启nginx出现如下提示:

nginx: [warn] nginx was built with OpenSSL that lacks ALPN and NPN support, HTTP/2 is not enabled for 0.0.0.0:443 in /usr/local/nginx/conf

google后提示是openssl的版本过低,不支持ALPN NPN 和http2。解决问题的方法就是把openssl升级到1.0.2g以上版本即可。过如果希望https下开启http2,系统的nginx版本至少为1.9.5版。

在实际运用中,蜗牛在同一台云主机上搭建的多个网站需要开通ssl证书加密,实现https访问,但是在为同一个IP下的2个网站域名添加不同的ssl证书后,出现其中一个网站可以使用https,另一个网站不行,浏览器中提示ssl证书错误。问题出在Nginx没有开启TLS SNI支持:nginx不开启TLS SNI的支持,同一个IP下只能为一个域名配置ssl证书;如果需要为同一台主机同一个IP下的多个域名配置ssl证书,就需要开启nginx 的TLS SNI支持。查看当前nginx是否开启TLS SNI,使用如下命令:

#nginx -V  //字母V为大写

提示:TLS SNI support disable 就是没有开启,TLS SNI support enable 就是已经开启了。如果没有开启,先升级openssl,后重新编译nginx就可以了:

./configure –user=www –group=www –prefix=/usr/local/nginx \
–with-http_stub_status_module \
–with-http_ssl_module \
–with-http_gzip_static_module \
–with-ipv6 \
–with-openssl=../openssl-1.0.2g/
make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
cp objs/nginx /usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -t
make upgrade

centos下如何升级openssl的版本

在使用lnmp配置ssl证书时出现一些问题,需要升级openssl的版本。蜗牛使用的是Centos6,分别在32位和64位系统下成功升级openssl。由于运营环境不同,以下过程仅供参考。
openssl属于系统应用,被较多应用依赖,由于环境不同等因素,请先在测试环境进行充分测试。

#openssl version //查看当前系统openssl版本,蜗牛的是1.0.1g版
#wget https://www.openssl.org/source/openssl-1.0.2g.tar.gz //下载openssl 1.0.2g版
#tar -zxvf openssl-1.0.2g.tar.gz //解压下载的openssl压缩包
#cd openssl-1.0.2g //进入解压后的openssl文件夹

然后,执行文件夹中的config文件,这里openssl的安装目录默认是/usr/local/ssl(由于系统环境差异路径可能不一致,下同),注意添加zlib-dynamic参数,使其编译成动态库,操作如下:

#./config shared zlib-dynamic //config完成后执行 make 命令
#make //make 命令执行完后再执行 make install 命令,安装openssl
#make install //重命名原来的openssl命令
#mv /usr/bin/openssl /usr/bin/openssl.old //重命名原来的openssl目录
#mv /usr/include/openssl /usr/include/openssl.old //将安装好的openssl 的openssl命令软连到/usr/bin/openssl
#ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl //将安装好的openssl 的openssl目录软连到/usr/include/openssl
#ln -s /usr/local/ssl/include/openssl /usr/include/openssl //修改系统自带的openssl库文件,如/usr/local/lib64/libssl.so(根据机器环境而定) 软链到升级后的libssl.so
#ln -s /usr/local/ssl/lib/libssl.so /usr/local/lib64/libssl.so //执行命令查看openssl依赖库版本是否为1.0.1g:
#strings /usr/local/lib64/libssl.so |grep OpenSSL //在/etc/ld.so.conf文件中写入openssl库文件的搜索路径
#echo “/usr/local/ssl/lib” >> /etc/ld.so.conf //使修改后的/etc/ld.so.conf生效
#ldconfig -v //查看现在openssl的版本是否是升级后的版本
#openssl version //再次查看openssl版本,是否升级成功。

 

如果是Cenots 32位系统升级openssl,只需要将上面的lib64后面的64去掉后再运行即可。蜗牛按上边步骤成功升级openssl。