2011年9月29日 星期四

IIS7 + ASP + PHP 安裝指南,Windows7 x64 版

 
轉自:http://blog.raienet.com/429

最近發現 PHP 升級到 5.3 了,試裝半個月以來的穩定度還不錯,我想應該是時候寫下這篇文章了,以 Windows 7 x64 系統,全手動安裝打造穩定 ASP + PHP Server 作為目標。


安裝版本

1. PHP 5.3 (請到 PHP 歷史目錄尋找 PHP VC9 x64 最終版本: php-5.3.1RC1-Win32-VC9-x64 )
非官方x64版:http://www.anindya.com/php-5-3-8-x64-64-bit-for-windows/
2. MySQL 5.1.38 (Without installer AMD64 / Intel EM64T)
3. phpMyAdmin 3.2.2
請準備以上項目的 zip 壓縮版本,而不要用安裝版本,備齊這些資料就可以開始了。
示範平台:Windows7 x64,IIS 7.5
一、安裝之前,若您已有資料庫,請更新密碼
PHP 5.3 已不再支援 MySQL 16位元密碼格式 (OLD_PASSWORD),請將 MySQL 密碼轉為 41位元密碼。(此動作需在 PHP 5.2 以前的系統完成)
1. 開啟 phpmyadmin 的 mysql 資料庫,找到 user 資料表
2. 按 SQL,輸入後按執行
update user set password=password('你的密碼') where user='你的使用者';
3. 按 SQL,輸入後按執行
flush privileges;
未作以上動作將會產生錯誤訊息:
mysqlnd cannot connect to MySQL 4.1+ using old authentication
二、安裝 IIS
1. 控制台 > 程式集 > 程式和功能 > 開啟或關閉 Windows 功能
2. 勾選 Internet Information Services
3. Internet Information Services > 全球資訊網服務 > 應用程式開發功能
4. 勾選 ASP, CGI, ISAPI擴充程式 > 按確定安裝(IIS7 預設不安裝 ASP,所以要勾選 ASP)

三、安裝 PHP

將 PHP 檔案解壓縮到 C:\php (解壓縮後此目錄下應是數個檔案夾)
將 php.ini-production 更名為 php.ini
ISAPI 配置方式已經被 PHP 5.3 廢掉了,因此之後請採用 FastCGI 連接吧,好處是不必 copy 檔案到系統資炓夾了,但 php.ini 設定上會複雜一些。(這真是麻煩啊.. 分為必改和選改來解說好了)
php.ini(必改)找到 ; extension_dir = "ext" 改成 extension_dir = "ext"
找到 ;cgi.force_redirect = 1 改成 cgi.force_redirect = 0
找到 ;cgi.fix_pathinfo=1 改成 cgi.fix_pathinfo=1
找到 ;fastcgi.impersonate = 1; 改成 fastcgi.impersonate = 1
找到 ;extension=php_mbstring.dll 改成 extension=php_mbstring.dll
找到 ;extension=php_mysql.dll 改成 extension=php_mysql.dll
找到 ;date.timezone = 改成 date.timezone = "Asia/Taipei"
(如果你不在台灣,請改成你的時區.. )
php.ini(選改)
short_open_tag = Off 改為 short_open_tag = On
官方說已建議 N 年了,要把 <? 語法 ?> 寫成 <?php 語法 ?>,如今終於關閉了,若仍有需要就打開它吧,長遠之計是把你的習慣改了。
error_reporting = E_ALL & ~E_DEPRECATED 改為
error_reporting = E_ERROR & ~E_NOTICE & ~E_WARNING
有一些 function 官方未來的版本將不再支援了,假如你還在用 split() 等 function,不改這裡你的語法將會出錯(PHP Deprecated),但以長久之計還是把一些 function 改掉吧。
將 php.ini 存檔後關閉
開放 php 目錄、php-cgi.exe 權限
不作此動作的話,IIS 在 FastCGI 會得到 HTTP 500 錯誤(錯誤碼 0x80070005)
在 php目錄/C:\php\php-cgi.exe 按右鍵選 共用對象 > 特定人員
將 Everyone 新增,並設定權限為[讀取/寫入] > 共用

四、設定 IIS

控制台 > 系統及維護 > 系統管理工具 > Internet Information Services (IIS) 管理員
(傳統檢視控制台 > 系統管理工具 > Internet Information Services (IIS) 管理員)
處理常式對應 > 新增模組對應 
要求路徑 *.php
模組   FastCgiModule (下拉式選單中可以找得到)
執行檔  C:\php\php-cgi.exe (把 *.dll 改為 *.exe 即可看見)
名稱   PHP via FastCGI (這是微軟取的名字)
接著在開啟的視窗上請按「是」作確認..
預設文件 > 新增... > index.php > 按確定
以下可變更你的網站資料夾位置:
IIS 左側選單 > 站台 > Default Web Site > 按右鍵 > 管理網站 > 進階設定... > 實體路徑
(以下要解開IIS7 鎖住的重要功能,不需要者可略過)
解開 ASP 網頁的上層路徑表示法 (../)
IIS7 預設關閉上層路徑, 但這種用法實在太普遍了, 突然鎖住很可能會造成困擾
控制台 > 系統管理工具 > Internet Information Services (IIS) 管理員 > ASP
行為 > 啟用上層路徑 > 設為 True > 套用
解除 ASP 的瀏覽器偵錯限制IIS7 預設關閉 ASP 偵錯顯示,若不解除偵錯限制,任何錯誤均會將訪客導向一篇名為「Classic ASP: Security is Painful」的文章。
控制台 > 系統管理工具 > Internet Information Services (IIS) 管理員 > ASP
編譯 > 偵錯內容 > 將錯誤傳送到瀏覽器 > 設為 True > 套用
五、測試 PHP 環境
請重新啟動 IIS..
到你的網站資料夾上新建一個檔案 phpinfo.php ,內容只有一行如下:
phpinfo.php
<?php phpinfo() ?>
開一個新的瀏覽器,並在網址列輸入 http://localhost/phpinfo.php
如果有出現 php 相關訊息就代表安裝成功了。

六、安裝 MySQL

將 MySQL 檔案解壓縮到 C:\mysql (解壓縮後此目錄下應是數個檔案夾)
依下列程序安裝 MySQL 服務
開始 > 在搜尋列輸入 C:\mysql\bin\mysqld -install 按確定

繼續之前,進入不可不知的 MySQL 講座

一般在 WindowsNT/2000/XP/Vista/7,MySQL需要安裝成為一個服務。
你可以在以下程序看到 MySQL 服務。
控制台 > 系統管理工具 > 服務
在 MySQL 上點兩下(如果沒有找到代表你安裝不成功)
啟用類型: 自動.. 服務狀態: 已啟動 才是正常,如果不是請設定成這樣。經過此設定後,MySQL 服務將會在你每次開機後自行啟動。
如果要移除 MySQL 服務,請作以下動作
先停止 MySQL 服務,
控制台 > 系統管理工具 > 服務
在 MySQL 上點兩下
啟用類型: 自動.. 服務狀態: 已停止,設定成這樣。
開始 > 在搜尋列輸入 C:\mysql\bin\mysqld -remove 按確定
需注意,若沒有這個動作自行刪除 MySQL 檔案,這裡的 MySQL 服務就會變成無法移除了!

設定 MySQL 編碼

在 C:\WINDOWS\ 之下建立檔案 my.ini ,設定 MySQL 預設編碼為 UTF-8 (或其他)

my.ini

[mysqld]
default-character-set=utf8
[client]
default-character-set=utf8

重新啟動 MySQL

控制台 > 系統管理工具 > 服務
在 MySQL 上按右鍵 > 重新啟動

七、安裝 phpMyAdmin

將 phpMyAdmin 檔案解壓縮到 (你的網站資料夾)\phpmyadmin
(解壓縮後此目錄應是數個檔案夾)
phpMyAdmin3 已將安全等級最高的 cookie 作為預設登入方式,因此您不需在文件中設定密碼了。
強化phpMyAdmin安全開啟 (phpMyAdmin資料夾)\libraries\config.default.php
找到 $cfg['blowfish_secret'] = ''; 改為 $cfg['blowfish_secret'] = '(你的亂數密碼)';
你的亂數密碼在 46 字元以內,可包含英文、數字、符號,只作為加密用不必記憶。
( 例:spt^&G*UHFm7vaisoeaf20disjf4lsdazk98dfhsuO!#f )
若你的 root 沒設定密碼找到 $cfg['Servers'][$i]['AllowNoPasswordRoot'] = false;
改為 $cfg['Servers'][$i]['AllowNoPasswordRoot'] = true; 即可
開一個新的瀏覽器,並在網址列輸入 http://localhost/phpmyadmin
有畫面的話,就是代表安裝成功了。
64 位元不推廣一下不行啊,都推出 N 年了軟體還不跟進 = =
如果 Windows7 x64 要採用 Apache 跑 PHP Server 可以看我的舊文 Apache,Windows x64 PHP Server 安裝指南,親自測試在 Windows7 x64 上是適用的,一些 Vista x64 有的 bug 在 Windows7 x64 也消失了,官方版本(PHP VC6)反而沒有解決方案。

心得:靠杯!有沒有那麼麻煩啊?













沒有留言:

張貼留言