數碼中文坊

 取回密碼
 我要註冊
檢視: 30948|回覆: 18

[教學] Apache + PHP + MySQL for Win32 安裝說明

  [複製連結]
發表於 2004-3-27 09:29:31 | 顯示全部樓層 |閱讀模式

馬上註冊,結交更多好友,享用更多功能,讓你輕鬆瀏覽論壇。

你需要 登入 才可以下載或檢視,沒有帳號?我要註冊

x
本文章最後由 楓精靈 於 2014-11-17 11:09 AM 編輯

如果你對伺服器的穩定性和安全性非常的計較,不喜歡 AppServ 這類傻瓜安裝包,那就一定要試試正宗的官方版安裝法。

以下說明在 Windows 環境下如何架設完整的 Apache + PHP + MySQL。


準備工具:

Windows 2000 Server (強烈推薦,現今架設 Win32 伺服器環境的最佳選擇)
Apache2.x (用 1.3.x 也行,後面會說明)
PHP 4.x
MySQL Server


下載網站:

Aapche 2.x: http://httpd.apache.org/download.cgi
這裡以下載 apache_2.0.49-win32-x86-no_ssl.msi 為例子,請自行下載最新版本。

PHP: http://www.php.net/downloads.php
下載 PHP 4.3.5 zip package,不要下載 installer 版,待會要手動設定。

MySQL Server: http://www.mysql.com/downloads/mysql-4.0.html
目前 MySQL 的 Recommended (推薦)版本為 4.0,所以下載 mysql-4.0.18-win.zip,不要下載 Without installer 版本,比較好裝。

以上版本皆為示範用,請自行下載最新版本。


安裝前:

1. 請先將內建的 IIS 移除或停用。

2. 為了維護與備份的方便,我在 D: 新增一個資料夾為 Server,把所有的相關軟體都安裝在這裡面。


開始安裝:

1. 安裝 apache_2.0.49-win32-x86-no_ssl.msi,基本上很簡單,在 Server Information 的步驟中按照範例填上正確的設定,然後按下一步直到 Destination Folder 的步驟時,選擇 D:\Server,我們要把 Apache2 安裝在這個資料夾內。
(請注意,因為 Apache2 會自動建立 Apache2 的資料夾,所以這裡選擇上一層,也就是 D:\Server 即可)
其餘按照預設值按下一步直到安裝完成。

2. 開始安裝 MySQL Server,先解壓縮 mysql-4.0.18-win.zip,執行 Setup.exe,按照預設執行,到 到 Destination Folder 的步驟時,選擇 D:\Server\MySQL,我們要把 MySQL Server 安裝在這個資料夾內。
(請注意,因為 MySQL 不會自動建立資料夾,所以要指定 D:\Server\MySQL,才會安裝到該資料夾裡面 )
其餘按照預設值按下一步直到安裝完成。

3. 將 MySQL Server 安裝為服務,這一步在官方提供的說明中,很奇怪的就是無法安裝成功,我發現有一個更簡單的方法如下:
執行 D:\Server\MySQL\bin\winmysqladmin.exe,選擇 my.ini,點選下方的 mysql-max-nt,然後按下 Save Modification 後,關閉此視窗再開啟一次,會發現右上角的紅綠燈已經變成綠燈了,表示 MySQL Server 已安裝成功。
由 我的電腦→右鍵→管理→服務及應用程式→服務→MySQL,可以看出它已經設為自動與啟用了。

4. 開始安裝 PHP,將 php-4.3.5-Win32.zip 解壓縮後,複製到 D:\Server 下,將目錄名稱設為 PHP,請注意路徑是否正確,主程式 php.exe 應該位於 D:\Server\PHP\php.exe 才對。

5. 接下來要設定 Apache 並與 PHP 合體了。


(未完,明天繼續)
 樓主| 發表於 2004-3-30 00:15:45 | 顯示全部樓層
5. 接下來在 D:\Server 建立兩個新資料夾,一個是 Temp,用來暫存抓到的檔案,例如 XOOPS2 的安裝檔,另一個是 www,這是最重要的地方,網站的根目錄就在這裡囉。

6. 現在要設定 Apache2 了,用記事本打開 D:\Server\Apache2\conf\httpd.conf 這個檔案,依照下面的說明修改。

ServerAdmin [email protected]
這裡輸入你自己的信箱,這個訊息會在出現錯誤時提醒用戶該通知誰。

ServerName www.xxx.com.tw
這裡輸入你的正式網址,不管是花錢註冊的,或者動態 DNS,都是在這裡輸入。

DocumentRoot "D:/Server/www"
這裡是所有網頁的根目錄,依照上面的輸入即可。

<Directory "D:/Server/www">
這裡設定根目錄權限,依照上面的輸入即可,其他的原則上不需要改。

DirectoryIndex index.php index.htm index.html
這是預設的首頁檔名,因為我們要安裝 XOOPS2 或其他的 PHP 程式,所以依此範例設定即可。

AddLanguage zh-TW .zh-tw
在 AddLanguage 的段落,將 zh-TW 改到該段落的第一行,表示頁面語言以繁體中文為優先。

LanguagePriority tw
這行設定也是把 tw 移到最前端,如果你的網站沒有其他語言的話,後面的語言設定就可以全部刪掉了。


7.接下來的設定就和 PHP 有關了,以下還是在 httpd.conf 裡面設定。

AddType application/x-httpd-php .php
加入這一行,表示遇到 .php 的檔案會呼叫 PHP 來執行該程式。

回到設定檔的最上端,
Dynamic Shared Object (DSO) Support 這個段落,是設定 DSO (動態共用物件)的地方,在這個段落最下面加上一行:
LoadModule php4_module "D:/Server/php/sapi/php4apache2.dll"
(前後加上引號是為了避免 Apache2 判斷錯誤)
這樣 PHP 就會和 Apache2 一起啟動,效能比較好。

 樓主| 發表於 2004-3-30 00:16:18 | 顯示全部樓層
9. 接下來是 PHP 本身的設定了,將 D:\Server\PHP\php4ts.dll 複製到 C:\WinNT\System32 目錄下。

10. 將 D:\Server\PHP\php.ini-dist 改名為 php.ini,複製到 C:\WinNT 目錄下,用記事本打開,這裡是關於 PHP 的細部設定。

register_globals = On
這裡的預設值為 Off,XOOPS早期版本的要求為 On,雖然目前我自己的設定都是 Off,也沒出過什麼問題,但還是依照建議改為 On 吧。

extension_dir = "D:/Server/php/extensions"
設定延伸模組的地方,依此範例設定即可。

file_uploads = On
設為 On,允許檔案上傳,如果有使用檔案管理、網路硬碟等模組,就要開啟這功能了。

upload_max_filesize = 2M
上傳的單一檔案大小,依照你的需求自行修改。

extension=php_gd2.dll
設定延伸模組的地方,這個段落有很多模組可設定,將前面的分號取消,代表啟用此延伸模組,我們將 GD2 這個模組打開,以便安裝網路相簿的功能。

SMTP = 192.168.0.101
寄信伺服器的設定,請依照你的 ISP 指示,選擇最適合的伺服器,或者是你自己架設的郵件伺服器。

session.save_path = D:/Server/temp
有些 PHP 程式必須指定 session 的路徑,例如 WebMail,這裡設在暫存資料夾,以方便管理。

設定完畢,存檔離開。

11. 桌面 → 我的電腦 → 右鍵 → 管理 → 服務及應用程式 → 服務 → Apache2 → (重新)啟動,
MySQL → (重新)啟動。
大致完成了。

(未完待續)
 樓主| 發表於 2004-3-30 15:08:57 | 顯示全部樓層
12. 打開記事本,將下列程式碼複製貼上:

<?php
echo phpinfo();
?>

存檔為 phpinfo.php,存檔於 D:\Server\www 下,打開瀏覽器,執行 http://localhost/phpinfo.php ,看看有沒有畫面出來?有就成功了!沒有的話請回去看前文重新檢查一遍。

13. 另外我們再裝上 Zend Optimizer 這個 PHP 加速器,可以增加你的 PHP 程式執行效能,這個步驟並不是必須的,你可以選擇不做。

連上 Zend 網站開始下載吧。
http://www.zend.com/store/products/zend-optimizer.php
按下右邊的 Free Download 下載 Windows 版並安裝,安裝過程沒什麼要設定的,按 Next 直到完成即可,過程中會修改你的 php.ini 並備份舊的儲存,依照預設值讓它修改即可。

14. 安裝完畢後重新啟動 Apache,連上剛才的訊息網頁
http://localhost/phpinfo.php

檢查 Power by Zend 的段落是否有
Copyright © 2003, by Zend Technologies with Zend Optimizer v2.1.0, Copyright © 1998-2003, by Zend Technologies
的文字出現,有的話代表 Zend Optimizer 生效了。

檢查 GD Support 的項目,是否顯示 Enable?有的話代表 GD 模組生效了,才可以安裝網路相簿等模組。

檢查 file_uploads 項目是否為 On?有的話才可上傳檔案,圖檔管理員、大頭照等功能才可使用。



完工囉!可以開始安裝 XOOPS2 了!

有空的話待會來寫 phpMyAdmin 的安裝說明。
發表於 2004-8-13 16:31:20 | 顯示全部樓層
來試架看看
期待後續的
多謝分享
發表於 2004-10-8 13:25:44 | 顯示全部樓層
第一篇強調 OS 採用 Windows Server 版本,記得 Win2000 prof. 也是可以,有何差異嗎?
發表於 2004-10-8 13:30:21 | 顯示全部樓層
你是八大的 antma 嗎?

Server 版的系統資源專門設計給伺服器使用,Pro 版則偏重應用程式,因此效能上會有差別。

另外,Pro 版的 IIS 只能管理一個網站;Server 版則同時可以建立非常多個網站。

還有,Pro 版在未登入的情況下,IIS 不會啟動,也就是如果開機後忘記登入 Windows,則網站就不能使用囉!
發表於 2004-10-8 13:35:19 | 顯示全部樓層
是阿 偶就是八大 antma :d

Win2000 pro. 在校能上可以改變為 server 用途,另外不要用 IIS 而改用 Apache Server 不就可以了 :p
發表於 2004-10-8 13:46:46 | 顯示全部樓層
Apache Server 我們是沒在用啦。

Pro 版調校成 Server 是可以,理論上還是會有程度上的差異。

採用 Windows Server 的另外個原因是它內建 DNS,不必另外裝,整合度及管理起來也比較方便。不過這又是另外一個話題。
發表於 2004-10-8 13:48:09 | 顯示全部樓層
因為整考慮將使用中的電腦,安裝 IPB 2.0.1 版來玩玩
發表於 2004-12-15 15:27:01 | 顯示全部樓層
嗨,版大,
我依著安裝了 apache、PHP及Zend Optimizer這三個都沒問題,但就MySQL 出狀況,在 winmysqladmin.exe 這程式的 Environment 這標籤下的 MyODBC 欄位show出如下訊息:
Not Found
Driver 3.51 Not Found

另,我使用的軟體版本如下:
mysql-4.0.22-win
php-4.3.9-Win32
apache_2.0.52-win32-x86-no_ssl
ZendOptimizer-2[1].5.7-Windows-i386

我的作業系統是 WindowsXP Pro SP1a版,在這一版,如何增加MyODBC 的資料來源呢?還是 MySQL 無法架在 XP Pro 這版本上呢?
有勞版大及各位朋友幫忙解惑,先謝謝各位了!
發表於 2004-12-15 16:20:47 | 顯示全部樓層
剛下載了 MyODBC3.51 來安裝上了,安裝完後 Driver 3.51 Not Found 這訊息不見了,取而代之的是如下訊息:
----------------------------------------------------------------------------
Driver Version
Driver      E:\WINDOWS\System32\myodbc3.dll
API Level
Setup       E:\WINDOWS\System32\myodbc3S.dll
SQL Level
----------------------------------------------------------------------------

但MySQL Server 還是沒辦法啟動,這是什麼情況咧?頭有點大!
My.ini 裡有什麼需要設定的嗎??My.ini 內容如下:
----------------------------------------------------------------------------
# Example mysql config file.
# Copy this file to c:\my.cnf to set global options
#
# One can use all long options that the program supports.
# Run the program with --help to get a list of available options

# This will be passed to all mysql clients
#[namo_apm]
#default-character-set=latin1
#character-sets-dir = C:/Servers/mysql/share/charsets/

[client]
#password=my_password
#port=3306
#socket=MySQL

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

# The MySQL server
[mysqld]
#port=3306
#socket=MySQL
#skip-locking
#set-variable = key_buffer=16M
#set-variable = max_allowed_packet=1M
#set-variable = table_cache=64
#set-variable = sort_buffer=512K
#set-variable = net_buffer_length=8K
#set-variable = myisam_sort_buffer_size=8M
default-character-set=latin1
language=C:/Servers/mysql/share/english/
#server-id = 1

# Uncomment the following if you want to log updates
#log-bin

# Uncomment the following rows if you move the MySQL distribution to # another
# location
#basedir = d:/mysql/
#datadir = d:/mysql/data/


# Uncomment the following if you are NOT using BDB tables
skip-bdb
skip-innodb

# Uncomment the following if you are using BDB tables
#set-variable = bdb_cache_size=4M
#set-variable = bdb_max_lock=10000

# Uncomment the following if you are using Innobase tables
#innodb_data_file_path = ibdata1:400M
#innodb_data_home_dir = c:\ibdata
#innodb_log_group_home_dir = c:\iblogs
#innodb_log_arch_dir = c:\iblogs
#set-variable = innodb_mirrored_log_groups=1
#set-variable = innodb_log_files_in_group=3
#set-variable = innodb_log_file_size=5M
#set-variable = innodb_log_buffer_size=8M
#innodb_flush_log_at_trx_commit=1
#innodb_log_archive=0
#set-variable = innodb_buffer_pool_size=16M
#set-variable = innodb_additional_mem_pool_size=2M
#set-variable = innodb_file_io_threads=4
#set-variable = innodb_lock_wait_timeout=50

#[mysqldump]
#quick
#set-variable = max_allowed_packet=16M

#[mysql]
#no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

#[isamchk]
#set-variable = key_buffer=20M
#set-variable = sort_buffer=20M
#set-variable = read_buffer=2M
#set-variable = write_buffer=2M

#[myisamchk]
#set-variable = key_buffer=20M
#set-variable = sort_buffer=20M
#set-variable = read_buffer=2M
#set-variable = write_buffer=2M

#[mysqlhotcopy]
#interactive-timeout
[WinMySQLAdmin]
Server=C:/Servers/mysql/bin/mysqld-nt.exe
----------------------------------------------------------------------------
發表於 2004-12-15 16:48:38 | 顯示全部樓層
其本上安裝完 MySQL 後你至少要執行一次 \mysql\bin\winmysqladmin.exe 後,他會要你輸入一個使用者名稱及密碼,之後就可以了。
發表於 2004-12-16 16:59:37 | 顯示全部樓層
嗨,版大,
我裝完後是要執行 \mysql\bin\winmysqladmin.exe 沒錯,
但執行時會出現上述的錯誤,所以才會來這兒打擾各位大大!^_^|||
發表於 2008-2-13 15:44:41 | 顯示全部樓層

可以幫我解決問題嗎

大大,你好:
我按照大大的步驟已經架好Apache和PHP,但遇到一個狀況外的問題,很希望得到你寶貴的意見,謝謝。

發表於 2008-2-13 17:17:18 | 顯示全部樓層

error.log內的錯誤訊息

Error in my_thread_global_end(): 66 threads didn't exit
[Wed Feb 13 17:13:49 2008] [notice] Parent: child process exited with status 3221225477 -- Restarting.
[Wed Feb 13 17:13:49 2008] [notice] Apache/2.2.8 (Win32) PHP/5.1.6 configured -- resuming normal operations
[Wed Feb 13 17:13:49 2008] [notice] Server built: Jan 18 2008 00:37:19
[Wed Feb 13 17:13:49 2008] [notice] Parent: Created child process 17424
[Wed Feb 13 17:13:49 2008] [notice] Child 17424: Child process is running
[Wed Feb 13 17:13:49 2008] [notice] Child 17424: Acquired the start mutex.
[Wed Feb 13 17:13:49 2008] [notice] Child 17424: Starting 64 worker threads.
[Wed Feb 13 17:13:49 2008] [notice] Child 17424: Starting thread to listen on port 80.

唉~~翻過google大神,我還是沒找到解決方法~希望有人可以解決小妹的困惱>_<~~
發表於 2009-5-18 11:23:07 | 顯示全部樓層
感謝分享啦
馬上去下載來安裝設定看看
發表於 2012-2-10 23:47:45 | 顯示全部樓層
感謝分享啦
下載來安裝設定看看
發表於 2013-2-22 22:48:55 | 顯示全部樓層
謝謝大大的分享~
寫的很仔細,照著做一下就成功了!
感恩~感恩!
你需要登入後才可以回覆 登入 | 我要註冊

本版積分規則

Archiver|禁閉室|手機版|數碼中文坊

GMT+8, 2024-3-28 11:54 PM

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回覆 返回頂端 返回清單