網頁

2013年7月15日 星期一

Apache + PHP & MySql for Windows

Last Update: 2013/07/16 13:06+08


Intro


Apache 安裝 PHP 的方式
基於Windows 7
雖然網路上找到很多人在說
但還是做個筆記
。 解壓&設定 PHP
。 安裝&設定 Apache
。 建立 Apache 的 Windows服務
。 PHP測試程式
。 安裝MySQL & 測試程式



Content



---解壓&設定 PHP---
下載 PHP (自選版本)
自行決定解壓目錄 (eg: Php Home = D:\php5)

剛載下來的Php Home裡 是沒有 php.ini 的檔案
但他有給你參考用的 php.ini
名字是 php.ini-xxxxxx (eg: php.ini-development, php.ini-production, php.ini-recommended)
將它 copy 並改名為 php.ini

修改 php.ini 加入下述參數, 若已存在就改掉它
extension_dir = "D:\php5\ext"
如果測試有問題的話
可以考慮在環境變數的 Path 參數中加入 D:\php5;D:\php5\ext
以確保一定找到的該路徑的DLL
Note. 事實上 extension_dir="ext" 也可,
但有些狀況好像會找不到, 各位看倌有興趣可以試試


若要使用MySQL, 請加入下述代碼
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
參考用的php.ini應該有,只是被註解起來
這3個DLL 就是在 extension_dir 指定的資料夾裡
它們的差異請參考估狗大神

若是有用到其它, 或執行時找不到函數的問題
可以來這邊加入其它 .dll
像是要用 sqlite 的話, 加入下述代碼
extension=php_pdo_sqlite.dll



---安裝&設定 Apache---
下載 Apache (自選版本)
Windows 要選第3方廠商下載

自行決定安裝or解壓目錄 (eg: Apache Home = D:\Apache2_2)

照指示安裝
安裝時有可能會出現 連接埠(port)無法 建立或取得控制
就請自行上網找排除方法吧~ 也可以用 port 8080 (安裝時可以選) 來解決

將下述代碼複製到 D:\Apache2_2\conf\httpd.conf 裡面
(我是放在很多LoadModule的下面)
LoadModule php5_module "D:/php5/php5apache2_2.dll"
PHPIniDir "D:/php5"
AddType application/x-httpd-php .php
Note:
這邊是主要載入php module 的地方 所以可用<IfModule php5_module> ... </IfModule>包住2,3行
這樣只要註解掉第一行就可以關掉php

在httpd.conf中, 有些其它需要注意的部份
稍微檢查一下即可
ServerRoot "D:/Apache2_2"
ServerAdmin admin@localhost
ServerName localhost:8080
DocumentRoot "D:/Apache2_2/htdocs"
<Directory "D:/Apache2_2/htdocs">
ScriptAlias /cgi-bin/ "D:/Apache2_2/cgi-bin/"
<Directory "D:/Apache2_2/cgi-bin">



---建立 Apache 的 Windows服務---
以系統管理員身分執行 cmd
輸入下述代碼創建service
sc create ApacheService binPath= "D:\Apache2_2\bin\httpd.exe -k runservice" DisplayName= "Apache Server"
創建成功後, 你可以執行 D:\Apache2_2\ApacheMonitor.exe 來控制這個service
也可以用下述代碼來啟動,關閉 和 查詢狀態
sc start ApacheService
sc stop ApacheService
sc query ApacheService
不需要的時候, 可以用下述代碼來刪除
sc delete ApacheService



---PHP測試程式---
在 D:\Apache2_2\htdocs\ 中, 建立一檔 index.php 檔案, 內容如下
This is my first PHP document.
<?php
echo "Okay! I can run PHP!!";
?>
啟動 ApacheService 後
開瀏覽器連線到 http://localhost:8080/index.php
看看 有沒有 印出 "Okay! I can run PHP!!"



---安裝MySQL & 測試程式---
MySQL 官網下載 Community 這個免費版本來測試吧
照指示安裝完即可
過程中的 root password 別忘了
有需要的話, 可以順便設定使用者

請自行建立database schema 和 table~
這邊的 database name = "test_db"
參照下述代碼創立table(有介面可以用啦-0-)
CREATE  TABLE `test_db`.`news` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `title` VARCHAR(256) NULL ,
  PRIMARY KEY (`id`) );
然後陏便建幾筆資料
接著複製下述代碼, 到 index.php 中
$dbhost = '127.0.0.1';
$dbuser = 'your_user_name';
$dbpass = 'your_password';
$dbname = 'test_db';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error with MySQL connection');
mysql_query("SET NAMES 'utf8'");
mysql_select_db($dbname);
$sql = "SELECT * FROM news;";
$result = mysql_query($sql) or die('MySQL query error');
while($row = mysql_fetch_array($result)){
 echo $row['title'];
}
其中的 your_user_name 和 your_password 改成你的吧
最後就看有沒有資料跑出來了~
建議名字都用小寫, 因為他會自動轉小寫
有些環境 在下Query時, 會比對大小寫字母
P.S. 有改過設定記得重啟服務
Good Luck~!!


沒有留言:

張貼留言