tp5项目在本地测试通过,但是上传到linux服务器上面的时候出现各种问题,折腾了两天终于解决,做个记录。
环境:乌班图 / nginx / php7.0 / thinkphp5.1
nginx安装方式未知(别人的服务器),安装后配置信息在/etc/nginx/sites-enable/default文件中,当然这个配置文件有很多种情况,有的是vhost,也有的是直接在nginx.conf(因机而已吧)。
下面是配置文件主要信息;
root 地址指向项目目录/public,看到有些网友说尽量不要指向public文件夹,但是也没说明具体原因,当然这也是我的知识盲区(毕竟nginx新手)。
下面是我的配置信息,仅仅做个参考吧。
注意:1.需要在php.ini中开启fix_pathinfo=1;去掉前面的分号注释。
2.debug方式:查看nginx日志(error.log),虽然有些问题提示依旧找不到原因,但至少提供一个方向。
注释比较少,后面补充解释各个语句
root /var/www/html/**/public; // ** 项目目录名称
location / {
try_files $uri $uri/ /index.php?$query_string;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last; // 定义重写规则,参考tp5完全开发手册
break;
}
}
location ~ \.php(.*)$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PHP_ADMIN_VALUE "open_basedir=/var/www/html/**/:/tmp/:/proc/"; //**指项目目录,注意替换
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
附赠:用到的linux命令有
find / -name *** :查找/目录下的***文件
mv *** *** 移动文件/重命名
/usr/sbin/nginx -s reload 或者service nginx restart 重启nginx
php -m 查看PHP安装的拓展项目
vim中,i进入insert编辑模式,:wq编辑并保存,:q!保存退出,/查找