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

复制

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

至此全部配置完毕。

相关推荐
SomeB1oody3 分钟前
【Rust自学】3.5. 控制流:if else
开发语言·后端·rust
Q之路2 小时前
C++之多态
开发语言·c++
好奇的菜鸟3 小时前
Rust操作符和符号全解析
开发语言·后端·rust
旷野..3 小时前
Python构造方法:对象的“开机启动程序”
开发语言·python
觅远3 小时前
python实现Excel转图片
开发语言·python·excel
游子吟i3 小时前
C# 项目无法加载 DLL“SQLite.Interop.DLL”: 找不到指定的模块
开发语言·sqlite·c#
倔强的小石头_4 小时前
探秘C语言:从诞生到广泛应用的编程世界
c语言·开发语言
程序无涯海4 小时前
【Java技巧】深入浅出 Guava Retry 框架:业务兜底重试方案示例
java·开发语言·编程·guava·重试
CURRY30_HJH4 小时前
List直接使用removeAll报错
windows·python·list