本文目錄一覽:
- 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
中使用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/309715.html