好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

apach配置php apache配置php解析

很多站长朋友们都不太清楚apach配置php,今天小编就来给大家整理apach配置php,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 如何配置apache支持php 2、 请问php在apache下运行有几种模式,区别是什么?该怎样设置,谢谢 3、 PHP运行于Apache 模块方式 如何配置apache支持php

编译安装php,并且把php模块放到apahce里,然后apache conf中添加php模块配置 apache要开启模块加载模式 #./configure --prefix=/usr/apache2 --enable-module=so --enable-ssl 配置文件加入 LoadModule php5_module modules/libphp5.so php编译模块到modules目录下 #./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

请问php在apache下运行有几种模式,区别是什么?该怎样设置,谢谢

分类: 电脑/网络 >> 程序设计 >> 其他编程语言

解析:

Windows 下有两种方法使 PHP 工作于 Apache 2.0.x 之中。一种是 使用 CGI 可执行程序,另一种是适用 Apache 模块的 DLL。不管哪种都需要编辑 d.conf 来配置 Apache 支持 PHP 并重新启动服务器。

注: 记住在 Windows 下给 Apache 的配置文件中加入路径值的时候,所有的反斜线例如 c:\directory\file.ext 必须转换成正斜线,如 c:/directory/file.ext。

以 CGI 方式安装

需要将以下三行加入到 Apache 的 d.conf 配置文件中以设定 CGI: 例子 6-5. PHP 在 Apache 2.0 中的 CGI 方式

ScriptAlias /php/ "c:/php/"

AddType application/x-d-php .php

# 对 PHP 4 用这行

Action application/x-d-php "/php/php.exe"

# 对 PHP 5 用这行

Action application/x-d-php "/php/php-cgi.exe"

警告

如果使用 CGI 方式安装,则服务器对于某些可能的攻击是开放的。请阅读 CGI 安全一章以学习如何防御这些攻击。

以 Apache 模块方式安装

需要将以下两行加入到 Apache 的 d.conf 配置文件中以设定 Apache 2.0 的 PHP 模块: 例子 6-6. PHP 在 Apache 2.0 中的模块方式

# 对 PHP 4 用这两行:

LoadModule php4_module "c:/php/php4apache2.dll"

# 别忘了从 sapi 目录中把 php4apache2.dll 拷贝出来!

AddType application/x-d-php .php

# 对 PHP 5 用这两行:

LoadModule php5_module "c:/php/php5apache2.dll"

AddType application/x-d-php .php

# 配置 php.ini 的路径

PHPIniDir "C:/php"

注: 记得用自己 PHP 实际所在的路径替换掉上例中的 c:/php/。要留意在 LoadModule 指令中用的是 php4apache2.dll 或 php5apache2.dll,而不是 php4apache.dll 或 php5apache.dll,后者是设计用于 Apache 1.3.x 的。

注: 如果要使用内容协商机制,请阅读有关 FAQ。

警告

不要在安装中混合使用来自不同 PHP 版本的 DLL。使用下载回来的 PHP 版本中所提供的 DLL 和扩展库是唯一选择。

PHP运行于Apache 模块方式

当使用 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。

Note: 不要用 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 中的指令覆盖。

Example #1 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>

Caution

PHP 常量不存在于 PHP 之外。例如在 httpd.conf 中不能使用 PHP 常量如 E_ALL 或 E_NOTICE 来设定 error_reporting 指令,因为其无意义,实际等于 0。应该用相应的掩码值来替代。这些常量可以在 php.ini 中使用。

通过 Windows 注册表修改 PHP 配置

在 Windows 下运行 PHP 时,可以用 Windows 注册表以目录为单位来修改配置。配置值存放于注册表项 HKLM\SOFTWARE\PHP\Per Directory Values 下面,子项对应于路径名。例如对于目录 c:\inetpub\wwwroot 的配置值会存放于 HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot 项下面。其中的设定对于任何位于此目录及其任何子目录的脚本都有效。项中的值的'名称是 PHP 配置指令的名字,值的数据是字符串格式的指令值。值中的 PHP 常量不被解析。不过只有可修改范围是 PHP_INI_USER 的配置值可以用此方法设定,PHP_INI_PERDIR 的值就不行。

其它接口下的 PHP

无论怎样运行 PHP,都可以在脚本中通过 ini_set() 而在运行时修改某个值。更多信息见手册中 ini_set() 的页面。

如果对自己系统中的配置设定及其当前值的完整列表感兴趣,可以运行 phpinfo() 函数并查看其结果的页面。也可以在运行时用 ini_get() 或 get_cfg_var() 取得个别配置指令的值。

add a note add a note

User Contributed Notes 13 notes

up

down

3 Anteaus ?2 years ago

One of the most serious problems here is that it is hard to determine programmatically which of three or more possible configuration methods (php.ini, .user.ini, .htaccess) should be used on any given hosting company's server.

The worst outcome is if an install.php routine attempts to set .htaccess directives on a cgi-mode server, in which case the outcome is usually a '500' crash. Once in that situation the php installation routine cannot be rerun to correct the problem, so you effectively have a hosting lockout situation which can only be corrected by manual intervention.

up

down

-2 contrees.du.reve at gmail dot com ?9 years ago

Being able to put php directives in httpd.conf and have them work on a per-directory or per-vitual host basis is just great. Now there's another aspect which might be worth being aware of:

A php.ini directive put into your apache conf file applies to php when it runs as an apache module (i.e. in a web page), but NOT when it runs as CLI (command-line interface).

Such feature that might be unwanted by an unhappy few, but I guess most will find it useful. As far as I'm concerned, I'm really happy that I can use open_basedir in my httpd.conf file, and it restricts the access of web users and sub-admins of my domain, but it does NOT restrict my own command-line php scripts...

up

down

-3 nick at vistaworks dot net ?4 years ago

On Windows, as the documentation above states, you cannot set max_upload_filesize and post_max_size in the registry, because they are PHP_INI_PERDIR.

Confusingly, however, is the fact that phpinfo() will show your changes if you do add those to the regsitry, as if they were taking effect. However, the upload size is *not* changed, regardless of what phpinfo() reports.

I believe the reading of registry values and override happen 'too late' in the request processing, ie, after the file has already been uploaded and rejected.

In a perfect world, phpinfo() would recognize this and not report the overridden values, which is very confusing.

up

down

-4 Woody/mC ?9 years ago

@ pgl: As the documentation says:

"To clear a previously set value use none as the value."

Works fine for me.

up

down

-6 user at NOSPAM dot example dot com ?5 years ago

PHP Constants will work with php_value; for example:

关于apach配置php的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于apach配置php apache配置php解析的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did209103
更新时间:2023-05-03   阅读:21次

上一篇: php权限列表 php权限设置

下一篇:ideaphp ideaphp插件

相关资讯

最新资料更新

  • 1.php如何转换json php如何转换视频
  • 2.nginx隐藏.php nginx隐藏ip
  • 3.关于php_ssh.dll的信息
  • 4.php项目的更新 php版本升级对程序影响
  • 5.php网站后台demo php后端模板
  • 6.phpsmtp配置项 php 配置
  • 7.php棋牌小游戏 棋牌类小程序
  • 8.php查询数组找到 php查找数组元素
  • 9.mk_dirphp mkdirphp
  • 10.php中套js代码 js中写php代码
  • 11.名称占位符php 占位符html
  • 12.php从事哪个方面 php干啥的
  • 13.php配置smtp php配置文件的文件名是什么
  • 14.射洪php招聘 射洪平台公司招聘
  • 15.无法使用curlphp 无法使用此地区的账号登陆
  • 16.form居中显示php form居中显示
  • 17.php合并特殊字符 php合并单元格的代码
  • 18.phpoutfile的简单介绍
  • 19.phpcrc-itu的简单介绍
  • 20.php内核源码剖析 php源码使用教程

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]