Windows10搭建標準的WAMP開發環境-httpd2.4+php7.2+mariadb10.3

這些年來,也一直都在運維Linux環境,突然有朋友自學PHP開發,說要在自己的windows筆記本上搭建一套PHP的開發環境,之前的開發環境也都是開發人員自己搞定的,所以也沒去研究過。應邀接單後竟然發現自己都不會玩windows的在WAMP環境,說來可悲啊!技術無國界,技術無高低。所以苦水往肚子裏面咽。一翻的google後,在自己高性能的筆記本上使用vmware開始安裝了個全新的windows10系統,然後直接上官網下載了AMP所需的各個部件,一路的嘗試,WAMP架構終於成功了,但有一個感覺是windows環境比Linux環境更難玩啊!爲了能夠讓大家看的更清晰的過程,又重頭到尾來了一次,所以有了下文。

 

環境展示:

操作系統:windows 10專業版(官方原版)

Httpd版本:httpd-2.4.35-o110i-x64-vc14

PHP版本:php-7.2.11-Win32-VC15-x64

MariaDB版本:mariadb-10.3.10-winx64

所有軟件均從官網直接下載

image.png

解壓後軟件存放路徑:C:\AMP,軟件名稱的下級均無其它多餘外層目錄

image.png

image.png

爲了方便日後排查錯誤,建議修改默認配置文件之前,先複製一份以備日後排錯比對使用。

 

Httpd的主配置文件:C:\AMP\httpd\conf\httpd.conf

Httpd的小配文件:C:\AMP\httpd\conf\extra

Httpd的默認證書目錄:C:\AMP\httpd\conf\ssl

Httpd的網頁根目錄:C:\AMP\httpd\htdocs

打開cmd窗口,嘗試啓動httpd

C:\Users\lucker>cd c:\amp\httpd\bin

 

c:\AMP\httpd\bin>httpd.exe

如果收到如下報錯,說明你的系統缺少Visual C++ 環境

image.png

Visual C++ Redistributable for Visual Studio 2015官方下載地址:

https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48145&6B49FDFB-8E5B-4B07-BC31-15695C5A2143=1

image.png

下載併成功安裝後,再次啓動httpd又會收到如下報錯:

c:\AMP\httpd\bin>httpd.exe

httpd.exe: Syntax error on line 40 of C:/AMP/httpd/conf/httpd.conf: ServerRoot must be a valid directory


httpd.conf需要修改的地方有以下幾處:

Define SRVROOT "/Apache24"

需要修改爲自己的httpd的根目錄

Define SRVROOT " C:\AMP\httpd"

 

修改完此處,httpd已經可以正常啓動了

 

順便說明一下httpd隱藏版本設定

ServerTokens Prod

可以放在Define SRVROOT " C:\AMP\httpd"

下一行即可

 

沒有隱藏版本信息之前http報文頭會顯示如下信息

image.png

隱藏版本信息之後

image.png

修改完httpd.conf配置文件之後再次重啓httpd

image.png

cmd命令行停止前臺阻塞的httpd程序,使用CTROL+C組合鍵

此時打開瀏覽器訪問localhost已經正常了

image.png

此時我們可以向Httpd的網頁根目錄添加一個自己的頁面進行測試

C:\AMP\httpd\htdocs\test.html

<html>

<title>test page</title>

<body>

<h1><center>恭喜你,你的httpd服務器已經可以正常工作了!</center></h1>

</body>

</html>

再次使用瀏覽器訪問localhost/test.html進行測試

image.png

如果能看到上圖結果說明你的httpd作爲靜態服務器已經正常了,接下來需要修httpd及PHP的相關配置,使httpd能夠和PHP應用服務器進行整合。

image.png

配置httpd調用php的接口

LoadModule php7_module "C:\AMP\php\php7apache2_4.dll"

PHPIniDir "C:\AMP\php"

 

配置httpd對php文檔格式的支持

IfModule mime_module

AddType application/x-httpd-php .php

 

PHP程序主配置文件,默認沒有,需要自行復制C:\AMP\php\php.ini-production爲php.ini並進行相應修改,

當然如果有需要,也可以複製C:\AMP\php\php.ini-development爲php.ini後進修改。

兩者不同之外通過原來的文件名足以區分。Development環境開啓的調試性參數更多。

 

修改時區爲Asia/Shanghai

date.timezone = Asia/Shanghai


順便說一下隱藏PHP相關信息設定

expose_php = On

修改爲

expose_php = Off

 

沒有隱藏PHP版本信息之前http報文頭信息如下

image.png

如果httpd隱藏了版本信息只會看到X-Powered-By: PHP/7.2.11這一行信息

 

隱藏PHP版本信息之後(不會顯示php應用的任何信息)

image.png

添加httpd整合php之後的測試面

C:\AMP\httpd\htdocs\httpd-php.php

<?php

    echo "恭喜你,你的HTTPD調用PHP配置已經成功!"

?>

首先使用httpd.ext –t做一下配置文件格式的檢查,沒問題之後再次啓動

image.png

再次使用瀏覽器訪問localhost/httpd-php.php進行測試

image.png

如果能看到上圖的結果,說明你的httpd整合php已經沒有問題了。

 

接下來就是mariadb的安裝及配置了

image.png

創建mysql配置文件C:\AMP\mariadb\my.cnf

[mysqld]

innodb_buffer_pool_size=128M

datadir=C:\amp\mariadb\data

socket=C:\amp\mariadb\socket\mysql.sock

symbolic-links=0

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

 

####Self config####

bind-address=0.0.0.0

character-set-server=utf8

skip-name-resolve

innodb_file_per_table

default_storage_engine=innodb

log-warnings=1

slow_query_log=1

long-query-time=2

slow_query_log_file=C:\amp\mariadb\log\slow.log

 

[mysqld_safe]

log-error=C:\amp\mariadb\log\error.log

 

注意:此配置文件需要是unix格式

 

需要自己創建兩個目錄

存放socket的目錄C:\AMP\mariadb\socket

存放日誌目錄C:\AMP\mariadb\log

 

Cmd下啓動MariaDB服務器的命令

 

C:\Users\lucker>cd c:\AMP\mariadb\bin

 

c:\AMP\mariadb\bin>mysqld.exe --basedir=C:\AMP\mariadb --datadir=C:\amp\mariadb\data --log-error=C:\amp\mariadb\log\error.log --socket=C:\amp\mariadb\socket\mysql.sock

MariaDB服務器啓動後會處於前臺阻塞狀態,此cmd窗口不可以關閉

image.png

再打一個新的cmd窗口使用mysql客戶端工具連接測試

C:\Users\lucker>cd c:\amp\mariadb\bin

 

c:\AMP\mariadb\bin>mysql.exe -uroot

image.png

能夠看到如上畫面說明MariaDB服務器的安裝基本完成,接下來寫一個php連接MariaDB的測試面進行測試了

C:\AMP\httpd\htdocs\httpd-mariadb.php

<?php

//定義參數

$servername = "localhost";

$username = "root";

$password = "";

 

// 創建連接

$conn = new mysqli($servername, $username, $password);

 

// 檢測連接

if ($conn->connect_error) {

    die("抱歉,MariaDB數據庫連接失敗!: " . $conn->connect_error);

}

    echo "恭喜你,MariaDB數據庫連接成功,你的WAMP搭建成功!!!";

?>

 

使用瀏覽器打開localhost/httpd-mariadb.php訪問測試

image.png

出現上述報錯提示是源於php的mysqli模塊沒開啓,需要修改php.ini配置文件,指定php擴展組件所在目錄,以及啓用需要的擴展組件。

extension_dir = "C:\AMP\php\ext"

extension=mysqli

 

注意:由於我這裏僅僅爲了給大家展示PHP連接MariaDB,常規來說,需要啓用的模塊不止這一個,需要根據自己的實際情況選擇性的進行開啓。

 

再次重啓httpd服務刷新訪問頁面,成功頁面展示如下

image.png

至此爲止,WAMP環境搭建完成,但要想用的更方便一些,需要把httpd以及mariadb服務端都安裝成服務並設定爲開機自啓動,這樣以後就不用使用煩瑣的cmd命令來服務。


Cmd命令行將httpd安裝爲服務

c:\amp\httpd\bin>httpd.exe -k install -n httpd

Installing the 'httpd' service

The 'httpd' service is successfully installed.

Testing httpd.conf....

Errors reported here must be corrected before the service can be started.

 

c:\amp\httpd\bin>httpd.exe -k start

 

c:\amp\httpd\bin>httpd.exe -k stop

The 'Apache2.4' service is stopping.

The 'Apache2.4' service has stopped.

 

c:\amp\httpd\bin>

image.png

Cmd命令行將MariaDB安裝爲服務

c:\amp\mariadb\bin>mysqld.exe --install mysql --defaults-file=c:\amp\mariadb\my.cnf

Service successfully installed.

 

c:\amp\mariadb\bin>net start mysql

mysql 服務正在啓動 .

mysql 服務已經啓動成功。

 

c:\amp\mariadb\bin>net stop mysql

mysql 服務正在停止.

mysql 服務已成功停止。

 

c:\amp\mariadb\bin>

image.png

windows服務都在cmd命令行下使用net命令進行管理

格式:net start|stop service_name(如果默認名稱很複雜建議安裝服務時人工指定)

c:\amp\httpd\bin>net start httpd

httpd 服務正在啓動 .

httpd 服務已經啓動成功。

 

c:\amp\httpd\bin>net start mysql

mysql 服務正在啓動 .

mysql 服務已經啓動成功。

 

c:\amp\httpd\bin>net stop httpd

httpd 服務正在停止.

httpd 服務已成功停止。

 

c:\amp\httpd\bin>net stop mysql

mysql 服務正在停止.

mysql 服務已成功停止。

 

c:\amp\httpd\bin>

 

至此爲止,終於搞定了windows環境下的WAMP架構的搭建,如果要想調試自己的代碼,就把代碼放置於C:\amp\httpd\htdocs就可以隨心所欲的折騰自己的PHP程序了。


當然對於新手來說,還是強烈建議使用phpstudy或者xampp一鍵安裝包,畢竟這種分開安裝的方式坑會比較多,配置比較複雜。如果想日後維護升級方便,或者有更高的使用需求,自己整合的這種方式當然也就用得上了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章