Zend PHP Server is out

事情总是很凑巧,这两天我在找 PHP Application Server,没找到理想的—— Phplens 虽然有我想要的功能,但做得太粗糙,而且不免费(免费的只支持30条记录,毫无用处)。 Zend Platform 高不可攀。 Phpappl 虽然免费,好多年前停止更新,不敢用。 今天 Zend 告诉我说,PHP Server 发布了(虽然还是测试版)。看来同我一样有这种需求的用户不少,被 Zend 盯上了。但各人对 application server 理解略有不同,不晓得 Zend PHP Server 是不是就是我想要的 PHP Application Server,得抽空试用一下。

Published
Categorized as 小小草 Tagged

Controversial safe_mode

safe_mode 恐怕是 php 里最有争议的环境参数了。要我说,这个参数名取得就不好,争议就难免了。safe_mode 可以设为 on / off,但并不是说 safe_mode = off 就不安全了。很多 ISP 的 shared hosting 环境下 safe_mode 也是 off 的,godaddy deluxe hosting 就是一例。 光靠 safe_mode = on 是把不住安全关的,反而会限制某些程序的正常运行,比较麻烦。尽管麻烦,尽管我不是 share hosting,但我还是喜欢最大范围内设置 safe_mode = on。 但是由于我习惯性使用 mod_php,最近才意识到 mod_php with safe_mode = on 在 php upload 时无法解决 “先有蛋或是先有鸡” 的问题,因为 apache 试图操作 user1 的目录。为了允许 apache 操作 user1 的目录,必须在… Continue reading Controversial safe_mode

Magento speed optimisation

诚然,我接触Magento时间不短了,但直到最近才开始研究Magento的速度,因为我的一个Magento项目已经上马了。 通常Magento要比Zencart, osCommerce, VirtueMart for Joomla跑得慢,但这个没有吓退我。我坚信Magento是我的方向,是因为Magento的ecommerce功能是其它软件望尘莫及的,况且我拥有让Magento加速的硬件资源。(这世界上没有什么是最好的,适合自己的就是最好的)。 我认为选择Magento,首先得有一台独立服务器。虽然我曾成功地在shared hosting环境里运行了Magento,但一个没有速度优化潜力的Magento,就算能跑,又有什么用?Magento内置了很多SEO特性,但如果页面loading time过长,Google也不会喜欢。VPS理论上也能为Magento做速度优化,但一台入门级的独立服务器与一台高性能的VPS价格相当,我会选择前者,以确保所有的优化可能。 其次得有1G以上内存,CPU差一点没关系,因为Magento的速度瓶颈在硬盘,优化手法中很多就用内存代替硬盘。 有了以上两个硬件资源,剩下的就是进行一些软件环境设置。 首先,得是Linux环境。我不是说Magento在Windows下跑不起来,我是说网上大部分建议都是针对Linux提的,除非你有一个Microsoft专家在你旁边,每当你给他一个Linux配置文件,他能为你写一个Windows下的对应文件。 其次,给MySQL Server分配更多的内存。 再次,启用Cache。Cache分三种,一是Magento data cache,Magento系统菜单的Cache Management指的就是这个,默认已经启用。据我观察,data cache单独使用时,对速度提升没多大帮助。二是Linux in-memory file cache,把magento/var/cache指到或软连接到tmpfs。三是php byte cache,开源世界里主要有三种选择,php APC, eAccelerator, xCache。孰优孰劣尚无定论,我看了一些测试结果,我的结论是:小访问量时选php APC,访问量达到负载容量50%以上的选xCache,Magento的开发小组说eAccelerator在处理magento异常时会出错,我就把它剔除了。 如果以上优化都做过了,速度应该很理想了。经济条件许可的话,买多点内存,搞个SCSI, RAID硬盘,换个四核CPU,我就不信Magento会比谁慢。

W3C markup validator soap interface may be outdated

我想在一个网站上添加W3C markup xhtml 自动验证功能:如果一个网页通过 xhtml 验证,就会在页脚出现 W3C 设计的一个”valid” Icon;如网页未通过验证则不会出现该标志。 W3C markup validator 能以 soap 1.2 方式输出验证结果,但无论我在 php SoapClient 里怎么设置传递参数,它总拿不到 validator soap response。W3C 对此 soap interface 也没提供足够的说明文档,我仅知道它不支持 wsdl,我猜想 soap method 应该是 validate 或 check,但猜想归猜想,实际上没有一个能返回我想要结果。 我想这跟 W3C 声称 soap output 只是个实验型产品有关,soap 以外还有其他方式的 output,难道多年来 soap 受到的关注较少?如果硬要以 soap 方式 得到 validator 的结果,我只能用 PEAR Service W3C HTMLValidator package,但看到这个 package 多年来一直没有更新,它所依赖的… Continue reading W3C markup validator soap interface may be outdated

I’m leaving Aptana

今天因为要处理一个 wsdl 文件,发现 Aptana 根本不支持。当然我可以下载 WTP plugin for eclipse 来让 Aptana 支持 wsdl,但 plugin for eclipse 的功能能算到 Aptana 头上吗?因为这件事让我重新审视了 Aptana,发现 Aptana 主要卖点是 Jaxer as Ajax server 和 Cloud。我只是想要一个php IDE,这两卖点对我关系都不大。即使日后需要 Ajax server,我想 Jaxer 之外应该会有更好的 alternative。云服务应该是 Aptana 的生财之道,对 Aptana 公司来说,卖服务当然要比卖产品更好,但对用户来说,还是离能避免的交年费、月费服务越远越好。 Aptana php IDE 应该是 PDT 的改头换面,那么何不回到原装的 PDT?PDT 还是 eclipse 亲出,又有 php 业界老大 Zend 支持,跟着 Zend 走,应该是不会错的。PDT 最近出了… Continue reading I’m leaving Aptana

Published
Categorized as 小小草 Tagged

Magento 1.2.0.1 is out

今天很欣喜地发现Magento 1.2.0出来了,赶紧用magento connect upgrade了一下,结果升级失败,前台出不来,后台也进不去。 我只好手动安装了一下,原先php环境设置前台safe_mode on,只对后台safe_mode off,安装了magento 1.2.0以后,前台出现了错误提示 Warning: set_time_limit() [function.set-time-limit]: Cannot set time limit in safe mode。magento对php环境要求越来越高了,我只好把safe_mode 前台、后台统统off。这下就没问题了。 在我成功把magento 1.2.0运行起来后,发现1.2.0.1发布了,才几个小时啊,magento更新真够快了。我猜想1.2.0.1是针对safe_mode苛刻要求发布的小补丁,因为我又把magento 1.2.0更新成1.2.0.1,试着把php safe_mode恢复原先的设置,一切正常!

PhpList Can Work With SSL POP

想要phpList process bounce messages,邮箱却只支持SSL POP (port 995, 如gmail)?没问题。 config.php 作以下设置: $bounce_protocol = ‘pop’; $message_envelope = ‘username@gmail.com’; $bounce_mailbox_host = ‘pop.gmail.com’; $bounce_mailbox_user = ‘username@gmail.com’; $bounce_mailbox_password = ‘password’; $bounce_mailbox_port = “995/pop3/ssl/novalidate-cert”; 我本还担心phpList 不能从gmail上pop出bounce messages,正想着去专门建一个未经SSL处理的POP邮箱,没想到phpList轻易就达到了我的要求。 另外我还发现,按照phpList自己的说法,php必须运行在safe_mode off的环境下才能让phpList 处理bounce messages,但我亲身实验结果显示safe_mode can be on.

httpd.conf Can Override php.ini

httpd.conf and php.ini, which has priority? I have done some experiments, and the conclusions are – php settings in php.ini can be overrided by httpd.conf (or some other Apache configuration files) with php_admin_value, php_admin_flag, php_value, and php_flag. However, I find on Linux, if php_admin_value, php_admin_flag, php_value, or php_flag can not be put inside of VirtualHost… Continue reading httpd.conf Can Override php.ini

safe_mode

我想用script.php访问文件系统,但又想把script.php能访问权限限制在script.php owner 的权限内(而不是apache的权限)。今天才知道把safe_mode turn on就可以,真是又高兴又痛苦,因为很久以前我就想限制script.php的访问权限了,不知道怎么,当时我得出的结论是php 以cgi模式安装才能做到权限检查,sapi模式是做不到的。可能fastcgi过分宣传它的安全特性给我造成一种错觉,其实就文件访问权限来说,sapi一样安全。 同样也是很久以前,见论坛上有个好学的人想要一个免费的空间体验一下xoops,对于好学的人我总想热心帮忙的,况且我又不用额外支出,何乐而不为。无奈我的服务器的designer做的初始设置不是针对share hosting的,safe_mode default off。这样把服务器分给别人用我总归不放心,所以最终没有划空间给好学之士。 safe_mode=on,真就这么简单!

在Fedora上安装mcrypt

最近我为了让Godaddy的服务器支持magento,就要装mcrypt module,顺便也可以了却phpmyadmin登录时的一段warning message。 Linux 的大虾们别笑话我,这么点小事让我忙乎了半天。对我来说,Windows下很简单的问题,Linux下就不简单。Linux命令我只能依样画瓢,很少能举一反三。Linux有不同版本,我的Godaddy Server装的是Fedora,好不容易找到一份明确适用于Fedora的mcrypt安装步骤。当然知道了步骤,操作起来是相当简单的。 At the terminal, su root – you are now going to yum, not ./configure, make, and make install… yum install mcrypt – this will get you libmcrypt, mhash, and mcrypt yum install php-mcrypt – this will get you the functionality within PHP

Published
Categorized as 小小草 Tagged