2013年10月8日 星期二

[研究] Apache 2.4.6 + PHP 5.5.4 + MySQL 5.6.13 架網站環境安裝 (Win7)

[研究] Apache 2.4.6 + PHP 5.5.4 + MySQL 5.6.13 架網站環境安裝 (Win7)

2013-10-08
2016-03-09 更新 VC++ 2012可轉發套件網址

安裝環境:Windows 7 with SP1 x64

****************************************

安裝需要下面 5 個軟體:

Microsoft Visual C++ 2010 SP1 Redistributable Package (x64)
Microsoft Visual C++ 2010 SP1 可轉發套件 (x64)
(也就是 Visual C++ Redistributable Package v10.0.40219.1)
http://www.microsoft.com/download/en/details.aspx?id=13523
(httpd-2.4.6-win64.zip 中程式執行需要)

Microsoft Visual C++ Redistributable for Visual Studio 2012 Update 4 (x64)
適用於 Visual Studio 2012 Update 4 的 Visual C++ 可轉散發套件
https://www.microsoft.com/zh-tw/download/details.aspx?id=30679
(也就是 Visual C++ Redistributable Package v11.x)
(php-5.5.4-Win32-VC11-x64.zip 中程式執行需要)

注意,上面兩個下載回來的都是 vcredist_x64.exe,但是為不同的檔案,兩個都需要安裝。

Web Server : httpd-2.4.6-win64.zip
PHP        : php-5.5.4-Win32-VC11-x64.zip
MySQL      : mysql-5.6.13-winx64.zip

****************************************

參考資料:

Apache Web Server (Httpd) 2.4 在 MS-Windows 上安裝說明
http://httpd.apache.org/docs/2.4/platform/windows.html

PHP 在 Windows 安裝程序(PHP 5.2 及更新版本)
http://in2.php.net/manual/zh/install.windows.installer.msi.php

Installing MySQL 5.6 on Microsoft Windows
http://dev.mysql.com/doc/refman/5.6/en/windows-installation.html
http://dev.mysql.com/doc/refman/5.6/en/windows-start-service.html
http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html

****************************************

0. 基本安裝

(下圖) 安裝 Microsoft Visual C++ 2010 SP1 可轉發套件 (x64)

(下圖) 安裝 Microsoft Visual C++ 2012 Update 3 可轉發套件 (x64)


很簡單,不多說了。

****************************************

1.解壓

1.1 解壓 Apache Web Server (Httpd)

把 httpd-2.4.6-win64.zip 用 7-zip 解壓到 C:\ 目錄
解壓完成後會看到 C:\Apache24 目錄,裡面有 bin、cgi-bin、、、等子目錄

你可以安裝到別的目錄,但是 Apache24\conf\httpd.conf 設定檔案中所有路徑都要修正
因為 httpd.conf 中預設使用 C:\Apache24 目錄


PS:依照解壓軟體種類和版本差異,有時候會多建立一層子目錄,例如變成 C:\httpd-2.4.6-win64\Apache24
   此時請把目錄搬移到 C:\Apache24

********************

1.2. 解壓 MySQL Server

把 mysql-5.6.13-winx64.zip 用 7-zip 解壓到 C:\ 目錄
解壓完成後會看到 C:\mysql-5.6.13-winx64 目錄,裡面有 bin、data、、、等子目錄
選哪個目錄比較沒關係

********************

1.3. 解壓 PHP

把 php-5.5.4-Win32-VC11-x64.zip 用 7-zip 解壓到 C:\php 目錄 (注意,別解壓到 C:\ 根目錄,否則一堆檔案)
解壓完成後會看到 C:\php 目錄,裡面有 bin、data、、、等子目錄
選哪個目錄比較沒關係

****************************************

2. 設定

2.1 讓 Apache Web Server 支援 PHP 網頁

修改 C:\Apache24\conf\httpd.conf 設定檔,增加

LoadModule php5_module "C:\php\php5apache2_4.dll"
<IfModule php5_module>
PHPIniDir "C:\php\"
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php5
</IfModule>

(下圖) 修改 httpd.conf

其中 PHPIniDir 是 Httpd 2.4.6 版新增的。

(下圖) 注意:目錄要用斜線 /  ,不要用反斜線  \
ServerRoot 設定的目錄結尾不要加上斜線

********************

2.2 讓 PHP 可以存去 MySQL

把 C:\php\php.ini-production 複製成 C:\php\php.ini
(不要用改檔案名稱方式,避免改壞了還有原來檔案可以再次複製使用)

( 前面 C:\Apache24\conf\httpd.conf 說 PHPIniDir "C:/php/" )

找到
; extension_dir = "ext"
底下增加一行
extension_dir = "c:/php/ext/"

(下圖) 增加 extension_dir 設定

找到
;extension=php_mysql.dll
拿掉前面的註解 (分號),變成
extension=php_mysql.dll

另外建議下面也拿掉註解
extension=php_mbstring.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll

(下圖) 拿掉幾個註解

注意,不建議全部註解都拿掉,如果 dll 找不到或相關軟體沒安裝,啟動 or 實際運作過程可能出錯。

****************************************

3. 啟動

(下圖) 點選「開始」按鈕,選「所有程式」,選「附屬應用程式」,在「命令提示字元」上按下滑鼠右鍵,選「以系統管理員身分執行」




3.1 安裝與啟動 Apache Web Server 服務

安裝服務
c:\Apache24\bin\httpd.exe -k install

啟動
c:\Apache24\bin\httpd -k start

(下圖) 安裝與啟動 Apache Web Server 服務

如果路徑有空白,請加上雙引號,例如:

"C:\Program Files\Apache24\bin\httpd.exe" -k uninstall


PS:(參考)

重新啟動服務
c:\Apache24\bin\httpd -k restart

停止服務
c:\Apache24\bin\httpd -k stop


移除服務
c:\Apache24\bin\httpd.exe -k uninstall

(下圖) 注意,只要 httpd.conf 或 php.ini 有修改,就必須 "重新啟動" Apache Web Server 服務

********************

3.2 安裝與啟動 MySQL Server 服務

安裝服務
C:\mysql-5.6.13-winx64\bin\mysqld" --install

啟動服務
net  start  mysql

(下圖) 安裝與啟動 MySQL Server 服務


PS:(參考)

重新啟動服務
net  restart  mysql

停止服務
net  stop  mysql

移除服務
C:\mysql-5.6.13-winx64\bin\mysqld" --remove

****************************************

4. 測試

(下圖) 啟動瀏覽器,網址輸入 http://localhost/index.html

在 C:\Apache24\htdocs 目錄建立 index.php
內容為
<?php
phpinfo();
?>

啟動瀏覽器,網址輸入 http://localhost/index.php

(下圖) 看到類似的畫面表示 Apache Web Server 可以支援 PHP 網頁

(下圖) 如果 C:\windows\php.ini 中有 extension=php_mbstring.dll,應該會看到 mysql 區域資訊;
如果 C:\windows\php.ini 中有 extension=php_mysqli.dll,應該會看到 mysqli 區域資訊


(完)

相關文章

[研究] AppServ 2.5.9 架站軟體安裝 (Win7)
http://shaurong.blogspot.com/2013/10/appserv-259-win7.html

[研究] XAMPP 1.8.2-2 x86 架站軟體安裝 (Win7)
http://shaurong.blogspot.com/2013/10/xampp-182-2-x86-win7.html

[研究] WampServer 2.4 x64 架站軟體安裝 (Win7)
http://shaurong.blogspot.com/2013/10/wampserver-24-x64.html

[研究] MediaWiki 1.21.2 維基網站安裝 (CentOS 6.4 x64)
http://shaurong.blogspot.com/2013/10/mediawiki-1212-centos-64-x64.html

[研究] Apache + PHP + MySQL 架網站環境安裝 (Win7)
http://shaurong.blogspot.com/2013/10/apache-php-mysql-on-win7.html

[研究] MediaWiki 1.15.1 維基網站安裝 (CentOS 6.4 x64)
http://shaurong.blogspot.com/2013/10/mediawiki-1151-centos-64-x64.html

34 則留言:

  1. 「Microsoft Visual C++ 2012 Update 3 可轉發套件 (x64)」的連結網址貼錯了

    回覆刪除
    回覆
    1. 適用於 Visual Studio 2012 Update 4 的 Visual C++ 可轉散發套件
      http://www.microsoft.com/zh-tw/download/details.aspx?id=30679

      刪除
  2. 不好意思,我安裝時碰到一些問題想請教您
    我在步驟命令題式字原裡c:\Apache24\bin\httpd -k start的時候由於我的存取未智不同思所已改成了C:\WebSever\httpd-2.4.12-win64-VC11\Apache24\bin\httpd -k start

    但是電腦程現訊息是
    AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::d0ec:6c6d:7af3:305b. Set the 'ServerName' directive globally to suppress this message
    (OS 10048) 一次只能用一個通訊端位址(通訊協定/網路位址/聯接阜)。:AH00072: make_sock: could not bind to address [::]:80
    (OS 10048) 一次只能用一個通訊端位址(通訊協定/網路位址/聯接阜)。:AH00072: make_sock: could not bind to address 0.0.0.0:80
    AH00451: no listening sockets available, shutting down
    AH00015: Unable to opean logs

    然後在http://localhost/index.php 變無法顯示範力的頁面

    推測可能原因是在一開始安裝時有不小心選了不要在無線網路公共場合聯現的關係,但家裡只有無線網路,請問要如何解決?

    回覆刪除
    回覆
    1. could not bind to address [::]:80 ===> 妳電腦上還有其他 Web Server 占用了 port 80 ?

      刪除

  3. 我在執行3.1 安裝與啟動 Apache Web Server 服務出現了以下問題
    AH00526:Syntax error on line 3 of C:/Apache/conf/httpd.conf:
    Invalid command 'PHPInDir' , perhaps misspelled or defined by a module not included in the server configuration


    2.2 讓 PHP 可以存去 MySQL
    事先複製後再修改檔名,還是先修改完內容再複製改檔名?

    回覆刪除
  4. 哈囉哥們 加入你喔 分享你文章地每一天

    回覆刪除
  5. 這篇文章講得非常詳細受益良多:),
    我有幾個問題想問,可能對大大來說會有點愚蠢@@,
    以及我對這方面非常的粗淺,不好意思。

    日前想在raspiberry pi架設LAMP,然後將我的一些動態數據放在上面,
    讓我的筆電可以即時透過網頁去觀看這些動態數據,

    而我的問題在於不太懂web server和client application interface...
    架設web server使用LAMP,而網頁的靜態內容使用HTML去編輯,動態則是PHP(?),
    那使用者瀏覽器介面卻又用了動態HTML+靜態javascript等...ex CSS,
    那到底整個瀏覽器開起來的畫面和內容是由誰提供的0.0...
    可能問題很笨,但我思考好久0....0,

    另外基於這方面的設計不知道大大可以給些方向該去看哪些書。

    回覆刪除
  6. 在cmd執行httpd -k start指令時
    跳出錯誤訊息
    AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::8960:d57f:570a:7173. Set the 'ServerName' directive globally to suppress this message
    不只該如何解決

    回覆刪除
    回覆
    1. 是 Warning (警告,仍可執行) ? 而非 Error (錯誤,不能執行) 吧 ? 要避免這個訊息, httpd.conf 中的 ServerName 給一個值 ( 類似 www.hinet.net 或 shopping.pchome.com.tw 一類的網址名稱)

      刪除
    2. 摁摁 感謝你的回覆 我先執行看看

      刪除
  7. 執行httpd -k start指令時出現:
    httpd: Syntax error on line 1 of C:/Apache24/conf/httpd.conf: Cannot load C:/php/php5apache2_4.dll into server: \xa7\xe4\xa4\xa3\xa8\xecxab\xfc\xa9w\xaa\xba\xbc\xd2\xb2\xd5\xa1C
    請問這代表甚麼意思?

    回覆刪除
  8. AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::9450:bf61:77b8:b834. Set the 'ServerName' directive globally to suppress this message
    (OS 10013)嘗試存取通訊端被拒絕,因為存取權限不足。 : AH00072: make_sock: could not bind to address [::]:80
    (OS 10013)嘗試存取通訊端被拒絕,因為存取權限不足。 : AH00072: make_sock: could not bind to address 0.0.0.0:80
    AH00451: no listening sockets available, shutting down
    AH00015: Unable to open logs

    啟用出現這樣要怎麼解決

    回覆刪除
  9. 您好版大
    我跟著教學做到最後階段的PHP網頁資訊裡
    沒有找到"mysql"、"mysqli"的區域資訊,但是卻找到"mysqlnd"的區域資訊
    請問這兩者的差別大嗎?謝謝

    回覆刪除
    回覆
    1. 請說明您用的版本號碼 ? 下載的檔案名稱 ?
      Windows ?
      Apache ?
      PHP ?
      MySQL ?

      刪除
    2. Windows : Win10
      Apache : Apache 2.2
      PHP : PHP-5.4.45-Win32-VC9-X86.zip
      MySQL : MySQL5.7.10-win64 (sever 5.7 & workbench 6.3CE & Connector C6.1)

      刪除
  10. 请问一下,为甚么 2010 和 2012 的 都是同样的link?
    http://www.microsoft.com/download/en/details.aspx?id=13523

    回覆刪除
  11. 請問版大是否有關於安裝Open SSL文章呢?
    因XAMPP套件部分是含有Open SSL的部分,但因套件使用的Open SSL的版本過舊,
    使用弱點掃描上,會出現版本過舊及安全疑慮問題.
    目前的Open SSL的官方網站推出的新版本,跟以往的OpenSSL的架構不一樣,
    無法直接套將檔案套用上去
    想找尋單一安裝Open SSLk的資訊

    回覆刪除
    回覆
    1. 這篇可以嗎 ?
      [研究] AppServ 8.4.0 + HTTPS (SSL) 安裝 (Windows 2012 R2)
      http://shaurong.blogspot.tw/2016/08/appserv-840-https-ssl-windows-2012-r2.html

      刪除
    2. 感謝版大的回覆,
      但小弟的學術不精,及我的敘述上可能有點問題,
      容許我再詳細的敘述一下
      因目前xammp最新的版本的Open SSL的版本1.0.2h(舊版本)
      我自己在xammp套件上可以更新到OpenSSL 版本至1.0.2j(在Apache /bin/將檔案丟入)
      因H版本及J版本,架構一樣,加密方式也相同,可以將檔案直接覆蓋過去
      檔案來源: https://indy.fulgan.com/SSL/

      但因弱點掃描掃出還是檔案版本過舊
      我至官方查看該版本為1.1.0c (Linux系統 2016/11/10)
      https://www.openssl.org/source/
      我將1.1.0c編譯後更新上去,是無法使用的,即使是其他人編譯的也無法使用
      想請教版大是否有相關訊息可以提供給小弟

      刪除
    3. 感謝版大的回覆,因小弟學術不精及敘述不佳
      請容許我詳細的敘述詳細的問題:
      我使用最新的xampp套件,OpenSSL版本為1.0.2h版本(舊)
      我自己手動更新至OpenSSL版本為1.0.2J版本
      (Apach/bin/將檔案覆蓋過去,因檔案類型架構,加密方式皆為相同,可以直接覆蓋過去)
      檔案來源: https://indy.fulgan.com/SSL/
      使用弱點掃描,掃出1.0.2J的版本依然有安全問題,使用的版本過舊,
      我上網查找的官方網站資訊
      https://www.openssl.org/source/
      官方提供最新版本是openssl-1.1.0c(Linux的系統 11月10日更新的)
      我將檔案編譯過,或使用其他人提供好編譯過後的檔案,將檔案覆蓋過去皆無法使用
      查找網上有相關資訊表示這次大改版,所以有架構皆不同,加密方式也不同(或許因為是大改版的關係,導致將檔案直接覆蓋,無法使用的原因)
      想請教版大是否有相關的資訊可以提供呢,感謝

      刪除
    4. 感謝版大的回覆,因小弟學術不精及敘述不佳
      請容許我詳細的敘述詳細的問題:
      使用最新的xampp套件,OpenSSL版本為1.0.2h版本(舊)
      我自己手動更新至OpenSSL版本為1.0.2J版本
      (Apach/bin/將檔案覆蓋過去,因檔案類型架構,加密方式皆為相同,可以直接覆蓋過去)
      檔案來源: https://indy.fulgan.com/SSL/
      使用弱點掃描,掃出1.0.2J的版本依然有安全問題,使用的版本過舊,
      我上網查找的官方網站資訊
      https://www.openssl.org/source/
      官方提供最新版本是openssl-1.1.0c(Linux的系統 11月10日更新的)
      我將檔案編譯過,或使用其他人提供好編譯過後的檔案,將檔案覆蓋過去皆無法使用
      查找網上有相關資訊表示這次大改版,所以有架構皆不同,加密方式也不同
      (可能因為大改版的關係導致無法直接將檔案覆蓋過去)
      想請教版大是否有相關的資訊可以提供呢,感謝

      刪除
    5. 感謝版大的回覆,因小弟學術不精及敘述不佳
      請容許我詳細的敘述詳細的問題:
      使用最新的xampp套件,OpenSSL版本為1.0.2h版本(舊)
      我自己手動更新至OpenSSL版本為1.0.2J版本
      (Apach/bin/將檔案覆蓋過去,因檔案類型架構,加密方式皆為相同,可以直接覆蓋過去)
      檔案來源: https://indy.fulgan.com/SSL/
      使用弱點掃描,掃出1.0.2J的版本依然有安全問題,使用的版本過舊,
      我上網查找的官方網站資訊
      https://www.openssl.org/source/
      官方提供最新版本是openssl-1.1.0c(Linux的系統 11月10日更新的)
      我將檔案編譯過,或使用其他人提供好編譯過後的檔案,將檔案覆蓋過去皆無法使用
      查找網上有相關資訊表示這次大改版,所以有架構皆不同,加密方式也不同
      (可能因為大改版的關係導致無法直接將檔案覆蓋過去)
      想請教版大是否有相關的資訊可以提供呢,感謝

      刪除
    6. 感謝版大的回覆,因小弟學術不精及敘述不佳
      請容許我詳細的敘述詳細的問題:
      使用最新的xampp套件,OpenSSL版本為1.0.2h版本(舊)
      我自己手動更新至OpenSSL版本為1.0.2J版本
      (Apach/bin/將檔案覆蓋過去,因檔案類型架構,加密方式皆為相同,可以直接覆蓋過去)
      檔案來源: https://indy.fulgan.com/SSL/
      使用弱點掃描,掃出1.0.2J的版本依然有安全問題,使用的版本過舊,
      我上網查找的官方網站資訊
      https://www.openssl.org/source/
      官方提供最新版本是openssl-1.1.0c(Linux的系統 11月10日更新的)
      我將檔案編譯過,或使用其他人提供好編譯過後的檔案,將檔案覆蓋過去皆無法使用
      查找網上有相關資訊表示這次大改版,所以有架構皆不同,加密方式也不同
      (可能因為大改版的關係導致無法直接將檔案覆蓋過去)
      想請教版大是否有相關的資訊可以提供呢,感謝

      刪除
    7. Linux 上的套件(就算移植到Windows上),版本的小數後第一位變化就可能是不相容的大改了,所以 OpenSSL 1.1.x 拿去覆蓋 OpenSSL 1.0.x,失敗不算意外;您應該找 OpenSSL 1.0.x 系列的最新版,覆蓋成功機率會高些;但是您既然已經用 XAMPP 套件,最好等他出新版

      刪除
    8. 基本上,因為安全性問題,個人並不喜歡用無法自動更新的套件,所以像 Apache、PHP、MySQL、OpenSSL、這類套件,比較喜歡架設在 Linux 上,然後排程用 yum 每天自動檢查和更新,而不喜歡架設於 Windows上,尤其是對外服務;Windows 就用 IIS + ASP.NET

      刪除
    9. 請問您用哪一套軟體做 "弱點掃描" ?

      刪除
    10. 是使用Nessus軟體 進行掃描的

      刪除
    11. 基本上,因為安全性問題,個人並不喜歡用無法自動更新的套件,所以像 Apache、PHP、MySQL、OpenSSL、這類套件,比較喜歡架設在 Linux 上,然後排程用 yum 每天自動檢查和更新,而不喜歡架設於 Windows上,尤其是對外服務;Windows 就用 IIS + ASP.NET
      --------------------------------------------------------------

      是的,其實這事講起來說來話長,因這個case是由政府機關那邊接過來的,
      因我們公司的設計上要連到mysql的部分會過api,那這個api設計是用php Linux設計出來的,但政府機關不同意將他的IIS設備改成Liunx(怕直接在IIS使用api會有問題)

      所以間接的延伸出 必須要winserver 上安裝XAMPP套件(apache),然後排解問題之後,又進而延伸出現在看到的OpenSSL安全問題
      (網路上大多的文章也提到未更新的版本有極大的漏洞).

      目前我有先去看apache的官方網站,在windows dowload的部分,
      他有推薦幾個網站是可以去連接下載的部分,我查看了一下,這些官方推薦出最新的apache當中套用的OpenSSL的版本OpenSSL 1.0.x系列的最新版,
      也依然找不到OpenSSL 1.1版

      目前OpenSSL 1.1版的資訊也並不多,不清楚是否是必須搭配apache一起更新才能更新到1.1呢(困惑)

      刪除
    12. [研究] XAMPP for Windows 5.6.23 + HTTPS (SSL) 安裝 (Windows 2012 R2)
      http://shaurong.blogspot.com/2016/08/xampp-for-windows-5623-https-ssl.html

      刪除