ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## LNMP服务器管理 > 通过LNMP一键安装包部署的服务器,管理方式都是一样的,可以使用其自带的管理脚本非常方便管理服务器。 1. LNMP提供了一个非常好用的虚拟主机管理脚本。 ~~~ lnmp vhost add //添加虚拟主机 lnmp vhost list //查看虚拟主机 lnmp vhost del //删除虚拟主机 ~~~ 2. LNMP同时还提供了LNMP状态管理命令脚本 ~~~ lnmp {start|stop|reload|restart|kill|status} lnmp {nginx|mysql|php-fpm} {start|stop|reload|restart|kill|status} ~~~ ## 在使用Thinkphp5 这类框架时常见问题 #### Thinkphp5框架的特点 ### 1. 跨目录访问问题 PHP的一个安全隔离防跨站的功能 限定站点的可访问目录!有效来防止跨站攻击。 > 现像: 白屏、返回500错误、提示没有目录访问权限! > 解决办法: * 1. lnmp一键安装包1.4 修改配置文件fastcgi.conf 注释掉最后一行或者直接删除 这样虽然能解决问题,但是安全性降低了,存在跨站攻击的危险。 所以,这种方式一般要配合后面的方式共同使用。 $document_root是指站点根目录 ~~~ #fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"; ~~~ * 2. 修改站点配置文件 (/usr/local/nginx/conf/vhost/域名.conf) 注释掉include enable-php.conf 然后重写:然后再站点配置文件中,加入enable-php.conf的内容,需要做的调整就是要加上fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"; 其中需要把 $document_root换成 需要的绝对路径 **站点配置如下:** ~~~ #include enable-php.conf; location ~ [^/]\.php(/|$) { #try_files $uri =404; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; include fastcgi.conf; fastcgi_param PHP_ADMIN_VALUE "open_basedir=/wwwroot/test.com/:/tmp/:/proc/"; } ~~~ * 3. lnmp一键安装包,在使用其自身的站点管理功能添加站点时,会在根目录下,默认创建一个.user.ini的文件,这个文件其实就是定义跨目录访问权限的。 通过lnmp自动生的.user.ini 这个文件是无法删除的,并且也不能对其进行修改,如果要对这个文件进行修改,首先要设置一下该文件的特殊属性: ~~~ #查看文件属性 lsattr #去除只读属性 chattr -i ./.user.ini #添加只读属性 chattr +i ./.user.ini ~~~ 其文件内容格式如下: ~~~ open_basedir=/home/www/test.com:/tmp/:/proc/ ~~~ ![](https://box.kancloud.cn/0678ed9679f1ef763adbce0e85efeba0_713x129.png) * 4.在这里有一个非常方便 使用方法: ~~~ open-basedir=.:/tmp/:/proc/ ;其中第一个.表示充许访问当前目录 ~~~ > open_basedir 的优先级:fastcgi.conf>.user.ini>php.ini ### 2.pathinfo 问题 > 现像: 提示403错误或404错误 解决办法: 修改站点配置文件 ~~~ include enable-php.conf; #换成 include enable-php-pathinfo.conf; ~~~ ### 3. 大小写问题 > Linux系统对大小写非常敏感,如果您的项目没有做到类名等的大小写统计,部署到linux系统上后,会出现意想不到的问题。 ### 4.验证码不显示问题 验证码返回状态码200,但是验证码不显示,提示如下错误! 验证码显示如下错误: ![](https://box.kancloud.cn/a06f9e27c4a4099ec87aaab019e53234_373x86.png) 直接访问验证码地址,出现如下错误: ![](https://box.kancloud.cn/3190603b70526a33652f764f28224cd6_884x59.png) **解决办法** 1. 首先需要确认GD库是否正确安装和开启 出现这个问题一般是因为GD库的问题。 首先需要先确认一下GD库是否正确安装和开启,如果没有安装,请安装并开启;如果已安装并开启,请先卸载GD库然后重新安装。 在Centos上卸载安装的方式: ~~~ #卸载`GD`库 yum remove GD #安装`GD`库 yum install GD -y ~~~ 2. 如果GD库已正确安装,但是验证码仍不显示 这时,一般情况下是因为文件的编码格式问题,在TP5中要保证全局配置文件(应用目录下的,config.php,如果使用Thinkphp的扩展配置,那么扩展配置目录extra下的所有配置文件)和验证码对应控制器的编码格式是无BOM格式编码。 > 出现BOM格式编码,一般情况下是因为在windows下使用记事本等工具编辑UTF8编码文件时会产生一些不可见的字符和空白等。BOM(不可见的字符)对于一般的文件,并不会产生影响,但是PHP并不会忽略BOM,所以PHP中BOM会产生一些意想不到的问题。