一、项目上线后出现500的错误
项目环境:Ubuntu + Nginx + MySQL + PHP
- 将项目文件的所有权限都打开
- 进入 /usr/local/nginx/conf/vhost 目录,编辑文件,在 server 下加入一下代码:
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
- 重启 Nginx (nginx -s reload)
- 访问域名,看网站是否能够正常访问
如果网站仍不能访问
- 将以下代码加入入口文件的最上边
- 域名访问查看报错信息,报错信息如下:
- 分析原因可知,是php open_basedir 配置的问题,php不能引入其授权目录上级及其以上的文件
- 找到目录 /usr/local/nginx/conf 下的 fastcgi.conf 文件进行编辑
- 找到
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
将其替换为
fastcgi_param PHP_ADMIN_VALUE "open_basedir=/home/wwwroot/:/tmp/:/proc/";
$document_root为网站所在目录
8. 访问域名,看网站是否能够正常访问
二、解决 Navicat 无法连接远程服务器上数据库的问题
在远程服务器的数据库命令行中输入以下命令:
grant all on *.* to 'root'@'IP' identified by 'password';
其中,IP 为本地IP,password为访问的远程数据库的密码
三、TP项目,首页可以访问,访问其他页面则出现“No input file specified”的提示
原因在于使用的PHP是fast_cgi模式,某些情况下,不能正确识别path_info所造成的错误
1、找到/public目录下的.htaccess
2、第七行,默认如下:
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
3、修改为:
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]