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的修復
-------------------------------------------------------------------------------------
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 Files\PHP文件夾下。
Php的配置:
1、 將E:\Program Files\PHP中的php.ini-dist復制為php.ini。
如果沒有php.ini-dist文件可使用php.ini-development文件並更改名稱為php.ini(留個備份,好習慣)
php.ini-development 開發用的
php.ini-produciton 生產機用的
2、 打開E:\Program Files\PHP\php.ini修改下列語句行:
3、 extension_dir = "E:\Program Files\PHP\ext"
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 Files\PHP; E:\Program Files\PHP\ext兩個值。
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:\xxx\xxx\xxx.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 Files\Apache Software Foundation\Apache2.2\conf。
這是我本機安裝的目錄。注:網上有好多教程說需要把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
那就是因為你沒有增加此屬性。
]
-
修改D:\Apache24\conf\httpd.conf.
把ServerRoot這行修改為 ServerRoot "D:\Apache24", 雙引號之間的就是你的apache放置的位置
-
修改D:\Apache24\conf\httpd.conf.
把DocumentRoot按照下面的內容修改:
DocumentRoot "d:/Apache24/htdocs"
<Directory "d:/Apache24/htdocs">
把Listen Port修改為:Listen 8080
-
添加下面幾行,增加對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"
-
保存httpd.conf, 重啟Apache服務。
小技巧:d:\apache24\bin\httpd.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配置信息。

