from:http://jackywdx.cn/2009/05/install_php_minimum/
在研究PHP内核的时候,每次改动源代码都得重新编译PHP,每次编译都得费上好一段时间,如果只是想调试内核而不需要PHP的其他功能,可以把PHP的绝大部分模块都去掉,这样编译速度就会快很多。我用了下面的configure配置:
./configure –prefix=/usr/local/php5.2.9_2 –disable-xmlwriter –disable-xmlreader –disable-tokenizer –disable-simplexml –disable-posix –disable-dom –disable-ctype –disable-hash –disable-json –disable-filter –disable-xml –without-pear –disable-cgi –disable-pdo –disable-libxml –without-iconv –disable-spl –without-sqlite –disable-session –disable-reflection
这样编译出来的PHP其他就没有加载任何模块了,编译速度也快了不少。不过还可以改造编译的时候的环境检查,现在还不知道如何改造,等知道了再贴上来。
刚刚发现一个问题,configure只需要运行一次就够了,运行之后会生成Makefile文件,记录了一些配置选项,下次修改源文件的时候再重新编译的时候只需要运行make && make install就可以了
make install的时候会安装不少文件:
Installing PHP CLI binary: /usr/local/php5.2.9_2/bin/
Installing PHP CLI man page: /usr/local/php5.2.9_2/man/man1/
Installing build environment: /usr/local/php5.2.9_2/lib/php/build/
Installing header files: /usr/local/php5.2.9_2/include/php/
Installing helper programs: /usr/local/php5.2.9_2/bin/
program: phpize
program: php-config
Installing man pages: /usr/local/php5.2.9_2/man/man1/
page: phpize.1
page: php-config.1
但我只需要生成 php程序就可以,修改Makefile文件
install_targets = install-cli install-build install-headers install-programs
找到这一行,然后把这一行注释掉,再增加一行:
install_targets = install-cli
这样每次make install的时候就只要安装生成PHP程序了。
呵呵,这样速度快了N多。
做优化用的上了,针对自己的环境,需要什么就enable
在研究PHP内核的时候,每次改动源代码都得重新编译PHP,每次编译都得费上好一段时间,如果只是想调试内核而不需要PHP的其他功能,可以把PHP的绝大部分模块都去掉,这样编译速度就会快很多。我用了下面的configure配置:
./configure –prefix=/usr/local/php5.2.9_2 –disable-xmlwriter –disable-xmlreader –disable-tokenizer –disable-simplexml –disable-posix –disable-dom –disable-ctype –disable-hash –disable-json –disable-filter –disable-xml –without-pear –disable-cgi –disable-pdo –disable-libxml –without-iconv –disable-spl –without-sqlite –disable-session –disable-reflection
这样编译出来的PHP其他就没有加载任何模块了,编译速度也快了不少。不过还可以改造编译的时候的环境检查,现在还不知道如何改造,等知道了再贴上来。
刚刚发现一个问题,configure只需要运行一次就够了,运行之后会生成Makefile文件,记录了一些配置选项,下次修改源文件的时候再重新编译的时候只需要运行make && make install就可以了
make install的时候会安装不少文件:
Installing PHP CLI binary: /usr/local/php5.2.9_2/bin/
Installing PHP CLI man page: /usr/local/php5.2.9_2/man/man1/
Installing build environment: /usr/local/php5.2.9_2/lib/php/build/
Installing header files: /usr/local/php5.2.9_2/include/php/
Installing helper programs: /usr/local/php5.2.9_2/bin/
program: phpize
program: php-config
Installing man pages: /usr/local/php5.2.9_2/man/man1/
page: phpize.1
page: php-config.1
但我只需要生成 php程序就可以,修改Makefile文件
install_targets = install-cli install-build install-headers install-programs
找到这一行,然后把这一行注释掉,再增加一行:
install_targets = install-cli
这样每次make install的时候就只要安装生成PHP程序了。
呵呵,这样速度快了N多。
做优化用的上了,针对自己的环境,需要什么就enable
查看ANMP编译参数
[ 2009/05/19 16:43 | by selboo ]
通常我们编译完 Apache,Nginx,Mysql,Php。想查看编译参数可以用下面方法
查看Apache编译参数:
cat /usr/local/apache2/build/config.nice
查看Nginx编译参数:
/usr/local/nginx/sbin/nginx -V
查看Mysql编译参数:
cat "/usr/local/mysql/bin/mysqlbug"|grep configure
查看Php编译参数:
/usr/local/php/bin/php -i |grep configure
查看Apache编译参数:
cat /usr/local/apache2/build/config.nice
查看Nginx编译参数:
/usr/local/nginx/sbin/nginx -V
查看Mysql编译参数:
cat "/usr/local/mysql/bin/mysqlbug"|grep configure
查看Php编译参数:
/usr/local/php/bin/php -i |grep configure
php.ini 中文版
[ 2009/05/16 14:50 | by selboo ]
[PHP]
; PHP还是一个不断发展的工具,其功能还在不断地删减
; 而php.ini的设置更改可以反映出相当的变化,
; 在使用新的PHP版本前,研究一下php.ini会有好处的
;;;;;;;;;;;;;;;;;;;
; 关于这个文件 ;
;;;;;;;;;;;;;;;;;;;
; 这个文件控制了PHP许多方面的观点。为了让PHP读取这个文件,它必须被命名为
; 'php.ini'。PHP 将在这些地方依次查找该文件:当前工作目录;环境变量PHPRC
; 指明的路径;编译时指定的路径。
; 在windows下,编译时的路径是Windows安装目录。
; 在命令行模式下,php.ini的查找路径可以用 -c 参数替代。
; 该文件的语法非常简单。空白字符和用分号';'开始的行被简单地忽略(就象你可能
; 猜到的一样)。 章节标题(例如 : [Foo])也被简单地忽略,即使将来它们可能
; 有某种的意义。 <
; PHP还是一个不断发展的工具,其功能还在不断地删减
; 而php.ini的设置更改可以反映出相当的变化,
; 在使用新的PHP版本前,研究一下php.ini会有好处的
;;;;;;;;;;;;;;;;;;;
; 关于这个文件 ;
;;;;;;;;;;;;;;;;;;;
; 这个文件控制了PHP许多方面的观点。为了让PHP读取这个文件,它必须被命名为
; 'php.ini'。PHP 将在这些地方依次查找该文件:当前工作目录;环境变量PHPRC
; 指明的路径;编译时指定的路径。
; 在windows下,编译时的路径是Windows安装目录。
; 在命令行模式下,php.ini的查找路径可以用 -c 参数替代。
; 该文件的语法非常简单。空白字符和用分号';'开始的行被简单地忽略(就象你可能
; 猜到的一样)。 章节标题(例如 : [Foo])也被简单地忽略,即使将来它们可能
; 有某种的意义。 <
启用rewrite模块,支持.htaccess
[ 2009/05/14 20:04 | by selboo ]
有时候该模块被编译成 httpd 二进制流,如果是这样的话,你可以通过下列命令查看该模块是否被载入了
httpd -l
如果列表中没有,它有可能是被动态载入的。在这种情况下你可以通过下列代码的输出来查看
如果你是自己编译安装4的Apache, 你只需简单的把下列这行添加到你的配置文件(注:这样就可以在Apache启动时自动载入该模块)
./configure –enable-module=rewrite
如果你使用的是Apache的分支版本,如,Fedora Core(红帽子Linux服务器版),你必须安装相关的devel工具
yum install apache2-devel
这样 mod_rewrite 模块就可以用了。
现在 mod_rewrite 是载入了,但它还不能工作
这是很典型的,意思就是说默认的Apache配置不允许使用客户端 .htaccess 文件。 你需要更改
AllowOverride None
为
AllowOverride All
你只需打开编辑 httpd.conf file 然后搜索 AllowOverride来修改。 这是第一个影响根目录属性的配置,但它不是你想要的。
这是第二个作用Web根目录的属性配置, 你可以修改这个属性,但是你可能不想让你的所有网站都允许mod_rewrite模块操作(如写操作)。 当然了你可以为你的某个特定站点另外创建一个目录节点,
httpd -l
如果列表中没有,它有可能是被动态载入的。在这种情况下你可以通过下列代码的输出来查看
如果你是自己编译安装4的Apache, 你只需简单的把下列这行添加到你的配置文件(注:这样就可以在Apache启动时自动载入该模块)
./configure –enable-module=rewrite
如果你使用的是Apache的分支版本,如,Fedora Core(红帽子Linux服务器版),你必须安装相关的devel工具
yum install apache2-devel
这样 mod_rewrite 模块就可以用了。
现在 mod_rewrite 是载入了,但它还不能工作
这是很典型的,意思就是说默认的Apache配置不允许使用客户端 .htaccess 文件。 你需要更改
AllowOverride None
为
AllowOverride All
你只需打开编辑 httpd.conf file 然后搜索 AllowOverride来修改。 这是第一个影响根目录属性的配置,但它不是你想要的。
这是第二个作用Web根目录的属性配置, 你可以修改这个属性,但是你可能不想让你的所有网站都允许mod_rewrite模块操作(如写操作)。 当然了你可以为你的某个特定站点另外创建一个目录节点,
<Directory /path/to/your/site>
Options FollowSymLinks AllowOverride All
</Directory>
Options FollowSymLinks AllowOverride All
</Directory>
每秒并发处理数的计算方法
[ 2009/05/12 23:23 | by selboo ]
每秒处理的的请求数:req/s
每个请求的响应时间:response time
1、利用网络处理量计算。
计算参考公式:
并发 = connection established / min(server keepalive, server timeout)
翻译一下:
并发 = 服务器传输链接数 除以 服务器软件的keepalive设置和服务器软件的超时设置之间的最小值
这个公式算出来的数字是keepalive时间段内的平均值,比真实平均值要小一点,如果想找最大值就要设定keepalive为0或1,然后多探测几次。
connection established是服务器当前正在传输的链接,但是keepalive打开时,新建立的传输链接会一直存在直到keepalive/timeout关闭链接;客户端主动关闭链接的话connection established也会关闭,不过这种链接一般比较少,多数浏览器都是支持keepalive并遵守服务器配置的。
阅读全文
每个请求的响应时间:response time
1、利用网络处理量计算。
计算参考公式:
并发 = connection established / min(server keepalive, server timeout)
翻译一下:
并发 = 服务器传输链接数 除以 服务器软件的keepalive设置和服务器软件的超时设置之间的最小值
这个公式算出来的数字是keepalive时间段内的平均值,比真实平均值要小一点,如果想找最大值就要设定keepalive为0或1,然后多探测几次。
connection established是服务器当前正在传输的链接,但是keepalive打开时,新建立的传输链接会一直存在直到keepalive/timeout关闭链接;客户端主动关闭链接的话connection established也会关闭,不过这种链接一般比较少,多数浏览器都是支持keepalive并遵守服务器配置的。
