赞片CMSNginx怎么配置
照着做完,你能让赞片CMS在Nginx服务器上正常打开首页、点得进内页,并且伪静态链接不再带 index.php?s= 那一串尾巴。
第一步:确认环境,拿到三个关键路径
这一步要拿到网站根目录、PHP版本、PHP-FPM套接字路径,后面写配置全靠它们。SSH登录服务器执行:
nginx -v # 例如 nginx/1.18.0 (Ubuntu)
php -v # 赞片CMS建议 PHP 7.4,8.x 部分版本会报错
ls /run/php/ # 看到 php7.4-fpm.sock 就对了
ls /www/wwwroot/zanpian # 能看见 index.php、application、uploads 等目录
如果用的是宝塔面板,PHP-FPM 套接字通常在 /www/server/php/74/var/run/www.sock,可以在「软件商店 → PHP 7.4 → 配置修改」里看到 listen 那一行。
注意:赞片CMS对 PHP 8 的兼容性不稳定,报「Deprecated」白屏时先降到 7.4 再排查。
第二步:写 server 块
这一步把域名、根目录、伪静态、PHP解析一次性配好。新建 /etc/nginx/conf.d/zanpian.conf,粘贴以下内容(宝塔用户直接进「网站 → 设置 → 配置文件」覆盖):
server {
listen 80;
server_name www.example.com;
root /www/wwwroot/zanpian;
index index.php index.html;
access_log /var/log/nginx/zanpian.access.log;
error_log /var/log/nginx/zanpian.error.log;
# 伪静态:文件不存在就交给 index.php
location / {
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?s=/$1 last;
}
}
# PHP 解析
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 静态资源缓存
location ~* \.(js|css|png|jpg|jpeg|gif|ico|webp|woff2)$ {
expires 7d;
access_log off;
}
# 禁止访问敏感目录
location ~* ^/(config|runtime|data|cache)/ { deny all; }
location ~* ^/uploads/.*\.(php|php5|phtml)$ { deny all; }
}
root 末尾不要加斜杠;fastcgi_pass 必须和第一步 ls 出来的文件名完全一致。
注意:如果漏掉
fastcgi_param SCRIPT_FILENAME,打开页面会报「File not found」,这是最常见的坑。
第三步:后台把 URL 模式切到伪静态
光配 Nginx 还不够,赞片CMS自己也得开伪静态。浏览器访问 http://你的域名/admin.php 进后台,路径是「系统 → 系统设置 → URL设置(伪静态设置)」,把 URL 模式选成「伪静态 / Rewrite」,保存后清一次缓存。
这个页面里通常还会列出官方给的 Nginx 规则,以它为准:不同版本的 rewrite 写法会有差异,如果第二步的通用规则点了内页 404,就把后台给的规则整段替换掉 location / 里的内容,再重载一次。
第四步:给目录写权限
这一步决定后台能不能正常装、上传的封面能不能显示。赞片CMS需要写入的是这几个目录:
chown -R www:www /www/wwwroot/zanpian
chmod -R 755 /www/wwwroot/zanpian
chmod -R 775 /www/wwwroot/zanpian/runtime
chmod -R 775 /www/wwwroot/zanpian/uploads
chmod -R 775 /www/wwwroot/zanpian/data
CentOS 下 Nginx 用户是 nginx,把 www:www 换成 nginx:nginx。
注意:直接
chmod -R 777是最省事也最危险的做法,影视站被挂马大多从这种权限开始。
第五步:测试并生效
先验证语法再重载,避免整个 Nginx 挂掉:
nginx -t
systemctl reload nginx
然后依次访问首页、一个分类页、一个详情页。详情页地址应该类似 /vod/1234.html,而不是 /index.php?s=/vod/1234.html。如果有 404,看 /var/log/nginx/zanpian.error.log 里的具体请求路径。
小结
- 关键是三样东西:网站根目录、PHP-FPM 套接字路径、伪静态规则,缺一样都是 500 或 404。
location /里的 rewrite 负责「文件不存在就转给 index.php」,location ~ \.php$负责交给 PHP-FPM 执行。- 后台 URL 模式必须切到伪静态,否则 Nginx 配了也白配。
- 伪静态规则优先用后台自带的,版本差异比想象中大。
- 改完永远先
nginx -t,再systemctl reload nginx。
原文链接:https://www.gj0.com/thread-522.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。