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

news/2024/12/18 20:08:14/文章来源:https://www.cnblogs.com/HGNET/p/18615767

操作系统: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.hqwc.cn/news/855004.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务的终极 Golang 框架:GoFr

微服务的终极 Golang 框架:GoFr 原创 南丞 PFinalClub2024年12月18日 13:18 上海PFinalClub 一个有信念者所开发出的力量,大于99个只有兴趣者。 113篇原创内容公众号微服务的终极 Golang 框架:GoFr 前言 Go 语言因其出色的并发处理能力和简洁的语法,成为开发微服务的理想选…

R机器学习:朴素贝叶斯算法的理解与实操

最近又看了很多贝叶斯算法的一些文章,好多的文章对这个算法解释起来会放一大堆公式,对代数不好的人来说真的很头疼。本文尝试着用大白话写写这个算法,再做个例子,帮助大家理解和运用。Naive Bayes is a probabilistic machine learning algorithm based on the Bayes Theor…

[Linux]线程

线程 页表 每个进程都有一个虚拟地址空间,虚拟地址通过页表的映射找到对应的物理地址。那页表是如何完成虚拟地址到物理地址的映射的呢?其实一个程序在磁盘上的时候就以4KB为单位被划分成块,每一块称为页帧;而物理内存同样是以4KB为单位被划分,每一块称为页框。所以程序都…

Java框架 —— SpringMVC

MVC 分层MVC:Model View Controller(模型-视图-控制器)模型(Model):处理数据逻辑的部分;在web应用中,他通常包含与数据库交互的代码,负责数据的存储、检索和更新视图(View):将数据渲染为用户界面,视图只展示页面,不包含业务逻辑控制器(Controller):模型和视图…

2024-12-18 17 55 记录 Cambly trip`s summary and wher 1607b517085581159d14fe7750337be7

2024-12-18 17:55 记录 Cambly trip`s summary and where is the next ?https://tingwu.aliyun.com/doc/transcripts/g2y8qevxaayxnbeo?sl=1# 《2024-12-18 17:55 记录 Cambly trip`s summary and where is the next ?》1. 全文摘要 对话讲述了一个人通过使用美好的旅行来…

实验六 模板类、文件I/O和异常处理

1、实验任务一 Complex.hpp#pragma once#include <iostream> #include <stdexcept>// 声明 //////////////////////////////////////////////////// // 复数模板类声明 template<typename T> class Complex { public:Complex(T r = 0, T i = 0);Complex(cons…

免费设计Logo的新神器Slea.ai

使用Slea.ai,你可以在几分钟内设计出专业、高质量的Logo,支持多种场景应用,免费下载,实现自定义设计。品牌打造从未如此轻松!作为一名注重品牌形象的创作者或企业主,你是否苦于设计一款专业又独特的Logo?今天我要向大家推荐一个超级实用的网站——Slea.ai,它是一款免费的…

MOS管的寄生电容

我们经常看到,在电源电路中,功率MOS管的G极经常会串联一个小电阻,几欧姆到几十欧姆不等,那么这个电阻用什么作用呢? 这个电阻的作用有2个作用:限制G极电流,抑制振荡。 限制G极电流MOS管是由电压驱动的,是以G级电流很小,但是因为寄生电容的存在,在MOS管打开或关闭的时…

配置CentOS 7阿里yum源

备份yum源配置文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bakvi /etc/yum.repos.d/CentOS-Base.repo# CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to …

源码信息收集

引子:上一篇主要介绍了与Web架构相关的信息收集,而在Web架构中有一至关重要的一环,那就是源码。Web应用中美观的ui、特色的功能全靠源码来实现,但同样的,几乎绝大多数与Web相关的漏洞都也都与其源码有关。而本篇则介绍几种常见的源码信息收集方式。附:完整笔记目录~ ps:…