“Non Thread Safe”和“Thread Safe”的区别,以及php编译安装的参数
http://www.it165.net/admin/html/201110/141.html
Apache+PHP安装时Apache无法启动的问题
Windows系统下Apache的安装很简单,和一般程序安装过程一样,区别不大。安装完Apache,在地址栏输入http://localhost/,只要能运行就说明Apache安装成功,具体怎么样安装和配置PHP这里就不多说了。接下来我们主要讨论安装PHP的时候出现的错误。章郎虫选择的Apache和PHP版本:Apache-2.2.21和PHP 5.2 (5.2.17)。
按照步骤一步一步配置好,打开Apache Service Monitor,点击start,弹出错误“php the requested operation has failed”,说明Apache没有成功启动。cmd进入D:\apache\bin目录,输入httpd -t,提示:
httpd: Syntax error on line 175 of D:/apache/conf/httpd.conf: Can’t locate API module structure `php4_module’ in file D:/php/php5apache2_2.dll: No error
httpd.conf中175行的代码“LoadModele php4_module D:\php\php5apache2_2.dll”,从提示中可以看到我模块选择错了。由于apache版本的不同,在配置“LoadModule php5_module D:\php\php5apache2_2.dll”这段代码的时候一定要特别注意。然后改成“LoadModele php5_module D:\php\php5apache2_2.dll”,再运行httpd -t,提示:
[Fri Sep 30 08:13:31 2011] [crit] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.
Pre-configuration failed
意思就是说我下载的php不能进行编译,想起我下载的时候选择“Non Thread Safe”版本,就又去php官网选择“Thread Safe”下载。重新配置,运行httpd -t,提示
Syntax OK
再打开Apache Service Monitor,点击start,总算成功启动了。
“Non Thread Safe”和“Thread Safe”的区别
“Non Thread Safe”和“Thread Safe”从字面意思上理解,Thread Safe 是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式而耗尽系统资源。Non Thread Safe 是非线程安全,在执行时不进行线程(Thread)安全检查。
PHP 的两种执行方式:ISAPI 和 FastCGI。
ISAPI 执行方式是以 DLL 动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以 ISAPI 来执行 PHP,建议选择 Thread Safe 版本;
而 FastCGI 执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以 FastCGI 来执行 PHP,建议选择 Non Thread Safe 版本。
官方并不建议你将Non Thread Safe 应用于生产环境,所以我们也选择Thread Safe 版本的PHP来使用。
转载请注明转自http://www.hellonet8.com/572.html
http://huangyu.blog.51cto.com/1021686/288093
--prefix=/usr/local/PHP php 安装目录
--with-apxs2=/usr/local/apache/bin/apxs
--with-config-file-path=/usr/local/PHP/etc 指定php.ini位置
--with-MySQL=/usr/local/mysql mysql安装目录,对mysql的支持
--with-MySQLi=/usr/local/mysql/bin/mysql_config mysqli文件目录,优化支持
--enable-safe-mode 打开安全模式
--enable-ftp 打开ftp的支持
--enable-zip 打开对zip的支持
--with-bz2 打开对bz2文件的支持
--with-jpeg-dir 打开对jpeg图片的支持
--with-png-dir 打开对png图片的支持
--with-freetype-dir 打开对freetype字体库的支持
--without-iconv 关闭iconv函数,种字符集间的转换
--with-libXML-dir 打开libxml2库的支持
--with-XMLrpc 打开xml-rpc的c语言
--with-zlib-dir 打开zlib库的支持
--with-gd 打开gd库的支持
--enable-gd-native-ttf 支持TrueType字符串函数库
--with-curl 打开curl浏览工具的支持
--with-curlwrappers 运用curl工具打开url流
--with-ttf 打开freetype1.*的支持,可以不加了
--with-xsl 打开XSLT 文件支持,扩展了libXML2库 ,需要libxslt软件
--with-gettext 打开gnu 的gettext 支持,编码库用到
--with-pear 打开pear命令的支持,PHP扩展用的
--enable-calendar 打开日历扩展功能
--enable-mbstring 多字节,字符串的支持
--enable-bcmath 打开图片大小调整,用到zabbix监控的时候用到了这个模块
--enable-sockets 打开 sockets 支持
--enable-exif 图片的元数据支持
--enable-magic-quotes 魔术引用的支持
--disable-rpath 关闭额外的运行库文件
--disable-debug 关闭调试模式
--with-mime-magic=/usr/share/file/magic.mime 魔术头文件位置
CGI方式安装才用的参数
--enable-fpm 打上PHP-fpm 补丁后才有这个参数,CGI方式安装的启动程序
--enable-fastCGI 支持fastcgi方式启动PHP
--enable-force-CGI-redirect 同上 ,帮助里没有解释
--with-ncurses 支持ncurses 屏幕绘制以及基于文本终端的图形互动功能的动态库
--enable-pcntl freeTDS需要用到的,可能是链接mssql 才用到
mhash和mcrypt算法的扩展
--with-mcrypt 算法
--with-mhash 算法
--with-gmp
--enable-inline-optimization
--with-openssl openssl的支持,加密传输时用到的
--enable-dbase
--with-pcre-dir=/usr/local/bin/pcre-config perl的正则库案安装位置
--disable-dmalloc
--with-gdbm dba的gdbm支持
--enable-sigchild
--enable-sysvsem
--enable-sysvshm
--enable-zend-multibyte 支持zend的多字节
--enable-mbregex
--enable-wddx
--enable-shmop
--enable-soap
深入讲解CentOS PHP安装编译
CentOS PHP安装
1、下载:php4.3.11
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]#
http://ftp.gamearena.cn/software/php-4.3.11.tar.gz
[root@localhost src]# chmod +x php-4.3.11.tar.gz
[root@localhost src]# tar -zxvf php-4.3.11.tar.gz
2、CentOS PHP安装设置编译器的编译参数
[root@localhost src]# cd php-4.3.11
[root@localhost src]# ./configure prefix=/usr/local/php4 with-mysql=/usr/local/mysql with-apxs2=/usr/local/apache2/bin/apxs with-config-file-path=/usr/local/php4 with-gd with-jpeg-dir with-png with-ttf with-zlib enable-mbstring enable-ftp with-freetype-dir with-xml disable-debug enable-inline-optimization -q enable-thread-safety
#参数注解:
with-mysql=/usr/local/mysql
指定mysql的安装位置
with-apxs2=/usr/local/apache2/bin/apxs
编译共享的 Apache 2.0 模块。FILE 是可选的 Apache 的 apxs 工具的路径,默认为 apxs
with-config-file-path=/usr/local/php4
设定 php.ini 所在的路径,默认为 PREFIX/lib
with-gd
指定gd
with-jpeg-dir
with-png
with-ttf
with-zlib
enable-mbstring
enable-ftp
打开ftp支持
with-freetype-dir
with-xml
disable-debug
禁用调试符号
enable-inline-optimization
enable-thread-safety
3、CentOS PHP安装和编译
[root@localhost php-4.3.11]# make; make install
4、转存CentOS PHP安装基本配置文件
[root@localhost php-4.3.11]# cp php.ini-dist /usr/local/php4/php.ini
#这个路径必须和./configure中的with-config-file-path设置一致
5、整合apache 与CentOS PHP
[root@localhost php-4.3.11]# vi /usr/local/apache2/conf/httpd.conf
加上:
AddType application/x-httpd-php .php
查找,在下面一行的DirectoryIndex后面增加index.php,例:
DirectoryIndex index.php index.html
PS:其实这个DirectoryIndex和IIS中”启用默认内容文档“那项设置是一个含义,应该知道是干什么用的了吧。
6、重启apache
[root@localhost php-4.3.11]# /usr/local/apache2/bin/apachectl stop
[root@localhost php-4.3.11]# /usr/local/apache2/bin/apachectl start
切记:不要直接用[root@localhost php-4.3.11]# /usr/local/apache2/bin/apachectl restart,我第一次配置时,就是这样操作导致apache的服务启动不了,害得我查了半天。
7、测试CentOS PHP安装是否正常工作
[root@localhost php-4.3.11]# echo ' ' > /usr/local/apache2/htdocs/phpinfo.php
#在浏览器中输入http://你的地址/phpinfo.php,如果出现如下画面,就说明PHP编译成功了。
安装Zend Optimizer
1、下载:Zend Optimizer 3.2.2
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget
http://downloads.zend.com/optimizer/3.2.2/ZendOptimizer-3.2.2-linux-glibc21-i386.tar.gz
[root@localhost src]# chmod +x ZendOptimizer-3.2.2-linux-glibc21-i386.tar.gz
[root@localhost src]# tar -zcvf ZendOptimizer-3.2.2-linux-glibc21-i386.tar.gz
2、安装Zend Optimizer
[root@localhost src]# cd /usr/local/src/ZendOptimizer-3.2.2-linux-glibc21-i386
[root@localhost ZendOptimizer-3.2.2-linux-glibc21-i386]# ./install.sh
#根据安装提示一路回车即可,唯独要注意的是选择php.ini目录的那里,你要修改为你php.ini实际所在的目录。由于之前我们编译安装php时,指定为with-config-file-path=/usr/local/php4,所以我们修改将默认的/etc修改为/usr/local/php4。如图:
3、通过php探针文件核查Zend Optimizer是否安装成功
正常的话,应该能看到成功安装Zend Optimizer的信息,图中红框部份
以上介绍CentOS PHP安装。

浙公网安备 33010602011771号