推荐信息技术

在服务器上部署discuz 3.3遇到css不加载的问题

本文阅读 5 分钟
首页 信息技术 正文

在网络世界中,discuz 论坛可以说是广为人知,它是用 php 语言编写的一款功能强大的论坛程序。在搭建我的网站时,情况有些复杂,我的网站采用了 nginx 代理 iis 的架构。对于 discuz 论坛呢,我原本打算使用 nginx 的 80 端口来代理 iis 的 php(非 80 端口),但我并不确定这样做会不会产生问题。于是,我尝试了一种方法,就是直接使用 nginx 的 80 端口去访问 php 安装目录下的 php - cgi。
下面我来详细说说 nginx 的配置(conf)情况。在 nginx 的配置文件中,有这样一个 server 模块:
server {
首先,设置监听端口为 80,指定服务器名称为bbs.11105.com。
listen 80;
server_name bbs.11105.com;
对于 location / 这个部分,它指定了根目录为 D:/Code/web/Discuz_X3.3_SC_UTF8/upload/,并且设置了默认的索引文件顺序为 index.php、index.html 和 index.htm。
location / {
root D:/Code/web/Discuz_X3.3_SC_UTF8/upload/;
index index.php index.html index.htm ;
}
而对于 location ~ .php$ 这部分,同样指定了根目录为 D:/Code/web/Discuz_X3.3_SC_UTF8/upload,设置了 fastcgi_pass 为 127.0.0.1:9000,fastcgi_index 为 index.php,还对 fastcgi_param 中的 SCRIPT_FILENAME 进行了设置,并且包含了 fastcgi_params。
location ~ .php$ {
root D:/Code/web/Discuz_X3.3_SC_UTF8/upload;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME fastcgi_script_name;
include fastcgi_params;
}
}
然而,在安装 discuz 论坛的过程中,问题不断出现。我已经安装了好几次,每次都遇到了 css 无法显示的问题。我去 data\cache 目录查看,发现没有相应的文件。我开始怀疑是不是请求走了 php 通道导致的,于是我尝试去掉 location / 这一段,然后把 location ~ .php$ 改为 /,这样的话所有文件都走 php 通道了,可结果还是不行,问题依旧存在。
后来,我想到去后台重新生成了 css 缓存,这次发现缓存文件好像有了,但是新的问题又冒了出来,有一部分文件返回的是 txt/html 类型,这依然会导致样式无法正常显示。没办法,我又把配置文件改回原来的样子,这次好了一些,样式可以显示了,但是新的麻烦又来了,我发现管理员登录后竟然无法发帖,而且后台首页显示有个表不存在。
这可真是让人头疼啊!没办法,我只好再次重装。在安装过程中,又出现了新的状况,安装过程中报 sql 错误。我把报错的那段 sql 语句复制出来,仔细检查和分析。经过一番排查,我慢慢发现原来是 “admin” 这个字段名在 mysql8.0 中似乎是关键字。这可真是个隐藏得很深的问题啊!找到问题就有了解决办法,我去 install\data\install.sql 文件中将 admin 字段改为 admin,同时,在 uc_server\install\uc.sql 文件中的 admin 字段也做了同样的修改。再次进行安装,这次终于没有报错了,而且还会自动生成 data\cache 里的样式文件了,php7.0 + mysql8 的环境下 discuz 论坛安装完成,初步测试没有发现问题。
本以为问题就此解决了,没想到今天又有新的情况。我尝试了使用 IIS 的 fastcgi 的 php 搭建,然后再用 nginx 代理。结果发现大多数时候都报 403 错误,偶尔有那么一两次又可以访问,但是 css 文件还是加载不了。我尝试了好久,经过各种排查,最后发现可能是 IIS 的 ip 限制问题。因为我之前在设置中加入了 0.0.0.0 禁止访问,我把这个限制去掉后,果然可以正常访问了。这让我不禁思考,难道这个 ip 限制还是偶尔会不起作用吗?这可真是个奇怪的现象。
还有一个问题,在浏览器中输入discuz.11105.com,页面总是会跳转到hk.11105.com:8008。我先是清理了本地的 DNS 缓存,但是没有效果。后来我干脆把 360 极速浏览器的相关缓存等都清理掉了,这次终于恢复正常了。这一系列的问题真的是让我在搭建这个论坛的过程中吃尽了苦头啊!森尧记部署discuz

本文来自投稿,不代表本站立场,如若转载,请注明出处:
Hexo博客搭建详细教程-免云服务器版本
« 上一篇 11-06
记关于javascript深入理解 CommonJS 模块化规范
下一篇 » 11-07