赞片CMSApache怎么配置
照这篇做完,你能让赞片CMS 在 Apache 环境下正常安装、内页不 404、后台能登录。
赞片CMS 是基于 ThinkPHP 的 PHP 程序,入口文件 index.php 就在程序根目录,所以 Apache 这边要处理的主要是三件事:让伪静态生效、把站点指向正确的目录、给 PHP 放开必要的上传和超时限制。下面按顺序来。
第一步:确认环境版本和 rewrite 模块
这一步要弄清楚你的 Apache、PHP 版本够不够,以及伪静态模块开没开。
赞片CMS 建议跑在 PHP 7.0~7.4(7.2 或 7.4 最稳),MySQL 5.6/5.7,Apache 2.4。PHP 8 上部分老版本会报错,别硬上。
检查 rewrite 模块有没有加载:
apache2ctl -M | grep rewrite # Debian/Ubuntu
httpd -M | grep rewrite # CentOS/AlmaLinux
没输出就手动开:
- Ubuntu/Debian:
sudo a2enmod rewrite - CentOS:编辑
/etc/httpd/conf/httpd.conf,把#LoadModule rewrite_module modules/mod_rewrite.so前面的#删掉
改完重启:sudo systemctl restart apache2 或 sudo systemctl restart httpd。
第二步:让 .htaccess 生效
这一步决定你写在 .htaccess 里的伪静态规则会不会被 Apache 读取。
打开主配置文件或虚拟主机配置文件,找到网站目录对应的 <Directory> 段:
<Directory /www/wwwroot/zanpian>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
AllowOverride 必须是 All(或至少包含 FileInfo)。
注意:
AllowOverride None是最常见的坑。它的表现是首页正常打开,但所有栏目页、详情页、后台二级页面全部 404。遇到这个现象先回来查这一行。
第三步:配置虚拟主机,指向程序根目录
这一步把域名和赞片CMS 的实际目录绑起来。解压后,index.php、application、public、runtime 这些应该在同一个目录里,DocumentRoot 指向这一层,不要指向它的上一级,也不要想当然指向 public(赞片CMS 的入口不在 public 下)。
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /www/wwwroot/zanpian
<Directory /www/wwwroot/zanpian>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/apache2/zanpian_error.log
CustomLog /var/log/apache2/zanpian_access.log combined
</VirtualHost>
注意:如果
DocumentRoot指到了/www/wwwroot这种上层目录,别人可以直接浏览你的其他站点文件甚至下载数据库配置,务必指到程序本身。
第四步:写伪静态规则
这一步的目的是让 /vod/123.html 这种地址能被正确解析,而不是 404。
先看后台:赞片CMS 后台一般有「系统 → 伪静态设置」或类似入口,里面直接给出 Apache 规则,复制粘贴到网站根目录的 .htaccess 文件即可,这是最稳妥的做法,不同版本规则不一样,以后台给出的为准。
如果后台没找到,可以用 ThinkPHP 通用规则:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
注意:如果站点挂在二级目录(比如
example.com/zp/),RewriteBase要改成/zp/,否则规则会指向错误路径。
第五步:调 PHP 配置
这一步解决后台传图失败、采集超时、安装卡住的问题。
编辑 php.ini,把这几项调大:
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
memory_limit = 256M
max_input_vars = 5000
改完重启 Apache(如果用 PHP-FPM 还要重启 php-fpm)。
注意:别随手禁用
scandir、exec、file_get_contents这类函数,赞片CMS 的模板和采集模块会用到,禁了容易出现莫名其妙的空白页。
第六步:目录权限和安装
这一步让程序能写缓存、能生成静态页。
chown -R www-data:www-data /www/wwwroot/zanpian # CentOS 换成 apache:apache
find /www/wwwroot/zanpian -type d -exec chmod 755 {} \;
find /www/wwwroot/zanpian -type f -exec chmod 644 {} \;
chmod -R 777 /www/wwwroot/zanpian/runtime
chmod -R 777 /www/wwwroot/zanpian/data
chmod -R 777 /www/wwwroot/zanpian/uploads
然后浏览器访问 http://你的域名/install/index.php(有些版本直接访问域名会自动跳安装页),按提示填数据库信息、管理员账号即可。安装完记得删掉 install 目录。
第七步:验证
依次打开首页、随便点进一个栏目页、再点进一个详情页、最后登录后台 http://你的域名/admin.php。四个都能正常打开,说明伪静态和权限都对了。
如果内页报 No input file specified,是 index.php/$1 这种写法在你的 PHP 模式(PHP-FPM)下不兼容,把规则换成:
RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
小结
- PHP 用 7.2/7.4,别用 8;rewrite 模块要确认已加载。
AllowOverride All不设,内页必 404。DocumentRoot指向index.php所在目录,不要指上层,也不要指public。- 伪静态规则优先用后台自带的,没有再用 ThinkPHP 通用规则,二级目录记得改
RewriteBase。 runtime、data、uploads三个目录必须可写。- 内页
No input file specified就换成index.php?s=$1的写法。
原文链接:https://www.gj0.com/thread-197.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。