今天又是新的一天,是陰天,這就好像暗示着我今天又是辛苦的一天,果不其然,我準備在個人小黑上作一個PHP項目,由於是新裝的系統,環境還沒配置好,因而乎就開始配置環境,以前有研究過環境的配置,但是在今天的配置過程當中又遇到了不少困難,基本上之前的一些細節也都忘了,這就是學了東西以後沒有及時總結的後果啊,吃一塹,長一智。今天就把PHP在IIS下的配置全過程好好地總結一下。php
1、PHP 的安裝:
1. 把php-5.2.10-Win32_zip.zip先解壓,重命名爲php5,並複製到C盤目錄下,即:C:\php5
2. 找到php目錄下的php.ini.recommend(或者php.ini-dist)文件,重命名爲php.ini,並複製到系統盤的windows目錄下(以C:\windows爲例),若是不把php.ini文件複製到C:\windows目錄下的話,那就要配置環境變量,新建PHPRC 環境變量,所設的值爲PHP的安裝路徑。
3. 把php目錄下的php5ts.dll, libmysql.dll,libmcrypt.dll複製到目錄C:\windows\system32下,可是我沒有把php5ts.dll複製到C:\windows\system32,運行也成功了,不知道對之後的使用會不會有影響,之後再看吧,也有多是我配置了PHPRC環境變量吧。
4. 把php5\ext目錄下的php_gd2.dll, php_mysql.dll, php_mbstring.dll文件複製到C:\windows\system32下,若是沒有加載php_gd2.dll,php將不能處理圖像,沒有加載php_mysql.dll將不支持mysql函數庫,php_mbstring.dll在後面使用phpmyadmin時支持寬字符。這一步我沒有進行處理,也能成功。不知道之後會怎麼樣,咱們拭目以待吧。html
2、PHP 的配置,並關聯mysql
1. 打開php.ini文件。web
2. 設置擴展路徑
查找 extension_dir 這行
extension_dir = "./"
將此行改爲
extension_dir = "C:\php5\ext"
其中C:\php5是安裝php的路徑,路徑不正確將沒法加載dll
(注意有些php版本是;extension_dir = "./" 要把前面的分號去掉)sql
3. 查找
;extension=php_mbstring.dll ;extension=php_gd2.dll ;extension=php_mysql.dll 把上面三項前面的分號去掉,這樣IIS啓動時就能夠加載這些dll了。固然前面咱們也把這些dll複製到了system32下了。
(你們在安裝的過程當中都注意到如何把一些dll加載進來了,之後要加載一些dll,好比php_mysqli.dll,方法相同)
4. 設置會話保存路徑
查找session.save_path 有這麼一行
;session.save_path = "N;/path"
在此行後加入一行(注意:是加入一行,不是加到後 數據庫
session.save_path = "C:\WINDOWS\Temp"
保存到你的臨時目錄下,可自定義
5. short_open_tag. 有一些php版本默認是Off的
也就是說php不能使用短標記<? ?>,因爲短標記使用方便,而且不少程序也是使用短標記來寫,如discuze等。
若是不把short_open_tag改爲On將出現的症狀很難判斷是上面的緣由,建議修改
查找
short_open_tag = Off
改成
short_open_tag = On
6. 是否顯示錯誤 display_errors
出於安全考慮,有些php版本也默認爲Off.
就是說在調試時,若是php代碼有錯誤,就只會出現一個空白頁,而不會顯示出錯緣由和出錯行數。
這樣調試起來很不方便,建議修改成On
查找
display_errors=Off apache
改成
display_errors = On
7. register_globals
出於安全考慮,它默認也是Off.
當register_globals = Off的時候,下一個程序接收的時候應用$_POST['user_name']接收值
當register_globals = On的時候,下一個程序能夠直接使用$user_name來接收值
8. php5時差問題
時間相差8小時。php5系列版本新增了時區設置,默認爲格林威治時間,與中國所在的東8區正好相差8個小時
查找 date.timezone 這一行
;date.timezone =
將分號去掉,改爲
date.timezone =
三 站點配置
一、將 PHP 安裝爲 ISAPI 模式:windows
在「控制面板」的「管理工具」中選擇「Internet 服務管理器」,打開 選定的網站 ,單擊右鍵選擇「屬性」,在打開的「默認 Web 站點屬性」窗口的「ISAPI 篩選器」標籤裏找到並點擊「添加」按鈕,在彈出的「篩選器屬性」窗口中的「篩選器名稱」欄中輸入:PHP,再將可執行文件指向 php5isapi.dll 所在路徑,如:C:\PHP\php5isapi.dll。api
二、打開「默認 Web 站點屬性」窗口的「主目錄」標籤,找到並點擊「配置」按鈕,在彈出的「應用程序配置」窗口中找到並點擊「添加」按鈕,在彈出的窗口中新增一個擴展名映射,擴展名爲 .php,單擊「瀏覽」將可執行文件指向 php54isapi.dll 所在路徑,如:C:\PHP\php5isapi.dll,而後一路肯定便可。若是還想支持諸如 .php3,.phtml 等擴展名的 PHP 文件,能夠重複「添加」 步驟。安全
三、再打開「默認 Web 站點屬性」窗口的「的「文檔」標籤,找到並點擊「添加」按鈕,向默認的 Web 站點啓動文檔列表中添加 index.php 項。您能夠將 index.php 升到最高優先級,這樣,訪問站點時就會首先自動尋找並打開 index.php 文檔。
四、最重要的一步:再打開iis的web服務擴展--添加一個新的web服務擴展--.php 文件選定C:\PHP5\php5isapi.dll
四.調試
net stop w3svc
net stop iisadmin
net start w3svc
或者:iisreset
重啓IIS服務器
創建文件夾myphp ,用記事本建立文件寫入:
<?php
phpinfo();
?>
保持爲hello.php在文件夾內。
右鍵點擊myphp文件夾->共享和安全->web共享,選擇共享文件夾,點擊添加,輸入別名肯定。
在IIS中找到myphp,右鍵點擊hello.php瀏覽,有php的信息證實配置成功。
解決PHPMyAdmin中報錯:沒法載入mcrypt
在本機上架設PHP環境玩一個威客系統,按照網上的說明,一路下來,安裝PHP,MYSQL,Zend Optimizer,PHPMYADMIN.前面都是一帆風順,到了PHPMYADMIN時出了問題,配置PHPMYADMIN時就出了問題,沒有找到網上說明的那個配置文件config.inc.php,而只有一個config.sample.inc.php,我覺得是版本差別,設置了半天都沒用,後來那這個文件更名爲那個文件名,就OK了.
登陸到PHPMYADMIN裏後,發現下面出現一行紅色的字提示錯誤:
沒法載入 mcrypt 擴展,
請檢查 PHP 配置的問題應該怎麼解決?
幾個網上的辦法,都沒用,最後發現,原來是重啓WEB服務器時,個人做法是錯誤的,只重啓IIS是沒用的,要到命令行下用那個命令來重啓才行的.
如下是我成功的方法:
1:
在[PHP安裝]目錄下,打開php.ini文件,找到
;extension=php_mcrypt.dll
改爲
extension=php_mcrypt.dll //去掉前面的;使之生效
2:
複製libmcrypt.dll到system32目錄下。
3:
從新啓動WEB服務器(注意,僅僅重啓IIS是沒用的,必定要到命令行下使用命令重啓才行)
方法1:分三步:(命令行下)
net stop w3svc
net stop iisadmin
net start w3svc
方法二:(命令行下)
iisreset
好了,收功,通常來講,這樣確定就能夠了.如下是在網上找到的方法,都差很少,參考一下:
沒法載入 mcrypt 擴展,請檢查 PHP 配置終極解決方案
沒法載入 mcrypt 擴展,
請檢查 PHP 配置
出現如下幾種狀況後可能會形成運行phpmyadmin程序提示「沒法載入 mcrypt 擴展,
請檢查 PHP 配置」的 錯誤提示
一、沒有正確安裝Mysql數據庫,在系統服務中Mysql相關的服務沒有啓動 (請查看正確安裝Mysql的方法)
二、在系統的 system32(C:\windows\system32) 目錄下缺乏 libmcrypt.dll文件,解決方法是找到php目錄下的libmcrypt.dll,並將libmcrypt.dll複製到C:\windows\system32目錄中,而後從新啓動Web服務。
三、在C:\windows目錄下的php.ini文件中,沒有將「;extension=php_mcrypt.dll」中的前面一個「;」去掉,因此不能使用相應功能,解決方法是打開php.ini文件
找到
;extension=php_mcrypt.dll
改爲
extension=php_mcrypt.dll //去掉前面的;使之生效
四、Mysql目錄沒有讀取權限,正確的目錄權限以下:
administrator 徹底控制
system 徹底控制
user 讀取加運行
其餘的用戶權限所有刪除(也可保留,但安全性不高,建議刪除),而後重啓MYsql服務和Web服務(建議修改此項後重啓一下服務器)
當你試過全部辦法以後仍是不行,其實還有一步,網上不多有說,解決辦法,個人是WINXP+IIS+PHP5+MYSQL5
桌面>個人電腦>右鍵屬性>高級>環境變量>系統變量>新建
名:phprc
值:d:\php (你的PHP在什麼目錄就是什麼)
若是你在執行phpMyAdmin登陸或者Discuz安裝建庫的時候出現問題,請往下看。
MySQL的libmysql.dll害死人啊!
你們不要用MySQL\bin下的libmysql.dll複製到c:\windows\system32下。
不然你的Discuz安裝和phpMyAdmin都用不了。
直接看到的效果是「沒法顯示頁面」,從事件查看器看到w3wp.exe與php5ts.dll衝突(IIS)或者httpd.exe與php5ts.dll(apache)衝突。最終說明了PHP與MySQL鏈接不上。
所以應該用PHP目錄下的libmysql.dll拷貝到c:\windows\system32下。
這個問題我搜索了不少地方,都沒說。包括官方文檔也在這點說明存在問題。我如今澄清出來,讓那些discuz的初學者能夠順利安裝和解決問題!