Code前端首页关于Code前端联系我们

apachephpmod的简单介绍

terry 2年前 (2023-09-30) 阅读数 28 #PHP
文章标签 PHP的Explode函数

本文目录一览:

  • 1、apache_mod_php
  • 2、怎样在apache2.2.17中加载PHP模块
  • 3、Apache2.2+PHP+mod_fcgid配置完成后Apache2.2启动成功,但是测试index.php报错
  • 4、怎样在Apache里修改PHP的配置

apache_mod_php

 Apache对于php的解析,就是通过众多Module中的php Module来完成的,加载php是通过php5这个模块来实现的,下面通过图来说明Apache加载php模块的过程及代码如何加载php。

把php最终集成到Apache系统中,还需要对Apache进行一些必要的设置。这里,我们就以php的mod_php5 SAPI运行模式为例进行讲解,至于SAPI这个概念后面我们还会在其它的文章中讲解。

假定我们安装的版本是Apache2 和 Php5,那么需要编辑Apache的主配置文件http.conf,在其中加入下面的几行内容:

Unix/Linux环境下:

LoadModule php5_module modules/mod_php5.so

AddType application/x-httpd-php .php

注:其中modules/mod_php5.so 是X系统环境下mod_php5.so文件的安装位置。

Windows环境下:

LoadModule php5_module d:/php/php5apache2.dll

AddType application/x-httpd-php .php

注:其中d:/php/php5apache2.dll 是在Windows环境下php5apache2.dll文件的安装位置。

这两项配置就是告诉Apache Server,以后收到的Url用户请求,凡是以php作为后缀,就需要调用php5_module模块(mod_php5.so/ php5apache2.dll)进行处理。

怎样在apache2.2.17中加载PHP模块

打开apache官方网站 或者镜像网站 ,下载里面的apache_2.2.17-win32-x86-no_ssl.msi安装文件。其中,同一版本有两种类型:no_ssl和openssl,openssl多了个ssl安全认证模式,它的协议是HTTPS而不是HTTP,这就是带有SSL的服务器与一般网页服务器的区别了。一般情况下,我们下载no_ssl版本的就ok了。下载好apache安装文件后,点击安装,在连续3次next后,将进入server information配置界面,要求输入network domain、server domain和网站管理员的邮箱地址,普通用户可以随便按照格式填一下就行了。再次按Next后,出现选择安装路径的界面,默认的路径比较长,pharmar把安装路径修改为:“D:\Program Files\Apache\”,继续安装,直到完成。安装完毕,apache就自动启动,可以测试apache是否成功启动。在浏览器地址栏里输入: 或 ,如果出现“It works.”,那么恭喜你,apache已经成功安装了;同时在电脑右下角的任务栏里有一个绿色的apache服务器运行图标。apache还有一个配置文件:httpd:conf 需要配置,以便php运行。位置为:D:\Program Files\Apache\conf目录里。打开httpd:conf:

1)、查找“DocumentRoot”,这里是指定主页放置的目录。默认是:“D:\Program Files\Apache\htdocs”,你可以使用默认的目录,也可以自己定义一个,如:“D:/PHP”。注意:目录末尾不要加“/”。

2)、查找“DirectoryIndex”,这里是默认首页文件名,可以在index.html 的后面加入index.php等。每种类型之间都要留一个空格。

3)、查找

Directory /

Options FollowSymLinks

AllowOverride None

Order deny,allow

Deny from all

/Directory

修改为:

Directory /

Options FollowSymLinks

AllowOverride None

Order deny,allow

allow from all

/Directory

如果不改这里的话,可能会出现 You don't have permission to access / on this server. 这样的错误提示,尤其在改变了默认主页的路径后。注意:每次修改httpd:conf文件后,都要重启apache服务器。另外,如果你的win32系统上同时也运行iis服务器,那么就要先停止iis服务器的运行,然后再启动apache,否则apache服务器无法启动。

Php的安装与配置方法首先从php的官方网站 下载windows版本的,有两种版本:PHP 5.3.4 zip package和PHP 5.3.4 installer,目前最新版本就是5.3.4,pharmar使用的是5.3.4版本。PHP 5.3.4installer为自动安装方式,虽然比较自动化,但在很多方面受到限制,因此pharmar不推荐使用这种方式,下面介绍PHP 5.3.4zip package压缩包方式下的手动安装。1)、将PHP的压缩包zip解压到一个目录下,推荐:“C:/PHP”,pharmar的是D:\Program Files\Php。

2)、将PHP目录(D:\Program Files\Php)下的 php.ini-dist 文件重命名为 php.ini,PHP的配置文件就是它,修改以下几个地方,修改好后把 php.ini 文件复制到 C:\WINDOWS\ 目录里:

extension_dir="D:\Program Files\Php\ext" ,指向php文件夹下放置“php_*.dll”文件的路径。PHP4和PHP5的路径在这里有所区别。

doc_root="D:\PHP" ,指向前面apache设置的首页位置;

default_charset="gb2312" ,修改默认字符集,这里,如果前面有分号“;”,去掉这个分号;

register_globals=Off 改为 register_globals=On ,使传递全局变量有效;

extension=php_dba.dll 如果前面有分号,取消分号,以下同;

extension=php_dbase.dll

extension=php_gd2.dll GD库做图,一般用于图形验证码;

extension=php_mysql.dll 用于连接MYSQL数据库;

3)、将PHP目录下的 php5ts.dll 文件拷贝到 C:\WINDOWS\system32 目录。

4)、最后修改 Apache 的 httpd.conf 文件。在该文件的末尾添加如下2行,表示以模块方式安装PHP进入Apache:

LoadModule php5_module D:/Program Files/Php/php5apache2_2.dll

AddType application/x-httpd-php .php注意:第一行的目录路径要更新为当前版本的apache动态链接库,比如这里我使用的是apache2.2.17版本和php5.3.4,那这个文件必须是php5apache2_2.dll,而不能是php5apache.dll、php5apache2.dll等。第二行为php脚步的后缀。

php4版中,需要添加一行 AddType mod_php4.c,而在php5中,就不需要这样的一行 AddType mod_php5.c了,php5已经集成,否则 apache 启动不了。以上就完成了apache和php的配置过程了,重启apache。在服务器的默认目录“D:\Program Files\Apache\htdocs”里新建文件index.php,写上如下代码:

?php

phpinfo();

?

在浏览器地址栏里输入 或 ,你就会看到php版本信息了。到此为止,php和apache就已经成功的安装了。这里有个细节:apache的配置文件 httpd.conf 中的目录分割符号是“/”,而 PHP 的配置文件 php.ini 里的目录则要求是反斜线 “ \”,不要搞混了哦。MYSQL的安装就简单了。到官方网站 ,下载windows平台下的 mysql ,选择 Windows ZIP/Setup.EXE (x86) 最新版本是 5.1.51 ,下载即可。直接安装,安装完成后,可以进入配置向导,设置mysql数据库密码。一切OK。

关于mysql的安装与配置见:phpMyAdmin安装配置方法和问题解决

pharmar安装过程中遇到的错误:

在 Windows 下安装 PHP 后 Apache 出现 LoadModule takes two arguments 的错误,这个主要原因就是httpd.conf中的这句:

LoadModule php5_module D:\Program Files\PHP\php5apache2_2.dll

解释程序把Program Files中的空格当成了两个参数的分隔符号,因此语句中不能出现空格。在网上找了半天也没找到解决方法,最后用一级目录符号才解决问题,改成如下:

LoadModule php5_module ../php/php5apache2_2.dll

因为apache安装在D:\Program Files\Apache\目录下,PHP安装在D:\Program Files\php\,因此../就表示D:\Program Files\目录,这个终于搞定了,希望大家在安装与配置过程中多动动脑筋总会有办法的。

Apache2.2+PHP+mod_fcgid配置完成后Apache2.2启动成功,但是测试index.php报错

根据提示,你无权访问这个文件,查看文件以及文件夹是否有读取权限

怎样在Apache里修改PHP的配置

当使用

PHP

作为

Apache

模块时,也可以用

Apache

的配置文件(例如

httpd.conf)和

.htaccess

文件中的指令来修改

PHP

的配置设定。需要有“AllowOverride

Options”或“AllowOverride

All”权限才可以。

有几个

Apache

指令可以使用户在

Apache

配置文件内部修改

PHP

的配置。哪些指令属于

PHP_INI_ALL,PHP_INI_PERDIR

PHP_INI_SYSTEM

中的哪一个,请参考附录中的

php.ini

配置选项列表。

php_value

name

value

设定指定的值。只能用于

PHP_INI_ALL

PHP_INI_PERDIR

类型的指令。要清除先前设定的值,把

value

设为

none。

不要用

php_value

设定布尔值。应该用

php_flag。

php_flag

name

on|off

用来设定布尔值的配置指令。仅能用于

PHP_INI_ALL

PHP_INI_PERDIR

类型的指令。

php_admin_value

name

value

设定指定的指令的值。不能用于

.htaccess

文件。任何用

php_admin_value

设定的指令都不能被

.htaccess

virtualhost

中的指令覆盖。要清除先前设定的值,把

value

设为

none。

php_admin_flag

name

on|off

用来设定布尔值的配置指令。不能用于

.htaccess

文件。任何用

php_admin_flag

设定的指令都不能被

.htaccess

virtualhost

中的指令覆盖Apache

配置例子:

IfModule

mod_php5.c

php_value

include_path

".:/usr/local/lib/php"php_admin_flag

engine

on

/IfModule

IfModule

mod_php4.c

php_value

include_path

".:/usr/local/lib/php"php_admin_flag

engine

on

/IfModule

注意:PHP

常量不存在于

PHP

之外。例如在

httpd.conf

中不能使用

PHP

常量如

E_ALL

E_NOTICE

来设定

error_reporting

指令,因为其无意义,实际等于

0。应该用相应的掩码值来替代。这些常量可以在

php.ini

中使用。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门