博文

目前显示的是标签为“PHP”的博文

在CentOS 7上用Apache+PHP建立虚拟主机

默认的CentOS就自带了Apache,本篇主要是用系统自带的Apache来完成的 首先先新建一个配置文件 vim /etc/httpd/conf.d/site.conf 内容如下: <VirtualHost *:80> DocumentRoot /home/www ServerName siglud.com.cn     <Directory />         Require all granted         AllowOverride All         DirectoryIndex index.php index.htm     </Directory> </VirtualHost> 然后systemctl restart httpd 打开iptables的端口 iptables -I INPUT -p tcp --dport 80 -j ACCEPT /usr/libexec/iptables/iptables.init save 这个时候去访问大部分都会收到403了,原因在于selinux chcon -Rv --type=httpd_sys_content_t /home/www 如果这个时候报错 那么执行 chcon -R -h system_u:object_r:usr_t /home/www/ 之后再执行它就可以了

在Windows上配置PHPStorm调试

图片
最近打算改造一下Share站,所以还是打算把PHP捡起来写一写.. 所以打算重建一下本地的PHP环境了... IDE还是使用PHPStorm了,首先去官网下载PHP 最新的版本是5.4 于是下载了5.4的VC9的None-ThreadSafe版,因为我打算用Nginx的FastCGI模式,所以就不用在意线程安全了,本身我也装了VC2008,用VC9就足够了,反正5.4版也只提供了VC9的编译版本. Nginx直接下载最新版,修改一下conf/nginx.conf 里面直接就有注释过了的语句,把它打开就可以了:         location ~ \.php$ {             #root           html;             fastcgi_pass   127.0.0.1:9000;             fastcgi_index  index.php;             fastcgi_param  SCRIPT_FILENAME  E:/WorkSpace/PHPWork/share/$fastcgi_script_name;#前面写PHP文件的目录             include        fastcgi_params;         } 然后去下载Xdebug的PHP版本,扔到PHP的ext目录下,Xdebug的版本也很多,不过选择就简单了,首先我用的是NS版,所以不需要TS版的Xdebug,然后因为用的是X86,所以我选择了32位版.. 把它扔到ext目录之后,开始修改php.ini 原本的php目录下是没有php.ini的,于是图方便,直接把php...

利用客户端缓存优化服务器带宽

最近看了《构建高性能WEB站点》,非常有启发。于是立即着手开始改进Share站。 当然了,里面对现在的我来说最实用的的就是如何让动态脚本利用客户端缓冲的部分了(原书第6章内容),现在主要的改进方案也是依据与此章的内容。 首先先说下Share.popgo.org 站现在的缓冲策略: Share站主要采用的是XML+XSLT缓冲,其中XSLT为静态文件,由Nginx服务器端设置了Cache-Control:Max-age缓冲,缓冲时间为284400秒,相当长的时间了。 然后XML文件是服务器端通过静态文件缓冲,然后由PHP程序调用生成的,其缓冲策略为: 如果有客户提交新的种子或者编辑现有的种子,那么立即刷新缓冲; 如果在设定的时间段内没有刷新过缓冲,那么强制刷新,刷新的时间可以在后台指定。 刷新的时间判断由PHP来读取文件的最后修改时间来实现。 虽然XML是静态文件在服务器上,但是每次调用的是PHP,Nginx服务器把它认为是动态脚本,是不允许客户端进行缓冲的。现在我需要调整的就是让客户端也可以动态的缓冲这个XML文件,不用我每次都去读取和判断这个XML文件。最好是能够在我加载处理缓冲这几个类文件之前就做这个操作,也节约很多PHP程序处理的时间。 改起来就相当的简单了,首先先在所有的输出的地方加上: header("Last-Modified: ".gmdate ("D, d M Y H:i:s", time())." GMT"); 然后在开头的地方加上 $modified_time = $_SERVER['HTTP_IF_MODIFIED_SINCE']; if(strtotime($modified_time) && strtotime($modified_time) > time() - $getnewindex )//如果没有过期 { header("HTTP/1.1 304 Not Modified"); exit; } 就应该可以了……然后我满怀希望的打开FF+Firebug。结果发现在网络窗口中,依然每次返回的都是200而不是预想中的304…… 到底出了什么问题? ...

动向:忙&热

最近也就是完成了投票站往赌博站的一个改变. 其实这个改变本身就预定在计划内.程序上,数据库上都预留了接口,当时放弃这个想法的最大原因是如果把最萌作为一个赌局来运行的话判定胜负具有了太大的主观性,而且赌博缺乏赔率毕竟是不怎么好玩的事情,而在赔率的计算方面存在问题. 因此这个接口一直预留着但是没有实现. 但是情况伴随着世界杯的开始出现了改变..无疑的,世界杯是最适合赌博的一个赛事了.关注的人员众多,热情高,作为余兴节目赌博(在不赌现实货币的前提下)不失为一个好的玩法. 于是投票站改赌场改造计划正式列入议程...这次的主要目的其实还是改善以前那难看的页面同时修改JS,改为以JQuery为核心. 于是花在JS程序上的时间明显的超过了PHP本身.(因为大多数PHP的底层程序都是写好了的,只是表层没有或者隐藏了赌博的输入框而已),问题...似乎也没有遇到大的问题.心得大都是体现在了布局上面.比如不到万不得已不要指定宽度而尽量的用Maring和Padding等值来制造宽度效果等等. 然后剩下的基本上就是听取意见做一些人性化方面的修改,字句的改动,界面的微调等等了. 不过最近听闻PHP 6快要出炉了,看来又是需要新一轮洗脑的时候了... 也大概是最近因为业余时间都在忙这个的缘故工作方面更加显得忙得一塌糊涂,因为面临第三方测试和验收工作,而又需要申请服务号码,又需要申请服务器,沟通协调方面的工作一大堆,而且手头上还一直杂事不断,最近机关内部房间变动人员调整带来的PC机,网线,外设的调整也带来了额外的工作量简直让人目不暇接,而眼看着又到了月末了,又是报表的收割时间了....看来不把工作辞掉家里蹲简直是不大可能的了... 天气逐渐的热起来了..看来之前的凉爽也只是暂时的假象而已,真面目永远都是一样的狰狞

用PHP处理EXCEL的利器:PHPExcel

这几天在帮单位里开发一个小程序. 既然是为单位开发的,那么一定会涉及到报表... 毕竟,公文流转类的程序其实在现实中一直缺乏意义,作为领导而言,他们永远更加信任纸质文件而并非是看得见摸不着的电子档. 所以,这次的任务主要是开发一个业务的数据管理系统.涉及到Excel文件的处理基本上成为了必然.于是上网查找,很多人说自己写函数,因为Excel2007采用的开源的文件格式,而且现在已经成为了ISO,但是单位里更多需要处理的是EXCEL2003,同时,自己编写类无疑太麻烦了.于是锁定了现有的一个强大的PHP类:PHPExcel. 这里 是它的官方地址,我看到最新的版本是1.72,虽然它的名字依然叫做PHPExcel,但是它的处理文档的能力是显然超过了Excel文件的,这个版本可以读取和生成.XLS,XLSX,PDF,CSV等...官方也提供了详细的文本和说明.我列举一下普通需要使用到的就好了. <?php include  "PHPExcel.php" ; include  "PHPExcel/Writer/Excel5.php" ;  //如果需要处理XLSX文件,那么 include "PHPExcel/Writer/Excel2007.php"; //创建excel $objPHPExcel  = new  PHPExcel (); //如果你需要直接写入硬盘,那么使用以下方法: //$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); //$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);//for XLSX //EXCEL文件属性 //创建人 $objPHPExcel -> getProperties ()-> setCreator ( "创建人" ); //最后修改人 $objPHPExcel -> getProperties ()-> setLastModifiedBy ( "最后修改人" ); // 标题 $objPHPExc...

VBB 2.x中的Search工作模式探索

最近在论坛的数据库中发现了几个很大的表:一个Word,一个searchindex. 之前一直搞不懂它俩存在的意义,今天我翻查了一下Search的代码,终于了解它俩的意思了 Word用来存放所有的单一关键字,它的作用是把关键字以ID的方式存放起来 然后Searchindex用来把对应的关键字和帖子的ID对应起来 这样在检索的时候就只需要先检索是否已经有人搜索过对应的关键字,然后提取出之前的结果,就可以快速的得到答案了. 这也就是论坛为什么在第一次检索的时候可能会很慢,但是在第二次再点击的时候速度就变得极其快速的原因了.因为结果被缓存了.而这就是VBB的缓冲方式. 当然,最新版本的直接就用了MySQL的全文检索了,这些,也变得不再是必要的了.

流水账

最近不知道是中了邪还是怎么着.忙的我吐血,一天到晚只有最后下班了之后我才能坐在我自己的位置上休息下.连中午都连着没有休息.昨天晚上还当好人当到9点多. 不过虽然辛苦,但是还是一直在打起精神做,也发现了自己一直以来的问题,就是累了之后做事就心不在焉了,而且越累越心不在焉,结果质量不堪入目,做事了回头就忘,完全没往心里去...orz 所以最近虽然累,但是一直打起精神做事,毕竟并不是每时每刻都能够由着自己的. 最近的进度竟然又转移到BT上来了,昨天hiei找我谈了关于BT站迁移数据的问题,他甚至已经忘了我已经把后台对应新的BT底层的接口早就改造完毕了. 但是其实我的工作还是没有做完,主要有以下几个方面没有做完: 还无法编辑用户和种子,这俩页面一直想做,一直在懒. BT页低级管理员的管理页面还没有做完,这些管理员应该有隐藏种子和禁止一般用户的权限 搜索结果的缓冲系统还没有做完. 针对其他浏览器的扩展兼容还没有做完,也就是在不能够兼容XML+XSLT的浏览器上我将会用PHP来解析XML然后把它和XSLT混合起来输出到客户端,这个主要是针对搜索引擎和极少数的低版本浏览器(高版本的浏览器早就支持了) 考虑页面静态化的问题,不过这个可以后期再制作 考虑和老的BT站的平滑过渡问题,对于之前已经被检索到的页面是否进行跳转转换,或者还是直接把页面静态化转向我新的链接. 总之,莫名其妙的,又开始忙BT站了,不过hiei也一再重申"不要急",虽然我也一直让他拿个时间表出来,但是他也拿不出来,甚至连什么时候完成也说不出来了,估计是本身时间不多吧,大家毕竟都有自己的事情了. 再就是论坛这边的问题,还是停留在修改界面的问题上,最近因为忙乱的厉害,连修改的问题都搁置了,不过估计还是要修改一点图让整个页面变的更加好看,至于老的界面,我还是先把Kohaku的绿色做出来吧,再完成黑色...其他两个颜色我再看啥时候有空再做.或者干脆挂个官方网站上做得好的皮肤好了. 再说点其他好了...最近继续在下LOST,但是完全没有时间看,才看完了第二季的第一集,还是周一看完的,然后一直就没有时间再动过它.最近也算是麻烦不断就是了. 漫画方面终于补完了渡濑悠宇的幻梦游戏了.说起来这本还是我最早看完的少女漫画呢,嗯,当初借隔壁的大姐姐的看完的.一直觉得非常不错,除了BASARA,这在当年可以算是让我...

做完了工作马上记下是一种美德~

嗯,今天的主要工作是做了一点尝试 在Win2003环境下使用IIS+FastCGI+PHP 使用了MS自己开发的FastCGI模块 安装的过程其实很简单: 1.下载安装FastCGI 点击进入下载页 2.下载安装PHP,我选择的是直接下载安装文件,安装的时候选择IIS With FastCGI,然后编辑一下php.ini以便符合自己的要求,这点和ISAPI模式的安装没区别. 3.编辑C:\WINDOWS\system32\inetsrv下的fcgiext.ini加入以下几行 [Types] php=php [php] ExePath=youpath\php-cgi.exe InstanceMaxRequests=10000 EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000 然后重启IIS服务器即可. 值得注意的是,在FastCGI模式下,PHP运行于IIS_WPG用户而不再是IIS的匿名用户了,设置文件可编辑权限的时候,要把写权限给它才可以.今天就是因为它的缘故一直安装不上PHPCMS,也不报错,郁闷了一下午.

继续学习充电

图片
这次是关于Tab标准化布局的心得...之前发现怎么样也无法吧表格之间的间隙去掉,无论怎么样做出来的都是双线的表格,后来发现原来是要这样解决: tab的属性: border-collapse:collapse; border-color:#999999; 内部表格的属性: border: 1px solid #999999; 这样就OK了,还害得我捣鼓半天.. 还有就是关于PHP直接echo出XML文件的问题,现开始直接echo怎么都无法输出XML文档,输出格式都是正确的,但是浏览器并不识别为XML,后来终于发现...原来是Header的原因.只要在PHP的输入头文件修改Header就好了,语句是: header('Content-Type: text/xml'); 这样就不需要PHP 4.x的版本打开一些特殊的XML类来生成类了,直接echo就好了,但是解析还是存在问题就是了...不过解析也可以用正则来完成的...具体可以查看IBM站的这帖,写的很基础 http://www.ibm.com/developerworks/cn/opensource/os-xmldomphp/ 现在所需要做的就是实现鼠标移动到对应表格之后的浮动效果了... 结果找到这么一个站: http://www.dyn-web.com/ 实在是太强大了...orz JS原来还可以实现这么多功能...我算是开了眼界了...以后看来需要恶补一下JS的编写了..orz 不过美中不足的是,有加密....不允许使用在非Localhost的站点上..不过JS最多也就是一个16进制的加密而已,随便就搞定了,上网,找了一个JS的16进制转换器,OK了~ 这个是存档,下载这张图片然后把扩展名改为RAR即可解压.. 另外就是在XSL中加载JS文件和直接写入JS的问题.. 加载要使用: <script src="'"></script> 而直接写入JS需要: <script langauge="'"> <![CDATA[ ..................... ]]> </script> 有些地方会画蛇添足的给中间再加上XSL的注释,但是这样的话FF反到不能识别了(FF是矫枉过正..内...