<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[BIWEB开源PHP WMS系统创始人ArthurXF肖飞的blog]]></title> 
<link>http://www.bizeway.net/index.php</link> 
<description><![CDATA[网务通 - 网务公司发展之路]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[BIWEB开源PHP WMS系统创始人ArthurXF肖飞的blog]]></copyright>
<item>
<link>http://www.bizeway.net/read.php?</link>
<title><![CDATA[跟着ArthurXF学FreeBSD15——从ports安装eAccelerator]]></title> 
<author>ArthurXF &lt;arthurxf@gmail.com&gt;</author>
<category><![CDATA[FreeBSD]]></category>
<pubDate>Thu, 25 Jan 2007 06:44:22 +0000</pubDate> 
<guid>http://www.bizeway.net/read.php?</guid> 
<description>
<![CDATA[ 
	　　什么是 eAccelerator ？<br/><br/>　　eAccelerator 是一个开源并且免费的 PHP 加速器，优化器，编码器，同时也能够为 PHP 提供动态内容缓存。它能够将 PHP 脚本缓存为已编译状态以达到提升 PHP 脚本运行性能的目的，因此传统的预编译几乎被消除。eAccelerator 也能够优化 PHP 脚本以提升 PHP 脚本的执行速度。eAccelerator 可有效降低服务器负载并且提高 PHP 程序速度达 1-10 倍。<br/><br/>　　TurckMMCache 是 eAccelerator 的前身。<br/>　　( http://sourceforge.net/project/turckmm-cache/ &nbsp;by Dmitry Stogov )<br/><br/>　　eAccelerator 包含一个 PHP 编码器和加载器。您可以使用编码器对 .php 脚本进行编码，从而能够以非源代码方式发布您的 PHP 程序。经过编码的 PHP 程序可以运行在任何安装有PHP 解析环境和 eAccelerator 的站点上，由于编码后的 PHP 程序存储为已编译代码，并且已编译版本中不包含程序的源代码，因此，经过 eAccelerator 编码的 PHP 程序是不能被还原恢复的。当然，一些内部脚本可以被某些不同的反编译引擎工具（如 disassemblers, debuggers等）进行还原恢复，但这并非是微不足道的。<br/><br/>　　eAccelerator 与 Zend Optimizer 加载器兼容。在 php.ini 中，Zend Optimizer 必须在eAccelerator 之后加载。如果您的站点不运行任何经由 Zend 编码器编码的 PHP 脚本，那么我们并不推荐您在安装 eAccelerator 的服务器上安装 Zend Optimizer。<br/><br/>　　eAccelerator 不能运行于 CGI 模式下，但它可以运行于像 lighttpd 类似的 Fast-CGI模式。<br/><br/>　　以下是一些与 eAccelerator 具有相同功能的产品：<br/>　　- Zend Performance Suite (http://www.zend.com)<br/>　　- Alternative PHP Cache (http://pecl.php.net/package/APC)<br/><br/>　　eAccelerator已经是很常用的PHP平台预编译加速的手段了，安装后php执行速度大幅度提升，所以今天我们来学习从ports安装eAccelerator，并且配置好它。<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"># cd /usr/ports/www/eaccelerator<br/>make<br/>make install clean<br/>mkdir /tmp/eaccelerator<br/>chown -R www /tmp/eaccelerator<br/>chmod 0700 /tmp/eaccelerator<br/>vi /usr/local/etc/php.ini</div></div><br/><br/>作为Zend扩展安装配置文件<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">zend_extension="/usr/local/lib/php/20060613/eaccelerator.so"<br/>[eaccelerator]<br/>eaccelerator.shm_size="16"<br/>eaccelerator.cache_dir="/tmp/eaccelerator"<br/>eaccelerator.enable="1"<br/>eaccelerator.optimizer="1"<br/>eaccelerator.check_mtime="1"<br/>eaccelerator.debug="0"<br/>eaccelerator.filter=""<br/>eaccelerator.shm_max="0"<br/>eaccelerator.shm_ttl="0"<br/>eaccelerator.shm_prune_period="0"<br/>eaccelerator.shm_only="0"<br/>eaccelerator.compress="1"<br/>eaccelerator.compress_level="9"</div></div><br/><br/>作为独立模块安装配置文件<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">[eaccelerator]<br/>extension=”eaccelerator.so”<br/>eaccelerator.shm_size=”0″<br/>eaccelerator.cache_dir=”/tmp/eaccelerator”<br/>eaccelerator.enable=”1″<br/>eaccelerator.optimizer=”1″<br/>eaccelerator.check_mtime=”1″<br/>eaccelerator.debug=”0″<br/>eaccelerator.filter=”"<br/>eaccelerator.shm_max=”0″<br/>eaccelerator.shm_ttl=”0″<br/>eaccelerator.shm_prune_period=”0″<br/>eaccelerator.shm_only=”0″<br/>eaccelerator.compress=”1″<br/>eaccelerator.compress_level=”9″</div></div><br/><br/>这个是ArthurXF，session全部放进内存中的配置，倾情奉献给大家：<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">[eaccelerator]<br/>eaccelerator.shm_size="32"<br/>eaccelerator.cache_dir="/tmp/eaccelerator"<br/>eaccelerator.enable="1"<br/>eaccelerator.optimizer="1"<br/>eaccelerator.check_mtime="1"<br/>eaccelerator.debug="0"<br/>eaccelerator.filter=""<br/>eaccelerator.shm_max="0"<br/>eaccelerator.shm_ttl="900"<br/>eaccelerator.shm_prune_period="1800"<br/>eaccelerator.shm_only="0"<br/>eaccelerator.compress="1"<br/>eaccelerator.compress_level="9"<br/>eaccelerator.sessions="shm"<br/>eaccelerator.keys="shm"<br/>eaccelerator.content="shm"</div></div><br/><br/>如果上面两个配置加上去了，都没能启动eAccelerator，那么执行下面的命令：<br/>vi /usr/local/etc/php/extensions.ini<br/>在最后加入下面的语句即可<br/>extension=eaccelerator.so<br/><br/>安装好了，重起apache，看看phpinfo，是不是多了下面的内容啊？<br/>with eAccelerator v0.9.5, Copyright (c) 2004-2006 eAccelerator, by eAccelerator<br/>这样就说明安装好了。<br/><br/>下面看看eAccelerator配置选项<br/><br/>eaccelerator.shm_size<br/> &nbsp; &nbsp; &nbsp; &nbsp;指定 eAccelerator 能够使用的共享内存数量，单位：MB。<br/> &nbsp; &nbsp; &nbsp; &nbsp;"0" 代表操作系统默认。默认值为 "0"。<br/><br/>eaccelerator.cache_dir<br/> &nbsp; &nbsp; &nbsp; &nbsp;用户磁盘缓存的目录。eAccelerator 在该目录中存储预编译代码、session 数据、内容等。<br/> &nbsp; &nbsp; &nbsp; &nbsp;相同的数据也可以存储于共享内存中（以获得更快的存取速度）。默认值为 "/tmp/eaccelerator"。<br/><br/>eaccelerator.enable<br/> &nbsp; &nbsp; &nbsp; &nbsp;开启或关闭 eAccelerator。"1" 为开启，"0" 为关闭。默认值为 "1"。<br/><br/>eaccelerator.optimizer<br/> &nbsp; &nbsp; &nbsp; &nbsp;开启或关闭内部优化器，可以提升代码执行速度。"1" 为开启，"0" 为关闭。默认值为 "1"。<br/><br/>eaccelerator.debug<br/> &nbsp; &nbsp; &nbsp; &nbsp;开启或关闭调试日志记录。"1" 为开启，"0" 为关闭。默认值为 "0"。<br/><br/>eaccelerator.check_mtime<br/> &nbsp; &nbsp; &nbsp; &nbsp;开启或关闭 PHP 文件改动检查。"1" 为开启，"0" 为关闭。如果您想要在修改后重新编译 PHP<br/> &nbsp; &nbsp; &nbsp; &nbsp;程序则需要设置为 "1"。默认值为 "1"。<br/><br/>eaccelerator.filter<br/> &nbsp; &nbsp; &nbsp; &nbsp;判断哪些 PHP 文件必须缓存。您可以指定缓存和不缓存的文件类型（如 "*.php *.phtml"等）<br/> &nbsp; &nbsp; &nbsp; &nbsp;如果参数以 "!" 开头，则匹配这些参数的文件被忽略缓存。默认值为 ""，即，所有 PHP 文件<br/> &nbsp; &nbsp; &nbsp; &nbsp;都将被缓存。<br/><br/>eaccelerator.shm_max<br/> &nbsp; &nbsp; &nbsp; &nbsp;当使用 " eaccelerator_put() " 函数时禁止其向共享内存中存储过大的文件。该参数指定允许<br/> &nbsp; &nbsp; &nbsp; &nbsp;存储的最大值，单位：字节 (10240, 10K, 1M)。"0" 为不限制。默认值为 "0"。<br/><br/>eaccelerator.shm_ttl<br/> &nbsp; &nbsp; &nbsp; &nbsp;当 eAccelerator 获取新脚本的共享内存大小失败时，它将从共享内存中删除所有在<br/> &nbsp; &nbsp; &nbsp; &nbsp;最后 "shm_ttl" 秒内无法存取的脚本缓存。默认值为 "0"，即：不从共享内春中删除<br/> &nbsp; &nbsp; &nbsp; &nbsp;任何缓存文件。<br/><br/>eaccelerator.shm_prune_period<br/> &nbsp; &nbsp; &nbsp; &nbsp;当 eAccelerator 获取新脚本的共享内存大小失败时，他将试图从共享内存中删除早于<br/> &nbsp; &nbsp; &nbsp; &nbsp;"shm_prune_period" 秒的缓存脚本。默认值为 "0"，即：不从共享内春中删除<br/> &nbsp; &nbsp; &nbsp; &nbsp;任何缓存文件。<br/><br/>eaccelerator.shm_only<br/> &nbsp; &nbsp; &nbsp; &nbsp;允许或禁止将已编译脚本缓存在磁盘上。该选项对 session 数据和内容缓存无效。默认<br/> &nbsp; &nbsp; &nbsp; &nbsp;值为 "0"，即：使用磁盘和共享内存进行缓存。<br/><br/>eaccelerator.compress<br/> &nbsp; &nbsp; &nbsp; &nbsp;允许或禁止压缩内容缓存。默认值为 "1"，即：允许压缩。<br/><br/>eaccelerator.compress_level<br/> &nbsp; &nbsp; &nbsp; &nbsp;指定内容缓存的压缩等级。默认值为 "9"，为最高等级。<br/><br/>eaccelerator.name_sapce<br/> &nbsp; &nbsp; &nbsp; &nbsp;一个所有键(keys)的前缀字符串。如果设置该前缀字符串则允许 .htaccess 或者 主配置<br/> &nbsp; &nbsp; &nbsp; &nbsp;文件在相同主机上运行两个相同的键名。<br/><br/>eaccelerator.keys<br/>eaccelerator.sessions<br/>eaccelerator.content<br/> &nbsp; &nbsp; &nbsp; &nbsp;判断哪些键(keys)、session 数据和内容将被缓存。可用参数值为：<br/> &nbsp; &nbsp; &nbsp; &nbsp;"shm_and_disk" - 同时在共享内存和磁盘中缓存数据（默认值）；<br/> &nbsp; &nbsp; &nbsp; &nbsp;"shm" &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- 如果共享内存用尽或者数据容量大于 "eaccelerator.shm_max"<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 则在共享内存或磁盘中缓存数据；<br/> &nbsp; &nbsp; &nbsp; &nbsp;"shm_only" &nbsp; &nbsp; - 仅在共享内存中缓存数据；<br/> &nbsp; &nbsp; &nbsp; &nbsp;"disk_only" &nbsp; &nbsp;- 仅在磁盘中缓存数据；<br/> &nbsp; &nbsp; &nbsp; &nbsp;"none" &nbsp; &nbsp; &nbsp; &nbsp; - 禁止缓存数据。<br/><br/><br/>eAccelerator 应用程序接口(API)<br/><br/>eaccelerator_put($key, $value, $ttl=0)<br/> &nbsp; &nbsp; &nbsp; &nbsp;将 $value 存储在共享内存中，并存储 $tll 秒。<br/><br/>eaccelerator_get($key)<br/> &nbsp; &nbsp; &nbsp; &nbsp;从共享内存中返回 eaccelerator_put() 函数所存储的缓存数值，如果不存在或者已经<br/> &nbsp; &nbsp; &nbsp; &nbsp;过期，则返回 null。<br/><br/>eaccelerator_rm($key)<br/> &nbsp; &nbsp; &nbsp; &nbsp;从共享内存中删除 $key。<br/><br/>eaccelerator_gc()<br/> &nbsp; &nbsp; &nbsp; &nbsp;删除所有过期的键(keys)<br/><br/>eaccelerator_lock($lock)<br/> &nbsp; &nbsp; &nbsp; &nbsp;创建一个指定名称的锁(lock)。该锁可以通过 eaccelerator_unlock() 函数解除，在请求<br/> &nbsp; &nbsp; &nbsp; &nbsp;结束时也会自动解锁。例如：<br/> &nbsp; &nbsp; &nbsp; &nbsp;<br/><div class="code">&lt;?php<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;eaccelerator_lock(&quot;count&quot;);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;eaccelerator_put(&quot;count&quot;,eaccelerator_get(&quot;count&quot;)+1));<br/> &nbsp; &nbsp; &nbsp; &nbsp;?&gt;</div><br/><br/>eaccelerator_unlock($lock)<br/> &nbsp; &nbsp; &nbsp; &nbsp;解除指定名称的锁(lock)。<br/><br/>eaccelerator_set_session_handlers()<br/> &nbsp; &nbsp; &nbsp; &nbsp;安装 eAccelerator session 句柄。<br/> &nbsp; &nbsp; &nbsp; &nbsp;从 PHP 4.2.0 以后，您可以通过设置 php.ini 中的 "session.save_handler=eaacelerator"<br/> &nbsp; &nbsp; &nbsp; &nbsp;安装 eAccelerator 句柄。<br/><br/>eaccelerator_cache_output($key, $eval_code, $ttl=0)<br/> &nbsp; &nbsp; &nbsp; &nbsp;在共享内存中缓存 &nbsp;$eval_code 的输出，缓存 $ttl 秒。<br/> &nbsp; &nbsp; &nbsp; &nbsp;可以调用 mmcach_rm() 函数删除相同 $key 的输出。例如：<br/> &nbsp; &nbsp; &nbsp; &nbsp;<br/><div class="code">&lt;?php eaccelerator_cache_output(&#039;test&#039;, &#039;echo time(); phpinfo();&#039;, 30); ?&gt;</div><br/><br/>eaccelerator_cache_result($key, $eval_code, $ttl=0)<br/> &nbsp; &nbsp; &nbsp; &nbsp;在共享内存中缓存 $eval_code 的结果，缓存 $ttl 秒。<br/> &nbsp; &nbsp; &nbsp; &nbsp;可以调用 mmcach_rm() 函数删除相同 $key 的结果。例如：<br/> &nbsp; &nbsp; &nbsp; &nbsp;<br/><div class="code">&lt;?php eaccelerator_cache_output(&#039;test&#039;, &#039;time().&quot; Hello&quot;;&#039;, 30); ?&gt;</div><br/><br/>eaccelerator_cache_page($key, $ttl=0)<br/> &nbsp; &nbsp; &nbsp; &nbsp;缓存整个页面，且缓存 $ttl 秒。例如：<br/><br/><div class="code">&lt;?php<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;eaccelerator_cache_page($_SERVER&#91;&#039;PHP_SELF&#039;&#93;.&#039;?GET=&#039;.serialize($_GET),30);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo time();<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;phpinfo();<br/> &nbsp; &nbsp; &nbsp; &nbsp;?&gt;</div><br/><br/>eaccelerator_rm_page($key)<br/> &nbsp; &nbsp; &nbsp; &nbsp;从缓存中删除由 eaccelerator_cache_page() 函数创建的相同 $key 的页。<br/><br/>eaccelerator_encode($filename)<br/> &nbsp; &nbsp; &nbsp; &nbsp;返回 $filename 文件经过编译后的编码。<br/><br/>eaccelerator_load($code)<br/> &nbsp; &nbsp; &nbsp; &nbsp;加载被 eaccelerator_encode() 函数编码过的脚本。<br/><br/><br/>现在ArthurXF本人正在搞PHP等技术培训，如果想学习的人可以跟我联系。另外培训的招生简章在这个网址，想了解的可以去看看。加我QQ：29011218交流也可。<br/><a href="http://www.bizeway.net/read.php/285.htm" target="_blank">PHP培训招生简章</a><br/>Tags - <a href="tag.php?tag=freebsd" rel="tag">freebsd</a> , <a href="tag.php?tag=ports" rel="tag">ports</a> , <a href="tag.php?tag=eaccelerator" rel="tag">eaccelerator</a>
]]>
</description>
</item><item>
<link>http://www.bizeway.net/read.php?&amp;guid=0#topreply</link>
<title><![CDATA[[评论] 跟着ArthurXF学FreeBSD15——从ports安装eAccelerator]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.bizeway.net/read.php?&amp;guid=0#topreply</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>