想在服务器上同时使用Zend Optimizer与Xcache时遇到的问题
原因: Zend主动蔽屏其他一些插件,xcache偏在其内
解决方法:把xcache的配置写在zend配置的前面即可
想在服务器上同时使用Zend Optimizer与Xcache时遇到的问题
原因: Zend主动蔽屏其他一些插件,xcache偏在其内
解决方法:把xcache的配置写在zend配置的前面即可
今天给风云墙做了一个教育网的代理服务器来给教育网的用户加速。本来以为是一个很简单的问题,结果却大费周折。
第一打算是用squid来做,结果却由于原来的80端口被占用,暂时找不到一个圆满的解决方案,只好放弃。
80端口已经被apache占用了,也就只好用mod_proxy来做了。
在apache中加上这么一个vhost,理论上应该是可以了,但是,里面的链接还是指向原来的http://bbs.clwind.net,并不像反向代理所期待的http://edu.clwind.net.
开始一直以为是反向代理的问题(我对反向代理不太熟悉),查找了好久,也没发现问题所在(本来就不是他的问题,怎么可能发现得了)。最好做了一个最简单的网站来做源站,才发现原来是phpwind的head部分的问题。
在phpwind的header.html中,给页面加上了一个base标签
base标签的作用是给网页中的链接指定一个默认的URL前缀或者是指定一个target,比如:
而在phpwind中,$db_bbsurl这个变量是由PHP系统变量$_SERVER[HTTP_HOST]得来的。
但是这个变量在使用了反向代理之后,并不是我们访问的URL,这个时候介入了一个新的变量,只有在使用代理访问之后才会有的变量:$_SERVER[HTTP_X_FORWARDED_HOST]。这个变量才是我们访问的URL。
这样,为了反向代理能够正常使用,我们需要更改phpwind的代码。
打开global.php
解决base标签的问题
找到:
修改为:
解决前台发帖的非法操作问题
同样在global.php中:
找到:
修改为:
解决多重代理IP unknow问题
还是global.php
找到:
改为:
这样子做有一个BUG:如果访问者用内网代理,得到的IP将会是内网IP。我正在想办法解决。
最后,要做的就是解决后台操作非法的问题。由于有我前面说的那个BUG,我不建议修改这个,可以说明的就是修改的方法跟前台类似。
今天风云墙的管理给我报一个错误,说论坛上传的附件大小总是0K,也不报错
听到这个,我想到的第一件事就是,是不是附件文件夹被取消了写入的权限,但是,检查后发现写入权限是正确的。
然后以为是网站分区空间用完了,于是用df一看
网站分区的空间倒是没有用完
倒是系统分区的空间用完了,主要是被apache 的日志文件给塞满了
清理一下,然后再试
果然就可以了
难道PHPWIND上传文件要用到/tmp分区吗?很奇怪的一个事情,改天有时间验证一下
今天没有时间了
以前,一直搞不清楚这四个函数之间的区别,今天总算把他们弄明白了。这四个函数,可以说基本上是相同的,只是有一些很细微的差别。
首先,讲一下require()与include()之间区别。
require()与include()之间唯一的区别就是,当引用的文件不存在时,require()在给出错误信息后终止解析,而include()在给出错误信息后,继续后面的解析。换句话说,include()较require()而言,只是给了一个警告。所以,require()一般可以用来引用必需的文件,而include()一般可以用来引用非必需的文件。
而require_once(),include_once与require(),include()的区别只在于,once会检测文件是否加载,如果已经加载则不会重复加载,而没有once的,会直接加载。这样的话如果用没有once的,可能会出现重复加载同一个文件,而可能会导致重复定义函数,或者重复赋值等。
这个插件原来我是做过的,但是后来给其他的管理升级时给冲了
现在他们又想要这个功能只好重新再搞了。还好原来的东西还在,花了点时候马上就搞好了
还加了一个功能就是只能发悬赏帖。
呵呵
插件的东西功能就是;
增加了版主对悬赏帖的控制
增加了只能悬赏money的限制
某个区只能发悬赏帖
附件是改动的文件(将后缀改为.rar后解压即可,郁闷自己的blog都不让传这种文件,但好好检查一下设置了),请根据自己需要进行更改,请不要直接覆盖你的原文件
附件:
悬赏帖插件改进
昨天装上5.2.4的windows的zip包,却发现_SERVER["PHP_SELF"]等一系列的函数值返回不正确
具体表现在所有的返回值都重复了
不知道是php5.2.4的问题还是我的配置问题
如果是php5.2.4的问题,为什么网上都没有人说到这个问题
如果是我的配置问题,那到底应该要怎么样配置啊
用默认的配置没有用
试了下php4.4.7没有问题
想下截别的比较经典的版本测试下,
可惜网官方上似乎没有提供下载
继续努力中
接着写
应该是5.2.4的版本问题,
改装5.2.2,只改动了cgi.force_redirect的值,就OK了
然后,把5.2.4中的mysql模块复制到5.2.2的文件夹当中,
5.2.2的mysql就成了5.0.45了,本来好像是5.0.34。
呵呵
呵呵,向PHP反映一下吧
今天晚上很无聊,刚好昨天重装了系统,就想把IIS+PHP+MySQL的环境配好。
其实,这个题目取得太具体了,不过,应该是放置任意新版本都可以的。我这样写,只不过是想让一些新手朋友更容易找到而已,别怪。
PART A: IIS
IIS没有选择,有没有什么好说的,直接用系统的安装方法,如果你是在不知道,就google一把吧。我就不多说了。
当然了如果无法复制文件的问题,可以看下这篇文章IIS安装程序无法复制文件的问题。这是我很久以前转的一篇文章,很实用的。
PART B: Mysql
MySQL其实也没有什么好说的,我的重点也不在这里。对于Windows来说,MySQL的安装实在是太过于简单。建议你直接下载最新的exe文件,然后安装。这里没有任何特别的东西,像普通程序一样安装即可。
PART C: PHP
这个是很多朋友会出问题的地方,也是我的重点。大部分的问题多是这两个方面:1、IIS不能解析PHP,要么就是当文件下载,要么就是直接显示源代码;2、PHP不能连接MySQL数据库。而其中的90%(只是我估计的,不对别拍砖,呵呵),都是第一个原因。
Read More
今天,又将班级论坛转入到自己的workstation下
由于访问的人数非常少,所以,数据转移都不是问题,一会儿就搞定了
但是在转移数据库的时候,却出了一点点小麻烦
由于原空间商的问题,我的数据库没法由数据库的备份系统备份
我只好选择下下策,由PW来生成备份
还好我的数据库不大,才几个MB,要是像风云墙那种将近1G的数据,或者更大
天,那我的数据就别想要了
讲问题前,先汗一个,这种空间,以后千万不能买
好了,闲话少说。
数据备份好以后,又由于我的论坛自己开发了不少的插件
而这些插件都没有写install,所以,不想重装PW
便直接用MySQL的导入功能导入了数据,修改/data/sql_config.php文件
打开站点,却发现全部是乱码。
最开始怀疑是apache的编码,但apache2是可以自动选择的,应该不会出现这个问题。
但是,为了安全起见,我还是指定了GBK为默认编码,发现还是不对。
于是怀疑数据库的编码问题,
查看了数据库编码支持
里面明明有GB2312,是支持的
试着将默认语言改为GB2312,结果还是不行
于是,我开始怀疑是文件编码的问题,
很有可能是在windows下生成的sql文件中的中文字符,Linux系统不认识,
所以,当Linux向MySQL写入数据的时候,MySQL根本不知道Linux给他的时候是什么数据
结果,当然是MySQL不能正确的将其还原成中文字符
于是,我会试着让PW来做这个恢复工作
哈哈,结果果然成功
嘿嘿