Php和httpd.conf的配置

http://www.cnblogs.com/homezzm/archive/2012/08/01/2618062.html

 

http://book.51cto.com/art/201309/409623.htm

 

http://www.cnblogs.com/pharen/archive/2012/02/06/2340628.html

 

http://www.jb51.net/article/21004.htm

--------------------------------------------------------------------------------------------------------------------------

services.msc

--------------------------------------------------------------------

原因一:80端口占用 
例如IIS,另外就是迅雷。我的apache服务器就是被迅雷害得无法启用! 

原因二:软件冲突 
装了某些软件会使apache无法启动如Dr.com 你打开网络连接->TcpIp属性->高级->WINS标签 把netbios的lmhosts对勾去掉,禁用tcp/ip的netbios. 然后再启动应该就可以了。 

原因三:httpd.conf配置错误 
如果apache的配置文件httpd.conf搞错了,在windows里启动它,会提示the requested operation has failed ,这是比较郁闷的事,因为查错要看个半天。 
其实可以用命令行模式启动apache,并带上参数,apache会提示你哪句有误,然后就可以针对性的解决,命令如下: httpd.exe -w -n "Apache2" -k start 

还有一种情况: 
即使你这次启动了,下次你都有可能启动失败 
在运行里输入:netsh winsock reset 
一会儿cmd会提示你重启,不用理会,现在APACHE已经可以启动了。 
其实就是一个winsock的修复

-------------------------------------------------------------------------------------

1.要下载THREAD SAFE的,你下载的是NOT THREAD SAFE吧
2.如果是64位系统要下载x64的,x86的不行
----------------------------------------------------------------------
配置:
# php7 support
PHPIniDir "E:/phpEnv/php"
LoadModule php7_module "E:/phpEnv/php/php7apache2_4.dll"
AddType application/x-httpd-php .php .html .htm
# configure the path to php.ini

-----------------------------------------------------------------------------------------------------------------------------------------------------------------
 

Php的安装:

将php-压缩包解压到相应的目录即可。本例我放置到了E:Program FilesPHP文件夹下。

Php的配置:

1、              将E:Program FilesPHP中的php.ini-dist复制为php.ini。

如果没有php.ini-dist文件可使用php.ini-development文件并更改名称为php.ini(留个备份,好习惯)

  php.ini-development 开发用的

 php.ini-produciton 生产机用的

2、              打开E:Program FilesPHPphp.ini修改下列语句行:

3、              extension_dir = "E:Program FilesPHPext"

4、       default_charset ="utf-8"

5、             

5、                将extension=php_exif.dll、php_gd2.dll、php_imap.dll、php_mbstring.dll、php_mcrypt.dll、php_mime_magic.dll、php_mysql.dll、php_mysqli.dll、php_pdf.dll前面的分号“;”去掉。

6、              在【环境变量】的【Path】中加入:;E:Program FilesPHP; E:Program FilesPHPext两个值。

7、              其它配置

1、在写php程序中有时会出现这样的警告:PHP Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'UTC' for '8.0/no DST' instead in D:xxxxxxxxx.php on line 10 。这是因为PHP所取的时间是格林威治标准时间,所以和你当地的时间会有出入格林威治标准时间和北京时间大概差8个小时左右,我们可以按照下面的方法解决:1、在页头使用date_default_timezone_set()设置我的默认时区为北京时间,即<?phpdate_default_timezone_set("PRC");?>就可以了。2、在php.ini中设置date.timezone的值为PRC,设置好以后的为:date.timezone=PRC,同时取消这一行代码的注释,即去掉前面的分号就可以了。

 -----------------------------------------------------------------------------------------------------------------

httpd.conf的配置:

httpd.conf文件的位置:C:Program FilesApache Software FoundationApache2.2conf。

这是我本机安装的目录。注:网上有好多教程说需要把php目录下的某某dll文件拷贝到system32下,其实这是不必要的,只需要在httpd.conf中加载php模块即可。

添加并修改下列语句行: LoadModule php5_module "E:/PHP/php5apache2_2.dll" (需要加””号,否则apache无法启动)(php5_module修改为php7_module)

 

【ps:

如果php安装目录里没有php5apache2_2.dll,一定是下载的版本不对。

官网左边有几段文字:

Which version do I choose?

If you are using PHP with Apache 1 or Apache2 from apache.org you need to use the VC6 versions of PHP。。。。

所以你下载V6C versions of PHP

VC6 x86 Non Thread Safe

VC6 x86 Thread Safe

一个是Thread Safe,一个是Non Thread Safe,

结果,Non Thread Safe版的php在安装过程中,没有Apache的选项:

select the web server you wish to setup

IIS FastCGI

Other CGI

Do not setup a web server

而Thread Safe版的安装过程中有Apache 2.2.x Module选项:

select the web server you wish to setup

Apache 2.2.x Module

Apaceh CGI

IIS FastCGI

IIS CGI

NSAPI

Xitami

NetServe Web Server

Other CGI

Do not setup a web server】

------------------------------------------------------------------------------------------------------

PHP下载的时候有几个不同版本选择。那就是VC6 X86和VC9 X86。

首先我来解答:

VC6是什么?

VC6就是legacy Visual Studio 6 compiler,就是使用这个编译器编译的。

VC9是什么?

VC9就是the Visual Studio 2008 compiler,就是用微软的VS编辑器编译的。

那我们如何选择下载哪个版本的PHP呢?

如果你是在windows下使用Apache+PHP的,请选择VC6版本;

如果你是在windows下使用IIS+PHP的,请选择VC9版本;

那Non Thread Safe是什么?

Non Thread Safe就是非线程安全;

Thread Safe 是什么?

Non Thread Safe 是线程安全;

官方并不建议你将Non Thread Safe 应用于生产环境,所以我们选择Thread Safe 版本的PHP来使用。

PHPIniDir "E:/Program Files/PHP"

[

    如果你在链接MySql数据库的时候出现

Fatal error: Call to undefined function mysql_connect() in C:xxxxx.php

那就是因为你没有增加此属性。

]

  1. 修改D:Apache24confhttpd.conf.

    把ServerRoot这行修改为 ServerRoot "D:Apache24", 双引号之间的就是你的apache放置的位置

  2.  

    修改D:Apache24confhttpd.conf.

    把DocumentRoot按照下面的内容修改:

    DocumentRoot "d:/Apache24/htdocs"

    <Directory "d:/Apache24/htdocs">

    把Listen Port修改为:Listen 8080

  3.  

    添加下面几行,增加对php5的支持:

    # php5 support

    LoadModule php5_module D:/php/php5apache2_4.dll

    AddType application/x-httpd-php .php .html .htm

     

    # configure the path to php.ini

    PHPIniDir "D:/php"

     

  4. 5

    保存httpd.conf, 重启Apache服务。

    小技巧:d:apache24inhttpd.exe -k install, 这句可以把apache添加到系统服务里去。

 

DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs" 项目默认的存放路径,可根据实际情况修改,注:如此节点修改则相应的Directory节点的目录也需进行修改。

<Directory " C:/Program Files/Apache Software Foundation/Apache2.2/htdocs ">

AddType application/x-httpd-php .php

 

DirectoryIndex index.php index.html

 

注意:Apache Windows配置文件httpd.conf中要求的目录分隔符是用斜线”/”,而PHP Windows配置文件php.ini中书写目录时要求的是反斜线””,不要弄混了

配置测试,在DocumentRoot节点所指定的目录中创建index.php 打印php配置信息。

原文地址:https://www.cnblogs.com/XACOOL/p/5263616.html