剛開始學習php的時候不少人應該都碰到過搭建開發環境的問題吧,我當時也遇到過很多坑,特此記錄一下,希望能為其他人提供一些幫助。
首先是去官網下載壓縮包:
不知道下載地址的戳下面:
Apache服務器:https://www.apachelounge.com/download/
MySQL數據庫:https://dev.mysql.com/downloads/mysql/
PHP:https://www.php.net/downloads.php
phpMyAdmin:https://www.phpmyadmin.net/
請確保你的操作系統已經安裝了相關的VC++運行庫。
接下來,新建一個wamp文件夾,把下載好的文件解壓到這里。注意將phpMyAdmin解壓到Apache24的htdocs目錄,這是訪問服務器的默認目錄,建議給它建立一個桌面快捷方式。然后將這些文件夾重命名一下:
先來配置Apache服務器吧,打開~/WAMP/Apache/conf/httpd.conf,找到路徑定義Define SRVROOT(大約在37行),修改為你解壓目錄的地址同時加入php模塊地址,注意Windows不區分大小寫,正斜杠也可以在路徑中使用:
1 Define SRVROOT "d:/wamp/apache" 2 PHPIniDir "d:/wamp/php" 3 LoadModule php7_module d:/wamp/php/php7apache2_4.dll 4 AddType application/x-httpd-php .html .php
然后取消掉ServerName(229行左右)前面的注釋符:
最后修改DirectoryIndex(288行左右),將index.php加入默認主頁:
接着,配置php環境,復制php文件夾下的php.ini-development更名為php.ini,修改extension_dir為ext文件夾解壓的目錄,我這里是解壓在D盤:
然后啟用mbstring、mysqli、pdo_mysql擴展:
mbstring確保phpMyAdmin的部分高級功能可以正常使用,mysqli和pdo_mysql都是數據庫擴展,我比較喜歡用pdo,例如編寫一個連接數據庫的函數connect.php:
1 <?php 2 //返回連接數據庫的對象 3 function connect() { 4 try { 5 $db = new PDO('mysql:host=localhost;dbname=upload', 'root', ''); 6 $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 7 $db->exec('use upload'); 8 } catch (PDOException $e) { 9 echo "Couldn't connect database:" . $e->getMessage(); 10 } 11 return $db; 12 } 13 ?>
在其他文件require 'connect.php'之后就能使用connect函數了,很方便吧~好了,進入正題,現在我們的php環境其實已經配置好了,不過我還是建議修改一下時區(也可以在程序里改):
現在來啟動Apache服務器吧,以管理員身份打開cmd進入到~/wamp/apache/bin目錄,在Windows下要進入其他分區輸入盤符加冒號即可,例如“d:”,在該目錄下執行:
1 httpd -k install 2 httpd -k start
可能會有防火牆提示,允許即可。
打開瀏覽器,輸入localhost,看到如下畫面即安裝成功:
最后來配置一下MySQL數據庫和MySQL的PHP可視化工具phpMyAdmin。先在MySQL的解壓目錄下新建一個my.ini:
1 [mysqld] 2 port = 3306 3 4 ; 選擇5.x版本的加密插件 5 default_authentication_plugin = mysql_native_password 6 7 basedir = d:/wamp/mysql 8 datadir = d:/wamp/mysql/data
這里要指出的是我去年安裝MySQL的時候是剛更新8.0,啟用了新的加密插件導致PHP連不上MySQL,所以選擇使用老版本的插件,最近一直學習前端開發也沒去關注PHP社區不知道能不能用8.0的加密插件了,反正老版本的肯定兼容就行了~懶
以管理員身份打開控制台進入到~/wamp/mysql/bin目錄輸入如下指令:
1 mysqld install 2 mysqld --initializa-insecure 3 net start mysql
使用不安全的初始化mysql用戶名為root密碼為空,以后再設置密碼即可。
連接數據庫:$ mysql -u root -p
可以把該路徑加入到用戶環境變量里,就可以在任何路勁下使用mysql數據庫,不過初學者還是喜歡使用圖形化界面,那么我們就來配置一下phpMyAdmin。
進入到phpMyAdmin的解壓路徑找到config.sample.inc.php,將它改名為config.inc.php,同時修改$cfg['Servers'][$i]['AllowNoPassword']為true,即允許空密碼登錄:
往上在大約17行的位置找到$cfg['blowfish_secret'],這里需要設置一個長度為32位的字符串用來加密cookie,雖然現在是建議使用HTML5的Web存儲。最后重啟一下服務器使phpMyAdmin的配置生效:$ httpd -k restart
打開瀏覽器輸入localhost/phpmyadmin打開並登錄phpMyAdmin:
到這里,wamp的配置工作已經全部結束,不過,對於從事計算機開發的我們來說,“懶惰”是一種美德。於是我編寫了一個批處理程序install.bat來自動搭建wamp環境:
1 @echo off 2 3 rem 配置apache服務器 4 echo Define SRVROOT "%cd%\apache" > .\apache\conf\httpd.conf 5 echo PHPIniDir "%cd%\php" >> .\apache\conf\httpd.conf 6 echo LoadModule php7_module %cd%\php\php7apache2_4.dll >> .\apache\conf\httpd.conf 7 type .\conf\httpd.conf >> .\apache\conf\httpd.conf 8 rem 建立www文件夾的桌面快捷方式 9 mklink /j %userprofile%\Desktop\www .\www 10 11 rem 配置php 12 echo [PHP] > .\php\php.ini 13 echo extension_dir = "%cd%\php\ext" >> .\php\php.ini 14 type .\conf\php.ini-development >> .\php\php.ini 15 rem 配置phpmyadmin 16 type .\conf\config.sample.inc.php > .\www\phpmyadmin\config.inc.php 17 18 rem 安裝並啟動apache 19 .\apache\bin\httpd -k install 20 .\apache\bin\httpd -k start 21 22 rem 配置mysql數據庫 23 type .\conf\my.ini > .\mysql\my.ini 24 echo basedir = %cd%\mysql >> .\mysql\my.ini 25 echo datadir = %cd%\mysql\data >> .\mysql\my.ini 26 rem 安裝並初始化mysql用戶名root密碼為空 27 .\mysql\bin\mysqld install 28 if not exist .\mysql\data (.\mysql\bin\mysqld --initialize-insecure) 29 net start mysql 30 rem 將mysql添加到環境變量 31 setx path "%path%;%cd%\mysql\bin" 32 33 pause
我將部分修改的不涉及到路徑信息的配置文件放置在conf文件夾,然后將服務器的默認訪問目錄設置到新建的www文件夾。大致目錄如下,請將apache、mysql和php分別解壓到對應目錄:
演示效果如下: