Apache PHP配置文件详解
简介
Apache PHP配置文件是Apache服务器与PHP运行环境之间的重要桥梁,它决定了PHP在Apache服务器上的运行方式和性能,本文将详细介绍Apache PHP配置文件的相关知识,包括文件结构、配置项以及常用配置方法。
文件结构
Apache PHP配置文件主要包括以下几个部分:
配置项详解
全局配置
(1)memory_limit:设置PHP内存限制,单位为字节,memory_limit = 128M。
(2)error_reporting:设置错误报告级别,如E_ALL、E_STRICT等。
(3)display_errors:设置是否显示错误信息,true表示显示,false表示不显示。
(4)date.timezone:设置时区,如Asia/Shanghai。
模块配置
(1)extension_dir:设置PHP扩展模块目录。
(2)extension=xxx.so:加载PHP扩展模块。
目录配置
(1)index:设置默认索引文件,如index.php、index.html等。
(2)AllowOverride:设置目录访问控制,如None、All等。
(3)DirectoryIndex:设置目录下的默认文件。
文件配置
(1)add_header:添加HTTP头信息。
(2)content_encoding:设置文件编码,如gzip、deflate等。
常用配置方法
修改配置文件
(1)打开Apache配置文件,如httpd.conf。
(2)找到相关配置项,进行修改。
(3)保存并重启Apache服务器。
使用PHP.INI文件
(1)创建或修改PHP.INI文件。
(2)设置PHP参数。
(3)将PHP.INI文件放置在Apache服务器指定目录。
(4)重启Apache服务器。
问题:如何设置PHP内存限制?
解答:在Apache PHP配置文件中,找到全局配置部分,将memory_limit参数的值设置为所需内存大小,单位为字节,memory_limit = 128M。
问题:如何加载PHP扩展模块?
解答:在Apache PHP配置文件中,找到模块配置部分,使用extension=xxx.so命令加载所需扩展模块,extension=php_mysql.so。
Apache PHP配置文件是Apache服务器与PHP运行环境之间的重要桥梁,正确配置Apache PHP配置文件可以提高PHP在Apache服务器上的运行性能,本文详细介绍了Apache PHP配置文件的结构、配置项以及常用配置方法,希望能对大家有所帮助。
Apache服务器中prefork和worker工作模式的区别以及性能优化
1、RedHat Linux下查看apache版本号在Apache安装目录bin下,使用以下命令查看即可。 使用命令:./httpd -v示例:2、查看Apache当前工作模式Apache有prefork和worker工作模式使用命令:./apachectl –l示例:从以上结果可知,当时httpd工作在prefork模式下。 在configure时,可以通过指定参数,将工作模式设置为worker模式或prefork模式。 使用命令:./configure --with-mpm=worker示例:设置为worker模式Apache服务的两种工作模式详解:prefork的工作原理及配置如果不用“--with-mpm”显式指定某种MPM,prefork就是Unix平台上缺省的MPM。 它所采用的预派生子进程方式也是Apache 1.3中采用的模式。 prefork本身并没有使用到线程,2.0版使用它是为了与1.3版保持兼容性;另一方面,prefork用单独的子进程来处理不同的请求,进程之间是彼此独立的,这也使其成为最稳定的MPM之一。 若使用prefork,在make编译和make install安装后,使用“httpd -l”来确定当前使用的MPM,应该会看到prefork.c(如果看到worker.c说明使用的是worker MPM,依此类推)。 再查看缺省生成的配置文件,里面包含如下配置段:StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0prefork的工作原理是,控制进程在最初建立“StartServers”个子进程后,为了满足MinSpareServers设置的需要创建一个进程,等待一秒钟,继续创建两个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32个,直到满足MinSpareServers设置的值为止。 这就是预派生(prefork)的由来。 这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能。 MaxSpareServers设置了最大的空闲进程数,如果空闲进程数大于这个值,Apache会自动kill掉一些多余进程。 这个值不要设得过大,但如果设的值比MinSpareServers小,Apache会自动把其调整为MinSpareServers+1。 如果站点负载较大,可考虑同时加大MinSpareServers和MaxSpareServers。 MaxRequestsPerChild设置的是每个子进程可处理的请求数。 每个子进程在处理了“MaxRequestsPerChild”个请求后将自动销毁。 0意味着无限,即子进程永不销毁。 虽然缺省设为0可以使每个子进程处理更多的请求,但如果设成非零值也有两点重要的好处:◆ 可防止意外的内存泄漏;◆ 在服务器负载下降的时侯会自动减少子进程数。 因此,可根据服务器的负载来调整这个值。 个人认为左右比较合适。 MaxClients是这些指令中最为重要的一个,设定的是Apache可以同时处理的请求,是对Apache性能影响最大的参数。 其缺省值150是远远不够的,如果请求总数已达到这个值(可通过ps -ef|grep http|wc -l来确认),那么后面的请求就要排队,直到某个已处理请求完毕。 这就是系统资源还剩下很多而HTTP访问却很慢的主要原因。 系统管理员可以根据硬件配置和负载情况来动态调整这个值。 虽然理论上这个值越大,可以处理的请求就越多,但Apache默认的限制不能大于256。 如果把这个值设为大于256,那么Apache将无法起动。 事实上,256对于负载稍重的站点也是不够的。 在Apache 1.3中,这是个硬限制。 如果要加大这个值,必须在“configure”前手工修改的源代码树下的src/include/httpd.h中查找256,就会发现“#define HARD_SERVER_LIMIT 256”这行。 把256改为要增大的值(如4000),然后重新编译Apache即可。 在Apache 2.0中新加入了ServerLimit指令,使得无须重编译Apache就可以加大MaxClients。 下面是prefork配置段:StartServers 10 MinSpareServers 10 MaxSpareServers 15 ServerLimit 2000 MaxClients 1000 MaxRequestsPerChild 上述配置中,ServerLimit的最大值是2000,对于大多数站点已经足够。 如果一定要再加大这个数值,对位于源代码树下server/mpm/prefork/prefork.c中以下两行做相应修改即可:#define DEFAULT_SERVER_LIMIT 256#define MAX_SERVER_LIMIT 2000worker的工作原理及配置相对于prefork,worker是2.0 版中全新的支持多线程和多进程混合模型的MPM。 由于使用线程来处理,所以可以处理相对海量的请求,而系统资源的开销要小于基于进程的服务器。 但是,worker也使用了多进程,每个进程又生成多个线程,以获得基于进程服务器的稳定性。 这种MPM的工作方式将是Apache 2.0的发展趋势。 在configure -with-mpm=worker后,进行make编译、make install安装。 在缺省生成的中有以下配置段:StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0worker的工作原理是,由主控制进程生成“StartServers”个子进程,每个子进程中包含固定的ThreadsPerChild线程数,各个线程独立地处理请求。 同样,为了不在请求到来时再生成线程,MinSpareThreads和MaxSpareThreads设置了最少和最多的空闲线程数;而MaxClients设置了所有子进程中的线程总数。 如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进程。 MinSpareThreads和MaxSpareThreads的最大缺省值分别是75和250。 这两个参数对Apache的性能影响并不大,可以按照实际情况相应调节。 ThreadsPerChild是worker MPM中与性能相关最密切的指令。 ThreadsPerChild的最大缺省值是64,如果负载较大,64也是不够的。 这时要显式使用ThreadLimit指令,它的最大缺省值是。 上述两个值位于源码树server/mpm/worker/worker.c中的以下两行:#define DEFAULT_THREAD_LIMIT 64#define MAX_THREAD_LIMIT 这两行对应着ThreadsPerChild和ThreadLimit的限制数。 最好在configure之前就把64改成所希望的值。 注意,不要把这两个值设得太高,超过系统的处理能力,从而因Apache不起动使系统很不稳定。 Worker模式下所能同时处理的请求总数是由子进程总数乘以ThreadsPerChild值决定的,应该大于等于MaxClients。 如果负载很大,现有的子进程数不能满足时,控制进程会派生新的子进程。 默认最大的子进程总数是16,加大时也需要显式声明ServerLimit(最大值是)。 这两个值位于源码树server/mpm/worker/worker.c中的以下两行:#define DEFAULT_SERVER_LIMIT 16#define MAX_SERVER_LIMIT 需要注意的是,如果显式声明了ServerLimit,那么它乘以ThreadsPerChild的值必须大于等于MaxClients,而且MaxClients必须是ThreadsPerChild的整数倍,否则Apache将会自动调节到一个相应值(可能是个非期望值)。 下面是worker配置段:StartServers 3 MaxClients 2000 ServerLimit 25 MinSpareThreads 50 MaxSpareThreads 200 ThreadLimit 200 ThreadsPerChild 100 MaxRequestsPerChild 0通过上面的叙述,可以了解到Apache 2.0中prefork和worker这两个重要MPM的工作原理,并可根据实际情况来配置Apache相关的核心参数,以获得最大的性能和稳定性。
求windows下PHP+apache+mysql+phpmyadmin的完整配置方法
先从各官方网站下了APACHE2.050、PHP5、MYSQL4.0.20、PHPMYADMIN2.57 apache_2.0.50-win32-x86-no_ 操作系统 win2003 系统盘为: D盘 第一步: 安装apache 并配置支持PHP 点击安装文件apache_2.0.50-win32-x86-no_ 将apache安装在 D:\apache2 目录(随自己喜好)下 将 里内容解压到 D:\php 里 找到 php目录里的 -dist 重命名为 并拷到 windows目录里(win2k 里为winnt) 如我的是拷到 D:\windows目录 再将php目录里的 , 拷到系统目录(system/system32) 如我的是D:\windows\system里 配置apache里的 打开 D:\Apache2\conf\ 这个文件 找到 AddDefaultCharset ISO-8859-1 将其改为 AddDefaultCharset GB2312 (让默认语言编码为简体中文) 找到 Documentroot D:/Apache2/htdocs 将其改为你的WEB目录(可不改)如我的为 DocumentRoot D:/website 找到 DirectoryIndex 在后面加入 选择安装模式: 模块化模式安装 或 CGI模式安装 (选一样即可) --------------模块化安装配置------------------------------------ 找到 #LoadModule ssl_module modules/mod_ 这行,在此行后加入一行 LoadModule php5_module d:/php/ 其中d:/php/ 为你php目录中所在的位置 找到 AddType application/x-gzip 这行,在此行后加入一行 AddType application/x-httpd-php --------------------------------------------------------------- --------------CGI安装配置-------------------------------------- 找到 AddType application/x-gzip 这行,加入如下即可 ScriptAlias /php/ d:/php/ AddType application/x-httpd-php Action application/x-httpd-php /php/ --------------------------------------------------------------- 此时PHP环境基本已经配置成功 在WEB根目录(如我的D:\website)里建一个名为的文件内容如下重新启动apache服务 用浏览器打开如果可以看到php配置输出信息就OK了 第二步 安装mysql 将mysql安装到指定目录,如我的是d:/mysql 如下载的是非安装的mysql压缩包,直接解压到指定目录就可以了 然后点击D:\mysql\bin\这个文件其中D:\mysql是你的mysql安装目录 输入winmysqladmin的初始用户、密码(注:这不是mysql里的用户、密码)随便填不必在意 确定之后你的右下角任务的启动栏会出现一个红绿灯的图标,红灯亮代表服务停止,绿灯亮代表服务正常,左击这个图标->winnt->install the service 安装此服务 再左击这个图标->winnt->start the service 启动mysql服务 修改mysql数据库的root密码 用cmd进入命今行模式输入如下命令: ( 注: d:\mysql 为mysql安装目录) cd d:\mysql\bin mysqladmin -u root -p password 回车出现 Enter password: ( 注:这是叫你输入原密码. 刚安装时密码为空,所以直接回车即可) 此时mysql 中账号 root 的密码 被改为 安装完毕 三、配置并测试mysql(为 d:\windows下的 ) 找到extension_dir = ./ 改为 extension_dir = d:/php/ext 找到 ;extension=php_ 将;去掉改为 extension=php_ 找到 ;_path = /tmp 将;去掉 设置你保存session的目录,如 _path = D:/php/session_temp; 重启apache服务 在Web根目录下(如 D:\website)建立文件内容如下:用浏览器打开如果输出success就OK了 四、phpmyadmin的安装配置 将解压到WEB根目录中去,重命名文件夹为phpmyadmin或其它 打开phpmyadmin 目录中的 找到 $cfg[Servers][$i][User] = root; $cfg[Servers][$i][password] = ; 分别填上你mysql的用户和密码即可 如不是本地使用,最好加上验证 不知道写得对不对!不过我基本上就是这样配的! 对于学习来讲应该差不多了吧?
apache+php+mysql 的配置教程
【一】: 安装apache点击安装文件apache_2.0.43-win32-x86-no_ (如果你的电脑已装有IIS,请记住更改APACHE的端口, 里面的listen 80
将80改成其它,如90,以后就要加上端口号,如)将apache安装在 C:\apache2 目录(目录自定义)将 里内容解压到 C:\php 里找到 php目录里的 -dist 重命名为 (如果已经有,把已经有的删掉)并拷到 windows系统目录里如我的是拷到 C:\windows目录再将php目录里的 , 拷到 系统目录(system/system32) 如我的是C:\windows\system里
配置apache里的打开 C:\Apache2\conf\ 这个文件找到 AddDefaultCharset ISO-8859-1 将其改为 AddDefaultCharset GB2312 (让默认语言编码为简体中文)找到 DocumentRoot C:/Apache2/htdocs 将其改为你的WEB目录(可不改)如我的为 DocumentRoot C:/website找到 DirectoryIndex 在后面加入
选择安装模式: 模块化模式安装
--------------模块化安装配置------------------------------------找到 #LoadModule ssl_module modules/mod_ 这行,在此行后加入一行LoadModule php5_module C:/php/其中C:/php/ 为你php目录中所在的位置找到 AddType application/x-gzip (或者AddType application/x-tar ) 这行,在此行后加入一行AddType application/x-httpd-php ---------------------------------------------------------------
此时PHP环境基本已经配置成功在WEB根目录(如我的C:\website)里建一个名为的文件内容如下重新启动apache服务用浏览器打开如果可以看到php配置输出信息就OK了
【二】:安装mysql
mysql-5.0.11-beta-win32文件夹里面的点击安装就可以。
注意:1、安装目录可以选C盘;2、提示你输入密码的时候输入 ;3、跳过sign in(注册) ,直接安装。
【三】、配置并测试mysql(为 C:\windows下的 )
找到extension_dir = ./ 改为 extension_dir = C:/php/ext找到;extension=php_将;去掉改为extension=php_找到;_path = /tmp将;去掉 设置你保存session的目录,如_path = C:/php/session_temp (确保里面有这个文件夹 若没有新建)
重启apache服务
安装成功测试:把此文件夹 phpMyAdmin拷贝到 C:\website 里面(确保phpMyAdmin是顶级目录,打开phpMyAdmin后就能看到libraries,scripts等文件夹
和文件)确保 服务里面的MySQL服务已经启动(一般默认已启动)用浏览器打开若能访问 MySQL即安装成功。














发表评论