2017年3月3日 星期五

[研究] Apache HTTP Web Server 2.4.25 + PHP 7.1.2 安裝 (Windows Server 2016)

[研究] Apache HTTP Web Server 2.4.25 + PHP 7.1.2 安裝 (Windows Server 2016)

2017-03-03

參考資料:

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

續這篇

[研究] Apache HTTP Web Server 2.4.25 安裝 (Windows Server 2016)
http://shaurong.blogspot.com/2017/03/apache-http-web-server-2425-windows.html

下載
http://php.net/downloads.php




(下圖) 把 .zip 解壓到 C:\php 目錄 (注意,別解壓到 C:\ 根目錄,否則一堆檔案)
解壓完成後會看到 C:\php 目錄,裡面有 bin、data、、、等子目錄

其實選哪個目錄都可以,但是後面要修改設定檔案內容比較麻煩,不如一開始目錄設定和設定檔案相同省麻煩。



(下圖) 修改 Apache HTTPd Web Server 的設定檔案 C:\Apache24\conf\httpd.conf,讓 Apache HTTPd Web Server 支援 PHP


C:\Apache24\conf\httpd.conf 檔案內容最後增加

LoadModule php7_module "C:\php\php7apache2_4.dll"
<IfModule php7_module>
PHPIniDir "C:\php\"
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php7
</IfModule>



其中 PHPIniDir 是 Httpd 2.4.6 版新增的。

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

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

(下圖) 寫個測試網頁


(下圖) 修改了 httpd.conf,要重新啟動 Apache 服務才會生效

(下圖) 出現 PHP 資訊畫面就成功 (不管裡面詳細內容是甚麼)
預設 會讀去 C:\Windows\php.ini,不存在也沒關係,會有預設狀態
 (下圖) 測試 HTTPS ( SSL) 也成功

(下圖) PHP 設定檔案為 php.ini
PHP 套件提供2個範本
php.ini-development  開發除錯用
php-ini-production 正式運作環境用

理論上,把範本拷貝到 C:\Windows,改名為 php.ini,再依照需求修改 php.ini 設定檔案內容,然後重新啟動 Apache 服務即可。

實際上測試,不管拷貝哪個範本成為 C:\Windows\php.ini,內容不做任何修改,重新啟動 Apache 服務會成功,但 http://localhost/index.php 都會看到一片空白;如果不複製範本,建立一個內容空白的 C:\Windows\php.ini ,反而可以正常運作。

因為範本內容太多,沒有詳細測試哪裡衝突出問題,但是這點要注意。




其中 PHPIniDir 是 Httpd 2.4.6 版新增的。

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


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

2017-04-19 補充

重新安裝測試,不過 php 已經改版到 php-7.1.4-Win32-VC14-x64.zip
檢視 C:\php\php-ini-production

當初看到這段,認為 short_open_tag 是 On,所以認為 <? 和 ?> 是可以用的
; short_open_tag
;   Default Value: On
;   Development Value: Off
;   Production Value: Off

但是實際上下方還有這段,short_open_tag = Off,所以不能用 <? 和 ?>,而必須用 <?php 和 ?>
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://php.net/short-open-tag
short_open_tag = Off

所以
<?
phpinfo();
?>
必須改成
<?php
phpinfo();
?>

或者設定 short_open_tag = On
(完)

相關文章

[研究] Apache HTTP Web Server 2.4.25 + PHP 7.1.2 安裝 (Windows Server 2016)
[研究] AppServ 2.5.9 架站軟體安裝 (Win7)

[研究] XAMPP 1.8.2-2 x86 架站軟體安裝 (Win7)

[研究] WampServer 2.4 x64 架站軟體安裝 (Win7)

[研究] MediaWiki 1.21.2 維基網站安裝 (CentOS 6.4 x64)

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

[研究] MediaWiki 1.15.1 維基網站安裝 (CentOS 6.4 x64)

6 則留言:

  1. 關於index.php會看到一片空白的問題,我測試後發現是因為你的index.php第一行寫法
    你把第一行的
    <?
    更成
    <?php
    只要多加一個"php",這樣的話就能在複製範本進C:\Windows\的情況下
    頁面內容也能正常顯示了。不需要建立空白的php.ini

    回覆刪除
  2. 您好,請問

    為什麼我用https就沒辦法連,用http就可以?
    (備註:我有改過port,原本預設是80但是我看80有系統再用(pid = 4),所以我把httpd.conf裡面的Listen 80改成 Listen 8080,請問會是這原因嗎?)

    回覆刪除
    回覆
    1. http 一般預設是 80,https 一般預設 443;你把 Listen 80 改為 Listen,改到的可能是 http 吧?

      刪除
    2. 再次下載新版測試,正常,你要不要把你所有過程抓圖貼出來讓其他人檢查一下步驟?

      [研究] Apache HTTP Web Server 2.4.27 x64 安裝 (Windows 7 x64)
      http://shaurong.blogspot.tw/2017/10/apache-http-web-server-2427-x64-windows.html

      刪除