Windows Server 2019 配置PHP环境(图文教程)

news/2024/12/22 18:04:32/

操作系统:Windows Server 2019
运行模式:IIS10 + fastcgi + PHP(安装IIS的时候选择上CGI)
软件版本:MySQL 5.7.37 解压版 / PHP 7.4.29 / PHP Manager 1.5.0 / phpMyAdmin 5.1.3

1、MySQL 5.7.37 解压版安装:

为什么我会选择解压版而不是安装版?一是因为安装版没有64位版本;二是因为安装版的软件在重装系统或者挪动软件的位置后,就会出现无法使用的情况,而解压版不存在这样的问题,只需要重新配置一下即可使用。

软件版本:MySQL 5.7.37
版本类型:MySQL Community Server 社区版本,免费,但是Mysql不提供官方技术支持。
环境支持:Microsoft Visual C ++ 2013 Redistributable (X64) 此软件请自行下载安装
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads

Windows Server 2019 配置PHP环境(图文教程)插图

选择Windows (X86,64bit) 版本,点击下载;进到另一个页面,同样在接近页面底部的地方找到如下图所示的位置:

Windows Server 2019 配置PHP环境(图文教程)插图1

不用理会上面的登录和注册按钮,直接点击No thanks, just start my download.就可以下载。

# MySQL安装:

下载完成后,将其解压到 D:\Server\mysql-5.7.37-winx64 目录(给予该目录Users 默认权限)。
添加环境变量:右键此 电脑 → 属性,点击 高级系统设置 → 环境变量 → 选择 path ,如下图:点击编辑

Windows Server 2019 配置PHP环境(图文教程)插图2

点击:新建 然后添加 D:\Server\mysql-5.7.37-winx64\bin 点击确定后返回。

Windows Server 2019 配置PHP环境(图文教程)插图3

如何验证是否添加成功
选择命令提示符(管理员),打开CMD,输入mysql,回车。
如果提示 Can't connect to MySQL server on 'localhost' 则证明添加成功;
如果提示 mysql 不是内部或外部命令,也不是可运行的程序或批处理文件则表示添加添加失败,请重新检查步骤并重试。
添加成功后,CMD不要关掉,一会还要用。

# 新建一个文本文件,内容如下:

[mysql]#设置mysql客户端默认字符集default-character-set=utf8[mysqld]#设置3306端口port = 3306 #设置mysql的安装目录basedir=D:\Server\mysql-5.7.37-winx64#设置mysql数据库的数据的存放目录datadir=D:\Server\mysql-5.7.37-winx64\data#允许最大连接数max_connections=200#服务端使用的字符集默认为8比特编码的latin1字符集character-set-server=utf8#创建新表时将使用的默认存储引擎explicit_defaults_for_timestamp=truedefault-storage-engine=INNODB

把上面的文本文件另存为 my.ini,存放的路径为MySQL的根目录 D:\Server\mysql-5.7.37-winx64\

上面代码意思就是配置数据库的默认编码集和默认存储引擎,关于my.ini文件的内容,网上有很多更详细的介绍,可以配置的选项有很多,有兴趣自行百度。

# 初始化MySQL

DOS命令下进如 D:\Server\mysql-5.7.37-winx64\ 目录

Windows Server 2019 配置PHP环境(图文教程)插图4

输入命令:mysqld --initialize-insecure,回车,稍微等待一会,如果出现没有出现报错信息(如下图)则证明data目录初始化没有问题,此时再查看MySQL目录下已经有data目录生成。

Windows Server 2019 配置PHP环境(图文教程)插图5

# 注册MySQL服务

继续输入命令:mysqld -install,回车。

Windows Server 2019 配置PHP环境(图文教程)插图6

# 启动MySQL服务

继续输入命令:net start mysql,回车。

Windows Server 2019 配置PHP环境(图文教程)插图7

# 修改默认账户密码

输入命令:mysqladmin -u root password 1234,这里的1234就是指默认管理员(即root账户)的密码

Windows Server 2019 配置PHP环境(图文教程)插图8

至此,mysql-5.7.37 解压版安装完毕!

# 登录MySQL

输入命令:mysql -uroot -p1234,回车,出现下图且左下角为 mysql>,则登录成功。

# 卸载MySQL

命令提示符(管理员):输入:net stop mysql,回车。再输入:mysqld -remove mysql,回车。

最后删除MySQL目录及相关的环境变量。至此,MySQL卸载完成!

2、PHP 7.4.29 安装

版本类型:PHP 7.4.29 - VC15 x64 Non Thread Safe 这里我们选择ZIP格式
环境支持:Microsoft Visual C++ 2015-2019 Redistributable 此软件请自行下载安装
下载地址:https://windows.php.net/download

Windows Server 2019 配置PHP环境(图文教程)插图9

下载后我们得到 php-7.4.29-nts-Win32-vc15-x64.zip 文件,解压缩到 D:\Server\PHP_7.4.29 目录;并给予该目录Users默认权限。

建议每个单独的网站配单独的PHP程序。这样根据情况配置各个参数,互不影响。
比如:D:\Server\PHP_7.4.29_001【001网站专用】;D:\Server\PHP_7.4.29_002【002网站专用】

建立 D:\Server\Temp 目录,用于PHP的缓存日志等文件,给予这个目录IIS_IUSRS用户全部权限。
PHP的参数具体配置,请看下面说到的PHP Manager介绍。

3、PHP Manager 1.5.0 安装:

这是IIS专属的PHP管理插件,使用简单方便,免去了手工配置php.ini的麻烦,图形化管理界面,配置完毕后还不需要重新启动IIS服务即可生效。

软件版本:HP Manager 1.5.0
适用环境:IIS 7、IIS 7.5、IIS 8、IIS 8.5、IIS 10
下载地址:https://www.iis.net/downloads/community/2018/05/php-manager-150-for-iis-10

安装很简单,一路默认即可,完毕后打开IIS管理器,选择一个网站,右边就看可以看见他的图标。

Windows Server 2019 配置PHP环境(图文教程)插图10

安装完毕后,如何让网站支持PHP,以及设置PHP的参数?请以下面 phpMyAdmin 网站的安装为例。往下看

4、phpMyAdmin 安装:

phpMyAdmin是简单方便的Web接口管理MySQL数据库的程序。图形化操作,人性化管理。MYSQL维护的利器。

软件版本:phpMyAdmin 5.1.3
下载地址:http://www.phpmyadmin.net  (国内打不开,请使用魔法方式!)

安装说明:
1、解压缩到 D:\server\phpMyAdmin-5.1.3-all-languages\
2、在 IIS 中建立 phpMyAdmin 网站;点击右边的 PHP Manager 图标:

Windows Server 2019 配置PHP环境(图文教程)插图11

点击下图的 Register new PHP version 进行PHP程序注册:

Windows Server 2019 配置PHP环境(图文教程)插图12

如下图:路径指向 D:\Server\PHP_7.4.29\php-cgi.exe

Windows Server 2019 配置PHP环境(图文教程)插图13

接下来有两个地方需要设置,看下图:

Windows Server 2019 配置PHP环境(图文教程)插图14

设置: Set runtime limits
这里是上传大小限制,内存使用等设置,根据服务器的情况自己设置。

Windows Server 2019 配置PHP环境(图文教程)插图15

设置:Manage all settings

1、找到 disable_functions 禁用一些php高危函数,添加下面的这些值:
注意:其中某些禁用的函数可能会影响某些网站程序的正常功能,请根据实际情况选择性的配置。

passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

2、找到 upload_tmp_dir 这是PHP上传临时目录
默认为:"C:\Windows\Temp\" 修改为 "D:\Server\Temp\"

3、找到 date.timezone 这里更改区时
默认为:"Asia/Brunei" 修改为:"Asia/Shanghai"

4、找到 short_open_tag
默认为:Off 修改为:On

5、找到 session.save_path
默认为:"C:\Windows\Temp\" 修改为 "D:\Server\Temp\"

6、找到 erro_log
默认为:"C:\Windows\Temp\php-7.4.29_errors.log" 修改为 "D:\Server\Temp\php-7.4.29_errors.log"

确定以上配置后,此时我们可以来测试一下,PHP有没有正确配置了,返回PHPManager管理界面,点击chedk phpinfo() 进行测试;出现下图所示,表是PHP环境配置成功!

Windows Server 2019 配置PHP环境(图文教程)插图16

PHP环境配置成功后,我们再来设置网站程序:

修改根phpMyAdmin目录下 config.sample.inc.php 文件该名为:config.inc.php
查找:$cfg['blowfish_secret'] = '';
修改:$cfg['blowfish_secret'] = 'hdgfhjeyriweoiuskjhsfdhcxvlkjxvc';
否则打开phpMyAdmin网站会出现:配置文件现在需要一个短语密码。注意:密码最少32位。

打开网站,程序会提示,有部分高级功能没有开启,现在我们需要建立一个phpMyAdmin使用的数据库和用户,数据库名和用户名都为:phpmyadmin 密码自己设置吧,将phpmyadmin目录下的sql/create_tables.sql导入这个数据库。打开config.inc.php找到如下代码:

// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
// $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
// $cfg['Servers'][$i]['relation'] = 'pma__relation';
// $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
// $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
// $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
// $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
// $cfg['Servers'][$i]['history'] = 'pma__history';
// $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
// $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
// $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
// $cfg['Servers'][$i]['recent'] = 'pma__recent';
// $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
// $cfg['Servers'][$i]['users'] = 'pma__users';
// $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
// $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
// $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
// $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
// $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
// $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

修改为:(就是去掉前面的//)

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';$cfg['Servers'][$i]['relation'] = 'pma__relation';$cfg['Servers'][$i]['table_info'] = 'pma__table_info';$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';$cfg['Servers'][$i]['column_info'] = 'pma__column_info';$cfg['Servers'][$i]['history'] = 'pma__history';$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';$cfg['Servers'][$i]['tracking'] = 'pma__tracking';$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';$cfg['Servers'][$i]['recent'] = 'pma__recent';$cfg['Servers'][$i]['favorite'] = 'pma__favorite';$cfg['Servers'][$i]['users'] = 'pma__users';$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

现在刷新一下网站,没有提示了,高级功能已经开启了。

至此全部配置完毕。


http://www.ppmy.cn/news/1557255.html

相关文章

CodeSurfer 和 Tree-sitter对比

CodeSurfer 和 Tree-sitter 都是代码分析工具,但它们的设计理念、功能和使用场景有很大的不同。要决定在解析一个 C 项目 时选择哪个工具,我们需要全面对比它们的特点、优劣和适用场景。 1. 简介对比 CodeSurfer: 是一个专门用于静态分析代码…

Elasticsearch-DSL高级查询操作

一、禁用元数据和过滤数据 1、禁用元数据_source GET product/_search {"_source": false, "query": {"match_all": {}} }查询结果不显示元数据 禁用之前: {"took" : 0,"timed_out" : false,"_shards" : {&quo…

【Qt】显示类控件:QLabel、QLCDNumber、QProgressBar、QCalendarWidget

目录 QLabel QFrame 例子: textFormat pixmap、scaledContents alignment wordWrap、indent、margin buddy QLCDNumber 例子: QTimer QProgressBar 例子: QCalendarWidget 例子: QLabel 标签控件,用来显示…

故障诊断 | 一个小创新:特征提取+KAN分类

往期精彩内容: Python-凯斯西储大学(CWRU)轴承数据解读与分类处理 基于FFT CNN - BiGRU-Attention 时域、频域特征注意力融合的轴承故障识别模型-CSDN博客 基于FFT CNN - Transformer 时域、频域特征融合的轴承故障识别模型-CSDN博客 P…

使用CNN模型训练图片识别(键盘,椅子,眼镜,水杯,鼠标)

首先是环境: 我是在Anaconda3中的Jupyter Notebook (tensorflow)中进行训练,环境各位自行安装 数据集: 本次数据集五个类型(键盘,椅子,眼镜,水杯,鼠标)我收集了每个接近两…

Neo4j插入数据逐级提升速度4倍又4倍

语雀版:https://www.yuque.com/xw76/back/dtukgqfkfwg1d6yo 目录 背景介绍初始方案Node()创建事务批量提交记录Node是否存在生成Cypher语句执行数据库参数优化切换成85k个三元组测试建索引(很显著!!!)MATCH…

UE5 Lyra项目源码分析-角色配置说明

在上一篇里,我们研究了关卡的配置如何在GameMode实现加载的,并稍微理解了Lyra是如何实现的模块化,由于模块化太彻底,所以理解起来有些难,在这一篇里,我们看一下配置里面比较想了解的一块。就是角色是如何配…

阿里数据仓库-数据模型建设方法总结

一、大数据领域建模综述 1.1 为什么需要数据建模 有结构地分类组织和存储是我们面临的一个挑战。 数据模型强调从业务、数据存取和使用角度合理存储数据。 数据模型方法,以便在性能、成本、效率之间取得最佳平衡 成本:良好的数据模型能极大地减少不必要的数据冗余,也能实现…