1. 如何配置apache支持php
编译安装php,并且把php模块放到apahce里,然后apache conf中添加php模块配置 apache要开启模块加载模式 #./configure --prefix=/usr/apache2 --enable-mole=so --enable-ssl 配置文件加入 LoadMole php5_mole moles/libphp5.so php编译模块到moles目录下 #./configure --prefix=/usr/php5 --with-apxs2=/usr/apache2/bin/apxs --with-mysql=/usr/mysql --with-curl=/usr/include/curl --with-zlib --with-gd --enable-mbstring
2. apache怎么加载php
Apache对于php的解析,就是通过众多Mole中的php Mole来完成的,加载php是通过php5这个模块来实现的,下面通过图来说明Apache加载php模块的过程及代码如何加载php。
把php最终集成到Apache系统中,还需要对Apache进行一些必要的设置。这里,我们就以php的mod_php5 SAPI运行模式为例进行讲解,至于SAPI这个概念后面我们还会在其它的文章中讲解。
假定我们安装的版本是Apache2 和 Php5,那么需要编辑Apache的主配置文件http.conf,在其中加入下面的几行内容:
Unix/Linux环境下:
LoadMole php5_mole moles/mod_php5.so
AddType application/x-httpd-php .php
注:其中moles/mod_php5.so 是X系统环境下mod_php5.so文件的安装位置。
Windows环境下:
LoadMole php5_mole d:/php/php5apache2.dll
AddType application/x-httpd-php .php
注:其中d:/php/php5apache2.dll 是在Windows环境下php5apache2.dll文件的安装位置。
这两项配置就是告诉Apache Server,以后收到的Url用户请求,凡是以php作为后缀,就需要调用php5_mole模块(mod_php5.so/ php5apache2.dll)进行处理。
3. 弱弱的问下,如何在apache下运行php程序
1、如果你只是测试用,apache/php/mysql都没必要自己装,直接下载一个apmserv这样的软件,绿色的,一键启动这些程序。
2、默认的网站根目录是在apache安装目录下的htdocs文件夹下,把你的网站放那去就行了,也可以确认一下,打开apache安装目录下的conf文件夹,用记事本之类打开httpd.conf,搜索一下DocumentRoot,看看它的值在哪,那个就是网站根目录。
4. apache怎么启动php
首先apache是服务器,不能直接运行php文件。 解决方法: 安装php,从php官网下载php安装包。配置好php环境。(或者使用ampz,phpstudy这些软件便捷安装php以及Apache服务器环境) 将php文件放在网站根目录下。 打开浏览器在地址栏中键入Localhos.
5. apache配置文件中怎么配置php
1.新建一个文件建立三个文件,分别为apache,php,mysql 等子文件夹。
2.分别下载好不同软件。
3.下载好完成之后,先测试一下apache是否可以可以访问页面,在页面输入http:localhost,如果可以访则安装成功,反之不成功。
4.配置php的时候,首先检查apache版本和php文件里php5apache2_2.d版本是否相同,如果不相同,改成和apache版本一致。再打开apache文件找到httpd.conf打开:
查找“DocumentRoot”,这里是指定主页放置的目录。默认是:“D:\Program Files\Apache\htdocs”,你可以使用默认的目录,也可以自己定义一个,如:“D:/PHP”。注意:目录末尾不要加“/”。2)、查找“DirectoryIndex”,这里是默认首页文件名,可以在index.html 的后面加入index.php等。每种类型之间都要留一个空格。3)、查找<Directory />Options FollowSymLinksAllowOverride NoneOrder deny,allowDeny from all</Directory>修改为:<Directory />Options FollowSymLinksAllowOverride NoneOrder deny,allowallow from all</Directory>如果不改这里的话,可能会出现 You don't have permission to access / on this server. 这样的错误提示,尤其在改变了默认主页的路径后。
注意:每次修改httpd:conf文件后,都要重启apache服务器。另外,如果你的win32系统上同时也运行iis服务器,那么就要先停止iis服务器的运行,然后再启动apache,否则apache服务器无法启动。
5.php的安装与配置方法
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.dllextension=php_gd2.dll GD库做图,一般用于图形验证码;extension=php_mysql.dll 用于连接MYSQL数据库;3)、将PHP目录下的 php5ts.dll 文件拷贝到 C:\WINDOWS\system32 目录。4)、最后修改 Apache 的 httpd.conf 文件。在该文件的末尾添加如下2行,表示以模块方式安装PHP进入Apache:LoadMole php5_mole D:/Program Files/Php/php5apache2_2.dllAddType application/x-httpd-php .php
注意:第一行的目录路径要更新为当前版本的apache动态链接库,比如这里我使用的是apache2.2.15版本和php5.3.2,那这个文件必须是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,写上如下代码:<?phpphpinfo();?>
在浏览器地址栏里输入 http://127.0.0.1/ 或 http://localhost/ ,你就会看到php版本信息了。到此为止,php和apache就已经成功的安装了。
6. Apache需要将php文件交给PHP解释器处理后再 返回给浏览器,那PHP如何运行的呢
1.我们从未手动开启过PHP的相关进程,它是随着Apache的启动而运行的;
2.PHP通过mod_php5.so模块和Apache相连(具体说来是SAPI,即服务器应用程序编程接口);
3.PHP总共有三个模块:内核、Zend引擎、以及扩展层;
4.PHP内核用来处理请求、文件流、错误处理等相关操作;
5.Zend引擎(ZE)用以将源文件转换成机器语言,然后在虚拟机上运行它;
6.扩展层是一组函数、类库和流,PHP使用它们来执行一些特定的操作。比如,我们需要mysql扩展来连接MySQL数据库;
7.当ZE执行程序时可能会需要连接若干扩展,这时ZE将控制权交给扩展,等处理完特定任务后再返还;
8.最后,ZE将程序运行结果返回给PHP内核,它再将结果传送给SAPI层,最终输出到浏览器上。
7. 如何运行PHP
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
我们要在电脑上运运ASP文件 只要装IIS就可以。
哪要运行PHP文件呢。该怎么办!~
解析:
如何安装运行php
1. Unix/Windows: 我的php.ini 文件应该放在哪?
UNIX下默认它应该放在 /usr/local/lib 目录下。 这是它的 /lib. 很多人册旦芹会在编译时改变它,使用--with-config-file-path 标志。 例如, 你可以这样设它: --with-config-file-path=/etc
然后你可以复制源程序包里的 php.ini-dist 到 /etc/php.ini ,编辑它满足你的本地化需求。
Windows下 php.ini默认的路径是 Windows 系统目录. 如果你在使用 Apache webserver, php.ini 则最先在 Apaches 安装目录下被查找, 例如: c:\program files\apache group\apache. 这样你可以有不同的 php.ini 对应不同版本的 Apache(同一台机器上)。
更多细节请查阅 configuration file.
2. Unix: 我安装了 PHP, 但我每次加载一个文档, 会得到下面的消息: Document Contains No Data ! 怎么回事?
这可能是因为你的 PHP 发生了core-mping错误。 查找你的服务器错误日志文件,看看是否属于这种情况。 然后报告这个错误。如果你知道怎州毕样使用 gdb ,你可以提供一个 backtrace 在你的错误报告里。这将会对开发人员解决 这个问迟带题有很大帮助。如果你是在将PHP作为Apache模块使用,那么请按下面的步骤做:
停止 d 进程
gdb d
停止 d 进程
> run -X -f /path/to/d.conf
浏览你刚才出错的 URL
> run -X -f /path/to/d.conf
如果你还有 core mp, gdb 现在会通知你
打入: bt
在你的 bug report里应该包含backtrace 。 这些会被发往 bugs.php/
如果你的脚本使用了正则表达式函数 (ereg() and friends), 你应该确保你编译 PHP 和 Apache 用的是同一个正则表达式包。 在 PHP 和 Apache 1.3.x 这个过程是自动进行的。
3. Unix: 我使用 RPMS 安装 PHP , 但Apache 不支持 PHP页面! 怎么办?
假设你安装了 Apache 和 PHP(从 RPM ) , 你需要反注释或者增加一些行在你的 .conf 文件里: # Extra MolesAddMole mod_php.cAddMole mod_php3.cAddMole mod_perl.c# Extra MolesLoadMole php_mole moles/mod_php.soLoadMole php3_mole moles/libphp3.so /* for PHP 3 */LoadMole php4_mole moles/libphp4.so /* for PHP 4 */LoadMole perl_mole moles/libperl.so
And add: AddType application/x-d-php3 .php3 /* for PHP 3 */AddType application/x-d-php .php /* for PHP 4 */
... 到全局域里, 或者到你想要的 支持PHP的虚拟域里。
4. 我使用 RPMS 安装 PHP 3 , 但是它没有我需要的数据库选项支持! 我该怎么办?
因为 PHP 3 内建支持的关系, 编译一个完整的可适于所有应用的 PHP RPM是相当困难的。 在 PHP 4有谈到这点。 对 PHP 3, 我们只好建议你使用INSTALL.REDHAT (在 PHP包里)描述的机制。 如果你一定要使用 RPM 版的 PHP 3, 读...
RPM 包管理器设置 RPMS 简单的安装,不带数据库支持 and 因为RPMS 使用 /usr/ 而不是标准的 /usr/local/ 目录存放文件. 你需要告诉 RPM 文件你要支持哪种数据库以及它们的最上级目录的位置。
下面的例子将解释在Apache模式下怎样支持通行的数据库Mysql.
当然所有的这些可以稍作修改,以支持其它的PHP支持的数据库。我们假设你安装了 MySQL and Apache ,完全是用 RPMS 安装的。
首先,移去 mod_php3 : rpm -e mod_php3
然后取得rpm包并安装, 不是 --重编译 rpm -Uvh mod_php3-3.0.5-2.src.rpm
编辑/usr/src/redhat/SPECS/mod_php3.spec 文件
在 %build 一节里增加你想要的数据库支持, 以及路径信息。
对 MySQL 你应该增加: --with-mysql=/usr \
%build 节看起来象: ./configure --prefix=/usr \ --with-apxs=/usr/ *** in/apxs \ --with-config-file-path=/usr/lib \ --enable-debug=no \ --enable-safe-mode \ --with-exec-dir=/usr/bin \ --with-mysql=/usr \ --with-system-regex
改动完成后,象下面这样重编rpm : rpm -bb /usr/src/redhat/SPECS/mod_php3.spec
Then install the rpm rpm -ivh /usr/src/redhat/RPMS/i386/mod_php3-3.0.5-2.i386.rpm
重启 Apache,你已经得到了rpm下的Mysq
l的支持。 注意到这种做法比你重新得到一个 PHP 3 的tarball 代码,按照 INSTALL.REDHAT 的指引一步一步做要容易得多。
5. Unix: 我用 FrontPage 扩展包对Apache打了补丁, 忽然 PHP 停止工作。 是PHP 和 Apache FrontPage 包不兼容吗 ?
不是, PHP 和 FrontPage扩展包运行得很好.。问题是FrontPage 包修改了几个Apache 结构参数,而PHP要用到它们.在FrontPage扩展包被打上后, 重新编译 PHP (使用 make clean ; make ) ,会解决这个问题。
6. Unix/Windows: 我安装了PHP,但在浏览器里看我的PHP页面时,空白一片。
在浏览器里用 查看源文件 看你的脚本,你可能会发现你看到的是源程序。 这表示 web server 并没有送脚本到PHP去执行。肯定是服务器配置上哪儿出了错。 仔细检查PHP安装的 server 配置。
7. Unix/Windows: 我安装了PHP,但在浏览器里看我的 PHP页面时,我得到一个 server 500 error。
这是服务器在运行 PHP 时发生了错误。 为了看到可读的错误信息,在命令行,改变目录到 (php.exe Windows)所在目录, 运行 php -i. 如果有任何问题,详细的错误信息就显示出来了,它会告诉你下一步该做什么。 如果你得到满屏的HTML代码 (phpinfo() 函数的输出), 那么PHP工作正常,这个错误就是由于服务器配置引发的,应该仔细检查。
8. 某些操作系统: 我安装PHP没出错,可是我启动Apache时,得到一个 undefined symbol errors: [mybox:user /src/php4] root# apachectl configtest apachectl: /usr/local/apache/bin/d Undefined symbols: _press _unpress
这个问题其实与 PHP 无关, 而与 MySQL 客户端库有关。 --with-zlib,有些操作系统需要,而有些不需要。MySQL FAQ已经讲述了这个问题。
9. Windows: 我安装了PHP,但在浏览器里看我的PHP页面, 得到如下错误: cgi error: The specified CGI application mi *** ehaved by not returning a plete set of HTTP headers. The headers it did return are:
这是 PHP 根本没有产生任何输出。 为了看到可读的错误信息,在命令行,改变目录到 (php.exe Windows)所在目录, 运行 php -i. 如果有任何问题,详细的错误信息就显示出来了,它会告诉你下一步该做什么。 如果你得到满屏的HTML代码 (phpinfo() 函数的输出), 那么PHP工作正常。
一旦PHP在命令行模式下工作,再看看你的脚本程序, 它还是失败,可能是因为以下原因:
你的PHP脚本的权限许可。 php.exe, php4ts.dll, php.ini 或者任何你可能装入的PHP文件,它样都必须能被匿名 inter 用户 ISUR_ 访问。
脚本文件根本不存在(或者不是你认为的位置。)请注意在IIS里,你能够阻塞这个错误,做法是在设置脚本映射目录时, 选上 check file exists 框。这样如果脚本不存在,服务器会返回一个404错误。 这样做也有其它的一些好处, 就是IIS仅为你做经过授权的操作。
10. Windows: 我严格按照install的要求做,可是还是不能让我的php在IIS下工作。
确定任何想要运行PHP的用户有操作php.exe的权限! IIS 使用匿名的inter用户,它是在IIS安装时系统自动增加的。 这个用户需要操作 php.exe的权限. 还有,任何需要授权的用户也必须有访问 php.exe的权限。 在 IIS4下,你要告诉它PHP是一个脚本引擎。