閑來(lái)沒(méi)事整理一下php運(yùn)行環(huán)境的安裝,包括windows系統(tǒng)、linux系統(tǒng)下獨(dú)立安裝以及集成環(huán)境安裝,環(huán)境搭建組合包括wamp、wnmp、lnmp,也沒(méi)啥技術(shù)難度,只為建個(gè)檔,以后不再到網(wǎng)上找了,分享一個(gè),若大家覺(jué)得點(diǎn)用,歡迎拿走。
1.Windows系統(tǒng)環(huán)境
版本選項(xiàng):
Windows: 64位
Php版本:php-8.0.3
Apache版本/Nginx(任一,但不建議nginx):Apache2.4.46 / nginx-1.18.0
Mysql版本:8.0.23
安裝目錄(不安裝在c盤(pán)):E:\php\env
自定義項(xiàng)目根目錄:E:\php\www

1.1.PHP安裝
(一)下載壓縮包"
php-8.0.3-win32-vs16-x64.zip (VS16 x64 Thread Safe)"解壓到指定安裝目錄
官網(wǎng)下載地址:
https://windows.php.net/download/(windows版)
說(shuō)明:php只需下載配置即可
(二)進(jìn)入目錄,拷貝php.ini-production一份命名為php.ini作為php配置文件
(三)Php.ini配置
a. 設(shè)置擴(kuò)展文件路徑,找到extension_dir,去掉前面分號(hào)并配置擴(kuò)展庫(kù)目錄,如:
extension_dir = "E:\php\env\php-8.0.3\ext";
b. 根據(jù)需求打開(kāi)gd、mysqli、pdo_mysql、mbstring、curl等常用擴(kuò)展使用,去掉前面分號(hào)即可,如:extension=gd2;
c. 設(shè)置時(shí)區(qū)為中國(guó)地區(qū),date.timezone =PRC;
d. 設(shè)置支持短標(biāo)簽寫(xiě)法,short_open_tag = Off改為short_open_tag = On;
e. 開(kāi)啟cgi,以支持nginx與php通信(apache則采用模塊化與php通信),分別找到以下關(guān)鍵詞進(jìn)行配置(去掉前面分號(hào);開(kāi)啟)如下:
cgi.force_redirect = 1
cgi.fix_pathinfo=1
cgi.rfc2616_headers = 0
f. 配置session存儲(chǔ)目錄,為了安全盡可能設(shè)置為外網(wǎng)訪問(wèn)不到的服務(wù)器目錄
session.save_path = "C:/WINDOWS/Temp"
說(shuō)明:下載的php版本需要VS16 x64 Thread Safe版,否則沒(méi)有apache所需dll庫(kù),具體原因自行百度。
(四)(選項(xiàng))配置php系統(tǒng)環(huán)境變量

說(shuō)明:執(zhí)行php命令若報(bào)錯(cuò):PHP Warning: 'C:\Windows\SYSTEM32\VCRUNTIME140.dll' 14.14 is not compatible......需要Visual Studio 2015、2017 和 2019支持,根據(jù)實(shí)際情況下載安裝。
1.2. APACHE安裝
(一) 下載壓縮包
httpd-2.4.46-o111j-x64-vc15.zip并解壓到指定目錄
官網(wǎng)下載地址:
https://www.apachehaus.com/cgi-bin/download.plx(windows版本)
(二)編輯配置文件conf/httpd.conf如下:
a. 修改Define SRVROOT "/Apache24" 為apache具體安裝目錄 Define SRVROOT "E:/php/env/httpd-2.4.46" ;
b. 添加對(duì)php模塊的支持,搜索關(guān)鍵詞"#LoadModule"找到模塊加載末尾行追加如下內(nèi)容:
#對(duì)php支持
LoadModule php_module "E:/php/env/php-8.0.3/php8apache2_4.dll"
PHPIniDir "E:/php/env/php-8.0.3"
AddType application/x-httpd-php .php .htm .html
c. 自定義項(xiàng)目根目錄,查找關(guān)鍵詞"DocumentRoot"修改如下內(nèi)容:
DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">
#修改為如下內(nèi)容:
DocumentRoot "E:/php/www"
<Directory "E:/php/www">
說(shuō)明:提前新建好www根目錄
d. 取消目錄索引(即禁止曝出項(xiàng)目目錄結(jié)構(gòu)),Options Indexes FollowSymLinks 改為Options FollowSymLinks;
e. 查找"DirectoryIndex"設(shè)置根目錄默認(rèn)訪問(wèn)頁(yè)面如下:
<IfModule dir_module>
DirectoryIndex index.php index.htm index.html
</IfModule>
(三)安裝apache系統(tǒng)服務(wù),cmd命令窗口,切換到E:\php\env\httpd-2.4.46\bin目錄, 執(zhí)行httpd.exe -k install -n Apache2.4(若刪除服務(wù):sc delete Apache2.4);
(四)啟動(dòng)apache服務(wù),在電腦服務(wù)中找到apache點(diǎn)擊啟動(dòng)或通過(guò)E:\php\env\httpd-2.4.46\bin\ApacheMonitor.exe進(jìn)行啟動(dòng);


(五)php運(yùn)行環(huán)境測(cè)試:在www目錄中新建index.php,輸入探針函數(shù)測(cè)試web服務(wù)以及各項(xiàng)配置是否生效,內(nèi)容如下:
<?php phpinfo(); ?>

1.3.MYSQL安裝
(一)下載壓縮包mysql-8.0.23-winx64.zip并解壓到指定目錄
官網(wǎng)下載地址:
https://dev.mysql.com/downloads/mysql/
國(guó)內(nèi)鏡像地址:中科大:
http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/,搜狐:
http://mirrors.sohu.com/mysql/MySQL-8.0/
(二)mysql目錄下新建配置文件my.ini,添加內(nèi)容如下:
[mysqld]
# 端口
port=3306
# 安裝目錄
basedir=E:/php/env/mysql-8.0.23
# 數(shù)據(jù)存放目錄
datadir=E:/php/env/mysql-8.0.23/data
# mysql服務(wù)器支持的最大并發(fā)連接數(shù)(用戶數(shù))
max_connections=200
# 最大連接錯(cuò)誤次數(shù)
max_connect_errors=10
# 默認(rèn)編碼
character-set-server=utf8mb4
# 默認(rèn)表的存儲(chǔ)引擎
default-storage-engine=INNODB
# 默認(rèn)使用"mysql_native_password"插件認(rèn)證
default_authentication_plugin=mysql_native_password
[mysql]
# 默認(rèn)使用編碼utf8mb4
default-character-set=utf8mb4
[client]
# 客戶端連接服務(wù)端默認(rèn)使用的端口
port=3306
default-character-set=utf8mb4
說(shuō)明:my.ini根據(jù)優(yōu)化需求配置
(三)初始化數(shù)據(jù)庫(kù):系統(tǒng)管理員身份運(yùn)行cmd,切換到E:\php\env\mysql-8.0.23\bin目錄(之后步驟都在這個(gè)目錄執(zhí)行命令),執(zhí)行命令:mysqld --initialize --console,記住初始化過(guò)程中生成的臨時(shí)密碼,后續(xù)修改密碼使用;

(四)安裝mysql系統(tǒng)服務(wù)并運(yùn)行服務(wù),執(zhí)行命令mysqld --install Mysql,之后,執(zhí)行net start mysql;

(五)修改密碼:執(zhí)行命令mysql -u root -p,輸入臨時(shí)密碼,登錄后執(zhí)行命令A(yù)LTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; 修改新密碼為root(不建議密碼設(shè)置為root);

(六)配置mysql系統(tǒng)環(huán)境變量(可選項(xiàng));

(七)MYSQL安裝完成,可通過(guò)命令、Navicat等數(shù)據(jù)庫(kù)工具測(cè)試。

1.4.NGINX安裝
安裝wnmp組合的nginx,若與iis或apache服務(wù)的端口沖突,設(shè)置其他端口或停掉其他服務(wù)后再運(yùn)行nginx。
(一)下載壓縮包nginx-1.18.0.zip(windows版)并解壓到指定目錄
官網(wǎng)下載地址:
http://nginx.org/en/download.html
(二)點(diǎn)擊nginx.exe測(cè)試nginx服務(wù),出現(xiàn)"welcome..."代表運(yùn)行成功

(三)修改配置文件,指定項(xiàng)目根目錄以及開(kāi)通對(duì)php的支持
a. 指定根目錄以及默認(rèn)訪問(wèn)頁(yè)面
location / {
root html;
index index.html index.htm;
}
以上內(nèi)容改為:
location / {
root E:/php/www;
index index.php index.html index.htm;
}
b. 開(kāi)通對(duì)php的支持,去掉前面的#注釋
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
#并修改內(nèi)容為:
location ~ \.php$ {
root E:/php/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
(四)下載RunHiddenConsole用于快速啟動(dòng)、停止nginx與php的通信
a. 百度下載RunHiddenConsole,將RunHiddenConsole.exe、start_nginx.bat、stop_nginx.bat拷貝到nginx目錄下,并分別修改start_nginx.bat、stop_nginx.bat內(nèi)容;

start_nginx.bat內(nèi)容如下:
@echo off
REM Windows 下無(wú)效
REM set PHP_FCGI_CHILDREN=5
REM 每個(gè)進(jìn)程處理的最大請(qǐng)求數(shù),或設(shè)置為 Windows 環(huán)境變量
set PHP_FCGI_MAX_REQUESTS=1000
echo Starting PHP FastCGI...
RunHiddenConsole E:/php/env/php-8.0.3/php-cgi.exe -b 127.0.0.1:9000 -c E:/php/env/php-8.0.3/php.ini
echo Starting nginx...
RunHiddenConsole E:/php/env/nginx-1.18.0/nginx.exe -p E:/php/env/nginx-1.18.0
stop_nginx.bat內(nèi)容如下:
@echo off
echo Stopping nginx...
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
exit
b. 測(cè)試:E:\php\www項(xiàng)目根目錄下新建hello.php文件,雙擊運(yùn)行start_nginx.bat,瀏覽器訪問(wèn)http://localhost/hello.php測(cè)試結(jié)果,雙擊stop_nginx.bat則停止nginx服務(wù)。
