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';
现在刷新一下网站,没有提示了,高级功能已经开启了。
至此全部配置完毕。