要想用php做开发,并且想开发出很牛的程序,那么我们究竟如何去做呢?其实开发出一个性能很好的程序,服务器起到至关重要的作用,那么今天小编辑就为大家分享一套
PHP服务器配置方案。
[1]关于操作系统的选择
PHP在Linux/FreeBSD下面的性能比在Windows主机下的性能更好。如果您没有必须使用Windows主机的理由(比如需要使用ASP.net或者SQL Server或者Windows Media Server或者Serv-U),那么我推荐您使用Linux/FreeBSD。
如果您需要使用Windows,推荐使用Windows 2003 32位企业版,不推荐使用Windows 2000(性能较差)。
如果您需要使用Linux,推荐使用RedHat Enterprise Linux(最新版本是RedHat Enterprise Linux 4 beta1)。
如果您需要使用FreeBSD,推荐使用最新版本FreeBSD 5.2.1。
如果您的MySQL和Web分离,MySQL主机推荐使用Linux系统,通过LinuxThread可以有很好的性能(LinuxThread也可以在FreeBSD下面安装,但是比较麻烦)
[2]关于Web Server的选择
如果您使用的是Windows,那么推荐使用IIS6.0,不推荐使用Apache(性能较差)。
如果您使用的是Linux/FreeBSD,那么推荐使用Zeus或Apache(Apache的最新版本是2.0.52/1.3.33)。
注意:Zeus最新版本4.3版尚不支持FreeBSD 5.0版本。
Zeus Web Server是目前全球性能最好的、速度最快的、功能最强大的、抗压性最优良的、安全性最佳的Web服务器软件,但是是商业软件,费用比较贵(支持双至强启用超线程需要2200美元),网上面可以下载到Zeus 4.3 for Linux和FreeBSD 4.x的破解版本。国内很多大型论坛,单主机在线上万人的大多使用Zeus,系统消耗比Apache小很多。同时Zeus支持服务器负载平衡,多个主机通过使用Zeus Load Balancer可以实现超级规模站点的支持。
Zeus的站点是 可以免费下载到30天试用版(其实和破解版本的区别只是授权文件)。使用说明参见:
[3]关于PHP运行方式的选择
Windows主机需要安装PHP的完整版本,不能使用php.net提供的安装程序来安装,而应该手动安装。如果需要使用Unicode(UTF-8)编码,Windows主机下如果是php4.3.x版本需要单独加载iconv()函数库(需要在php.ini中正确设置extension_dir,比如extension_dir = "C:/php/extensions/"
,同时需要取消;extension=php_iconv.dll一行前面的;号,并将c:/php/dlls/iconv.dll复制到c:/windows/system32目录下。
注意:php5.x版本无需而且不能这样设置),而Linux/FreeBSD主机需要在编译PHP的时候加入iconv的参数(./configure--with-iconv)。
在Windows下面,如果使用IIS,推荐使用ISAPI方式来运行,千万不要使用CGI方式运行。您也可以使用FastCGI方式(需要下载FastCGI的模块并作相当多的配置),这个性能更好一些,如果再同时使用两个加速器(Zend Optimizer、MMCache),测试下来居然可以接近FreeBSD下使用Zend Performance Suite的效果,但是我测试稳定性比较差,当线程超过FastCGI所限制的最大并发线程,某些时候有可能导致FastCGI进程死掉,进而无法访问任何站点,只能重起服务器来解决。
Linux/FreeBSD下面,如果使用Apache作为Web Server,推荐将PHP作为Apache的模块来运行。如果使用Zeus作为Web Server,要求使用FastCGI方式来运行PHP,但是FastCGI有可能出现死掉进程的问题,在停止zeus时,有时候会不能停止成功,使得PIDFILE不能清除,下次再启动时,FastCGI会无法启动。如果遇到bad gateway错误,需要检查PIDFILE是否清除,如果没有则手动清除再重启Zeus。最好的办法是使用crontab,定时自动重启FastCGI。
关于FastCGI的问题,在某些主机下运行很正常,若干个月不会有任何问题。而有些主机却比较频繁,不论是Windows或者Linux/FreeBSD,看运气吧。
[4]关于PHP免费加速器的选择
可以使用的免费加速器主要有Zend Optimizer、Turck MMcache、ionCube PHP Accelerator。
(1)Zend Optimizer
官方站点
最新版本 2.5.5
下载地址
(2)Turck MMCache
官方站点
最新版本 2.4.6 for PHP v4.3.4/5.0.0b2
下载地址
需要注意的是PHP最新版本是4.3.9/5.0.2,所以如果您需要在PHP的最新版本下使用Turck MMCache,需要进行单独编译。我在这个主题的附件里面上传了编译好的Turck MMCache v2.4.7 CVS for PHP v4.3.9和Turck MMCache v2.4.7 CVS for PHP v5.0.2两个版本需要的文件,先安装MMCache 2.4.6,然后将我提供的压缩包里面的文件改名为mmcache.dll,替换旧文件即可,注意:这两个文件只适用于Windows主机,如果您需要在Linux/FreeBSD下面使用,需要单独编译MMCache。
但是需要说明的是MMCache for PHP5.0.2的版本,在PHP 5.0.2下面使用存在bug,推荐在PHP5.0.2下暂时不要使用MMCache。
(3)ionCube PHP Accelerator(PHPA)
官方站点
最新版本 1.3.3r2 builds for PHP 4.3.0
这个软件只能在Solaris/FreeBSD/Linux下面使用,不支持Windows,而且不支持PHP的最新版本。而Zend Optimizer、Turck MMcache都是支持各种服务器(Windows/Linux/FreeBSD)、各种Web Server(IIS/Apache/Zeus)以及PHP的各种版本的。所以我不推荐使用此软件。
[5]关于PHP收费加速器的选择
可以使用的收费加速器主要有Zend WinEnabler、Zend Performance Suite。
(1)Zend WinEnabler
官方站点
不知道什么原因,Zend官方最近突然将所有与此软件有关的网页全部删除了,这个软件难道不再出售了吗?这是Zend Performance Suite在Windows下面的版本,使用FastCGI方式运行的PHP,估计是稳定性不能保障吧。
(2)Zend Performance Suite
官方站点
最新版本 4.0
这个软件只能用在Linux/FreeBSD下面,支持Apache和Zeus。据称可以提升php程序20倍的速度,但是售价比较昂贵,1875美元起。网上面可以下载到破解版本,不过是3.6.0/3.5.0版,不支持PHP 5.0。Zend Accelerator和早期的Zend Cache的功能都被包含于此套件当中。注意:如果使用此软件对PHP程序进行缓存,则对文件的任何修改都需要重起Web Server才能生效。
[6]关于MySQL的安装
推荐安装MySQL 4.0.x/4.1.x版本,当前最新版本是4.0.22/4.1.17。MySQL4.0以上版本可以使用Query Cache大幅度提升性能(需要在my.ini里面设置)。MySQL4.1以上采用新的协议,速度更提升30%以上,内存占用更少。
对于MySQL4.1.x版本,PHP 5.x在原有mysql扩展之外提供了专有mysqli函数扩展连接MySQL4.1.x版本,这样在MySQL4.1.x下,使用mysqli扩展相对于使用mysql扩展可以提升数十倍的SQL操作速度。极致论坛程序自带的使用的是mysql扩展,我们另外提供了单独出售的极致论坛mysqli扩展模块,您可以选购使用。
对于Windows主机,安装mysqld-nt即可,没必要使用mysqld-max-nt。
注意:如果您在Windows下面运行MySQL 4.0.x,您需要手工对每个数据表执行如下SQL操作,才能确保您的数据库稳定不会出现数据表错误:
ALTER TABLE table_name type=MyISAM;
其中table_name是数据表的名称。
对于Linux主机,可以安装glibc,当前最新版本2.3.3,下载地址 然后安装里面的LinuxThreads。可以参考
对于FreeBSD主机,也可以安装LinuxThreads,就是编译比较麻烦。
文章内容有点多,但是要想开发出最好的php程序,就必须学会这些优化方案,这样你开发出的程序才会更完美你。
以上是最全的php服务器性能优化配置方案的详细内容。更多信息请关注PHP中文网其他相关文章!

PHP和Python各有优势,选择应基于项目需求。1.PHP适合web开发,语法简单,执行效率高。2.Python适用于数据科学和机器学习,语法简洁,库丰富。

PHP不是在消亡,而是在不断适应和进化。1)PHP从1994年起经历多次版本迭代,适应新技术趋势。2)目前广泛应用于电子商务、内容管理系统等领域。3)PHP8引入JIT编译器等功能,提升性能和现代化。4)使用OPcache和遵循PSR-12标准可优化性能和代码质量。

PHP的未来将通过适应新技术趋势和引入创新特性来实现:1)适应云计算、容器化和微服务架构,支持Docker和Kubernetes;2)引入JIT编译器和枚举类型,提升性能和数据处理效率;3)持续优化性能和推广最佳实践。

在PHP中,trait适用于需要方法复用但不适合使用继承的情况。1)trait允许在类中复用方法,避免多重继承复杂性。2)使用trait时需注意方法冲突,可通过insteadof和as关键字解决。3)应避免过度使用trait,保持其单一职责,以优化性能和提高代码可维护性。

依赖注入容器(DIC)是一种管理和提供对象依赖关系的工具,用于PHP项目中。DIC的主要好处包括:1.解耦,使组件独立,代码易维护和测试;2.灵活性,易替换或修改依赖关系;3.可测试性,方便注入mock对象进行单元测试。

SplFixedArray在PHP中是一种固定大小的数组,适用于需要高性能和低内存使用量的场景。1)它在创建时需指定大小,避免动态调整带来的开销。2)基于C语言数组,直接操作内存,访问速度快。3)适合大规模数据处理和内存敏感环境,但需谨慎使用,因其大小固定。

PHP通过$\_FILES变量处理文件上传,确保安全性的方法包括:1.检查上传错误,2.验证文件类型和大小,3.防止文件覆盖,4.移动文件到永久存储位置。

JavaScript中处理空值可以使用NullCoalescingOperator(??)和NullCoalescingAssignmentOperator(??=)。1.??返回第一个非null或非undefined的操作数。2.??=将变量赋值为右操作数的值,但前提是该变量为null或undefined。这些操作符简化了代码逻辑,提高了可读性和性能。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript开发工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

Atom编辑器mac版下载
最流行的的开源编辑器