1. 前言

飞思卡尔车队有一台服务器一直闲置, 开学没那么多事就帮忙给服务器添加一些功能, 这个过程中有些以前在自己电脑上没有的问题都冒出来了、

2. Apache

2.1 缺少msvcr110.dll

首先是httpd -k install时直接提示缺少msvcr110.dll, 安装了vcredist_x64.exe还是不行, 想着直接装.net库, 然而并不可以。最后想起来当时下的apache是32位的, 安装了vcredist_x86.exe之后apache安装成功。

2.2 Servername错误

之后出现了ServerName错误,直接将#ServerName: localhost:80注释去了,改为自己需要的。

3. Discuz

3.1 无法连接数据库

安装discuz时,显示无法连接数据库,不支持mysqli_connect,建议advice_mysqli_connect,但是php的配置文件里绝对是修改过的,搜了搜发现是extension_dir使用相对路径有时会出错,改为绝对路径后成功

3.2 网站间隔性无法访问

安装之后即可查看了,但是网站会经常无法访问一段时间,查看日志错误信息为: AH00341 指定的网络名不再可用,找到的解决方法有:

  1. 在httpd.conf里添加:
    ThreadsPerChild 1000
    MaxRequestsPerChild 10000
    Win32DisableAcceptEx
  2. 在httpd.conf里添加:
    AcceptFilter http none
    AcceptFilter https none
    EnableSendfile Off 
    EnableMMAP off

使用第二种方法解决问题,但是只添加了前两句即可。

3.3 Child: Starting 64 worker threads

errors.log里还有AH00354: Child: Starting 64 worker threads的提醒,这个应该是和分配给Apache的线程数有关,倒是可以用上述方法解决:
在httpd.conf找到:

<IfModule mpm_winnt.c>
  ThreadsPerChild 64
  MaxRequestsPerChild 1000
  Win32DisableAcceptEx
</IfModule>

将ThreadsPerChild的数目改大点,当然这和硬件关联很大。

3.4 无法上传附件

discuz的头像和附件都无法上传,开始以为只是头像无法上传,提示错误是cannot write data/tmp,感觉是权限问题,就把整个目录权限提升了一番,但是还是不行,最后将#upload_tmp_dir =注释去了,加入discuz的ucenter_server/data/tmp目录,解决问题。

4. Filezilla

还用filezilla搭了个ftp服务器,配置好后无法通过其他地址访问,查阅资料将filezilla添加到防火墙允许通过