新版PHP运行环境安装整理

闲来没事整理一下php运行环境的安装,包括windows系统、linux系统下独立安装以及集成环境安装,环境搭建组合包括wamp、wnmp、lnmp,也没啥技术难度,只为建个档,以后不再到网上找了,分享一个,若大家觉得点用,欢迎拿走。

1.Windows系统环境

版本选项:
Windows: 64位
Php版本:php-8.0.3
Apache版本/Nginx(任一,但不建议nginx):Apache2.4.46 / nginx-1.18.0
Mysql版本:8.0.23

安装目录(不安装在c盘):E:\php\env
自定义项目根目录:E:\php\www

环境目录(nginx、Apache任选一安装)

1.1.PHP安装

(一)下载压缩包"
php-8.0.3-win32-vs16-x64.zip (VS16 x64 Thread Safe)"解压到指定安装目录
官网下载地址:
https://windows.php.net/download/(windows版)
说明:php只需下载配置即可

(二)进入目录,拷贝php.ini-production一份命名为php.ini作为php配置文件

(三)Php.ini配置

a. 设置扩展文件路径,找到extension_dir,去掉前面分号并配置扩展库目录,如:
extension_dir = "E:\php\env\php-8.0.3\ext";
b. 根据需求打开gd、mysqli、pdo_mysql、mbstring、curl等常用扩展使用,去掉前面分号即可,如:extension=gd2;
c. 设置时区为中国地区,date.timezone =PRC;
d. 设置支持短标签写法,short_open_tag = Off改为short_open_tag = On;
e. 开启cgi,以支持nginx与php通信(apache则采用模块化与php通信),分别找到以下关键词进行配置(去掉前面分号;开启)如下:
cgi.force_redirect = 1
cgi.fix_pathinfo=1
cgi.rfc2616_headers = 0
f. 配置session存储目录,为了安全尽可能设置为外网访问不到的服务器目录
session.save_path = "C:/WINDOWS/Temp"

说明:下载的php版本需要VS16 x64 Thread Safe版,否则没有apache所需dll库,具体原因自行百度。

(四)(选项)配置php系统环境变量

配置php系统环境变量

说明:执行php命令若报错:PHP Warning: 'C:\Windows\SYSTEM32\VCRUNTIME140.dll' 14.14 is not compatible......需要Visual Studio 2015、2017 和 2019支持,根据实际情况下载安装。

1.2. APACHE安装

(一) 下载压缩包
httpd-2.4.46-o111j-x64-vc15.zip并解压到指定目录
官网下载地址:
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. 添加对php模块的支持,搜索关键词"#LoadModule"找到模块加载末尾行追加如下内容:
#对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. 自定义项目根目录,查找关键词"DocumentRoot"修改如下内容:
DocumentRoot "${SRVROOT}/htdocs" 
<Directory "${SRVROOT}/htdocs">
#修改为如下内容:
DocumentRoot "E:/php/www" 
<Directory "E:/php/www">
说明:提前新建好www根目录
d. 取消目录索引(即禁止曝出项目目录结构),Options Indexes FollowSymLinks 改为Options FollowSymLinks;
e. 查找"DirectoryIndex"设置根目录默认访问页面如下:
<IfModule dir_module> 
DirectoryIndex index.php index.htm index.html 
</IfModule>

(三)安装apache系统服务,cmd命令窗口,切换到E:\php\env\httpd-2.4.46\bin目录, 执行httpd.exe -k install -n Apache2.4(若删除服务:sc delete Apache2.4);

(四)启动apache服务,在电脑服务中找到apache点击启动或通过E:\php\env\httpd-2.4.46\bin\ApacheMonitor.exe进行启动;

apache启动状态
ApacheMonitor.exe管理效果

(五)php运行环境测试:在www目录中新建index.php,输入探针函数测试web服务以及各项配置是否生效,内容如下:
<?php phpinfo(); ?>

浏览器输入http://localhost运行成功效果

1.3.MYSQL安装

(一)下载压缩包mysql-8.0.23-winx64.zip并解压到指定目录
官网下载地址:
https://dev.mysql.com/downloads/mysql/
国内镜像地址:中科大:
http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/,搜狐:
http://mirrors.sohu.com/mysql/MySQL-8.0/

(二)mysql目录下新建配置文件my.ini,添加内容如下:

[mysqld] 
# 端口 
port=3306 
# 安装目录 
basedir=E:/php/env/mysql-8.0.23 
# 数据存放目录 
datadir=E:/php/env/mysql-8.0.23/data 
# mysql服务器支持的最大并发连接数(用户数) 
max_connections=200 
# 最大连接错误次数 
max_connect_errors=10 
# 默认编码 
character-set-server=utf8mb4 
# 默认表的存储引擎 
default-storage-engine=INNODB 
# 默认使用"mysql_native_password"插件认证 
default_authentication_plugin=mysql_native_password 
[mysql] 
# 默认使用编码utf8mb4 
default-character-set=utf8mb4 
[client] 
# 客户端连接服务端默认使用的端口 
port=3306 
default-character-set=utf8mb4

说明:my.ini根据优化需求配置

(三)初始化数据库:系统管理员身份运行cmd,切换到E:\php\env\mysql-8.0.23\bin目录(之后步骤都在这个目录执行命令),执行命令:mysqld --initialize --console,记住初始化过程中生成的临时密码,后续修改密码使用;

初始化数据库,获取临时密码

(四)安装mysql系统服务并运行服务,执行命令mysqld --install Mysql,之后,执行net start mysql;

安装mysql系统服务并启动服务

(五)修改密码:执行命令mysql -u root -p,输入临时密码,登录后执行命令ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; 修改新密码为root(不建议密码设置为root);

登录mysql

(六)配置mysql系统环境变量(可选项);

配置mysql环境变量(可选项)

(七)MYSQL安装完成,可通过命令、Navicat等数据库工具测试。

查看mysql版本

1.4.NGINX安装

安装wnmp组合的nginx,若与iis或apache服务的端口冲突,设置其他端口或停掉其他服务后再运行nginx。

(一)下载压缩包nginx-1.18.0.zip(windows版)并解压到指定目录
官网下载地址:
http://nginx.org/en/download.html

(二)点击nginx.exe测试nginx服务,出现"welcome..."代表运行成功

nginx运行成功

(三)修改配置文件,指定项目根目录以及开通对php的支持

a. 指定根目录以及默认访问页面

location / {            
  root   html;             
  index  index.html index.htm;         
}
以上内容改为:
location / {             
  root   E:/php/www;             
  index  index.php index.html index.htm;         
}

b. 开通对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; 
#}

#并修改内容为:

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用于快速启动、停止nginx与php的通信

a. 百度下载RunHiddenConsole,将RunHiddenConsole.exe、start_nginx.bat、stop_nginx.bat拷贝到nginx目录下,并分别修改start_nginx.bat、stop_nginx.bat内容;

RunHiddenConsole目录结构

start_nginx.bat内容如下:

@echo off 
REM Windows 下无效  
REM set PHP_FCGI_CHILDREN=5 
REM 每个进程处理的最大请求数,或设置为 Windows 环境变量  
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内容如下:

@echo off 
echo Stopping nginx...   
taskkill /F /IM nginx.exe > nul 
echo Stopping PHP FastCGI... 
taskkill /F /IM php-cgi.exe > nul 
exit

b. 测试:E:\php\www项目根目录下新建hello.php文件,双击运行start_nginx.bat,浏览器访问http://localhost/hello.php测试结果,双击stop_nginx.bat则停止nginx服务。

wnmp环境运行结果

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容