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

操作系统: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=true

default-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';

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

至此全部配置完毕。

标签