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!保存退出,/查找