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 (X86,64bit) 版本,点击下载;进到另一个页面,同样在接近页面底部的地方找到如下图所示的位置:

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

# MySQL安装:
下载完成后,将其解压到 D:\Server\mysql-5.7.37-winx64 目录(给予该目录Users 默认权限)。

添加环境变量:右键此 电脑 → 属性,点击 高级系统设置 → 环境变量 → 选择 path ,如下图:点击编辑

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

如何验证是否添加成功

选择命令提示符(管理员),打开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\ 目录

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

# 注册MySQL服务

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

# 启动MySQL服务

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

# 修改默认账户密码

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

至此,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

下载后我们得到 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管理器,选择一个网站,右边就看可以看见他的图标。

安装完毕后,如何让网站支持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 图标:

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

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

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

设置: Set runtime limits

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

设置: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环境配置成功!

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

复制

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

至此全部配置完毕。

相关推荐
BingoGo6 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack6 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo1 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack1 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack2 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo2 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
埃博拉酱3 天前
VS Code Remote SSH 连接 Windows 服务器卡在"下载 VS Code 服务器":prcdn DNS 解析失败的诊断与 BITS 断点续传
windows·ssh·visual studio code
JaguarJack3 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
唐宋元明清21884 天前
.NET 本地Db数据库-技术方案选型
windows·c#
郑州光合科技余经理4 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php