【PHP】部署和发布PHP网站到IIS服务器

news/2025/1/22 14:37:52/

欢迎来到《小5讲堂》
这是《PHP》系列文章,每篇文章将以博主理解的角度展开讲解。
温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!

在这里插入图片描述

目录
  • 前言
  • 安装PHP
    • 稳定版本
    • 线程安全版
    • 解压使用
  • PHP配置
    • 配置文件
    • 扩展文件路径
    • 加载扩展文件
    • 其他信息设置
    • 放置系统目录
  • 报错解决方法
  • 部署PHP的IIS环境
    • 添加角色
    • 处理程序映射
    • 增加默认文件
  • 运行效果
  • PHP优势

前言

最近将之前使用的一套部署在linux系统上的PHP官网放到IIS服务器上运行,
因此本篇文章将简单介绍如何在IIS服务器上部署PHP网站。

安装PHP

下载地址:https://www.php.net/downloads.php

稳定版本

博主当前时间最新稳定版本是Current Stable PHP 8.3.13,点击Windows downloads即可
在这里插入图片描述

线程安全版

在跳转页面,建议选择VS16 x64 Thread Safe(线程安全版本,以及直接是Zip压缩包,下载后,直接解压复制文件到指定文件夹接口,绿色版不用安装)在这里插入图片描述

解压使用

将下载好的PHP压缩文件Zip解压到C盘,创建一个php文件夹,将文件复制进去,并创建一个www文件夹(用于存放网站文件)在这里插入图片描述

PHP配置

配置文件

将PHP根目录下的php.ini-production复制一份并改名为 php.ini,作为PHP的配置文件,这份也作为生成环境配置文件,
在文件夹下还有一份开发环境的文件,如果以团队化开发的话就需要用到。在这里插入图片描述

扩展文件路径

找到extension_dir,并将前面的分号去掉(启用),并复制php配置具体路径,如下:在这里插入图片描述

加载扩展文件

将需要开启的扩展文件取消分号即可在这里插入图片描述

其他信息设置

设置时区date.timezone=Asia/Beijing
设置ssl=cacert.pem
开启php短标签short_open_tag=on
以CGI模式运行PHP cgi.force_redirect = 0
开启IIS的FastCGI托管
fastcgi.impersonate = 1
cgi.rfc2616_headers = 1

放置系统目录

将上面配置好的php配置文件放到Windows目录下

报错解决方法

HTTP 错误 500.0 - Internal Server Error
php-cgi.exe - FastCGI 进程意外退出
解决方案:安装 vc_redist.x64.exe在这里插入图片描述

部署PHP的IIS环境

添加角色

如果是首次配置的IIS环境,需要添加角色以及CGI等应用,此处略过。

处理程序映射

点击处理程序映射,再点添加模块映射,弹窗填写信息在这里插入图片描述
在这里插入图片描述

请求路径:*.php
模块:选择FastCgiModel
可执行文件:php-cgi.exe(解压文件里找)
名称:phpcgi(自己自定义命名)

增加默认文件

添加默认文件,目的是访问首页不用输入具体php文件名就能够自动访问默认的index.php文件。在这里插入图片描述
在这里插入图片描述

运行效果

根据下面一段php代码,可以查看运行效果。能够运行起来说明php环境已经配置好。

写一段php的for循环
<table>
<?phpfor($i=1;$i<=10;$i++){echo '<tr style="width:100%;height:30px;">';for($j=1;$j<=10;$j++){echo '<td>'.$j.'</td>';    }echo '</tr>';}
?>
</table>

在这里插入图片描述

PHP优势

PHP(Hypertext Preprocessor)是一种广泛使用的开源服务器端脚本语言,特别适用于Web开发。它最初由Rasmus Lerdorf于1994年创建,旨在简化网页开发过程。PHP可以嵌入到HTML中,并与多种数据库集成,最常用的是MySQL。其灵活性、易学性和强大的社区支持使得PHP成为开发动态网页和Web应用程序的首选语言之一。PHP的主要优势可以归纳如下:

1、易学易用
语法简洁:PHP的语法简单易懂,类似于C语言,对于初学者来说很容易上手。它使用C、Java和Perl等编程语言的特点,使其更容易理解和编写。
解释型语言:PHP是一种解释型语言,这意味着开发者可以在运行时看到结果,这对于调试和开发大型项目非常有帮助。
丰富资源:PHP社区提供了大量的教程、论坛和在线资源,帮助开发者提高他们的技能。

2、开源和免费
开源性:PHP的源代码是公开的,这意味着你可以免费使用、修改和分发它。开源性带来了很多好处,如让开发人员可以定制和调整PHP以满足项目的需求。
免费使用:PHP的运行环境也是免费的,这可以节省大量的时间和金钱。

3、跨平台性
广泛支持:PHP可以在多种操作系统上运行,包括Windows、Linux和Mac OS等。这使得开发人员可以在不同的平台上构建和部署Web应用程序,为用户提供更好的体验。

4、强大的社区支持
活跃社区:PHP有一个非常活跃的开发者社区,这意味着你可以找到大量的教程、文档和第三方库来帮助你开发网站。
持续迭代:许多大公司,如微软、亚马逊和谷歌,都在使用PHP,这也证明了它的稳定性和可靠性。

5、与MySQL的良好集成
内置支持:PHP内置对MySQL的支持,这使得开发者可以轻松地在PHP中处理数据库操作,而无需编写额外的代码。
广泛支持:PHP还可以与多种其他数据库系统(如PostgreSQL、SQLite等)无缝配合。

6、丰富的框架和库
成熟框架:PHP有许多可用的框架和库,如Laravel、Symfony和CodeIgniter等,这些框架和库提供了许多预先编写好的功能,可以帮助开发者快速构建复杂的应用程序。
内置函数:PHP还提供了丰富的内置函数和扩展,可以用于各种任务,如字符串处理、文件操作、图像处理等。

7、安全性
内置安全特性:PHP有一些内置的安全特性,如防止SQL注入的预处理语句和参数化查询,以及自动转义特殊字符等,这些都可以帮助开发者提高应用程序的安全性。
安全实践:通过采用安全编码实践,如输入验证、输出过滤和维护最新的PHP版本,可以进一步确保PHP应用程序的安全性。

8、高效的服务器端处理能力
复杂运算:PHP可以在服务器端进行复杂的运算,如排序、搜索和数学计算等,这使得它非常适合用于需要高性能的动态网页和Web服务。
性能优化:随着PHP版本的更新,其性能也在不断改进。例如,PHP 7和PHP 8引入了显著的性能提升和优化技术。

综上所述,PHP以其易学易用、开源免费、跨平台性、强大的社区支持、与MySQL的良好集成、丰富的框架和库、安全性以及高效的服务器端处理能力等优势,在Web开发领域占据了重要地位。

以上就是php在iis服务器上的运行环境配置,实际可能会遇到各种各样的问题,也欢迎交流学习分享。


http://www.ppmy.cn/news/1565236.html

相关文章

傅里叶变换在语音识别中的关键作用

在语音识别中&#xff0c;傅里叶变换起着至关重要的作用&#xff0c;主要体现在以下几个方面&#xff1a; 一、时域到频域的转换 语音信号的特点 语音信号是一种时域信号&#xff0c;它随时间变化。例如&#xff0c;当我们说话时&#xff0c;声带的振动产生声波&#xff0c;这…

Selenium配合Cookies实现网页免登录

文章目录 前言1 方案一&#xff1a;使用Chrome用户数据目录2 方案二&#xff1a;手动获取并保存Cookies&#xff0c;后续使用保存的Cookies3 注意事项 前言 在进行使用Selenium进行爬虫、网页自动化操作时&#xff0c;登录往往是一个必须解决的问题&#xff0c;但是Selenium每次…

【25考研】考清华的软件工程专业的研究生需要准备什么?

清华软件复试竞争一样很激烈&#xff01;建议同学认真复习&#xff01; 关于项目的注意事项先来一些总结&#xff1a; 千万别照抄开源项目 开源项目是一个很好的参考&#xff0c;但直接搬过来就没啥意义啦。我们可以根据开源项目学习它的技术架构和关键点&#xff0c;然后结…

资料03:【TODOS案例】微信小程序开发bilibili

样式 抽象数据类型 页面数据绑定 事件传参

【LeetCode】--- MySQL刷题集合

1.组合两个表&#xff08;外连接&#xff09; select p.firstName,p.lastName,a.city,a.state from Person p left join Address a on p.personId a.personId; 以左边表为基准&#xff0c;去连接右边的表。取两表的交集和左表的全集 2.第二高的薪水 &#xff08;子查询、if…

Java程序基础⑧抽象类+Object类+内部类

目录 1. 抽象类 1.1 抽象类的概念 1.2 抽象类的语法 1.3 抽象类的特性 1.4 抽象类的作用 2. Object类 2.1 Object类的概念 2.2 获取对象信息toString方法 2.3 对象比较equals方法 2.4 获取位置hashcode方法 3. 内部类 3.1 内部类的概念 3.2 内部类的种类 3.2.1 …

二分查找法(Binary Search)

二分查找法&#xff08;Binary Search&#xff09;是一种高效的查找算法&#xff0c;适用于在有序数组或列表中查找特定元素。它的基本思想是通过不断将搜索范围减半来快速定位目标值。 算法步骤 初始化&#xff1a;设定搜索范围的起始点 left 和结束点 right&#xff0c;初始时…

DM8 SQL 错误 [22000]: 锁超时

问题描述 DM管理工具删除会卡死DBeaver删除会一直加载中使用truncate语句会显示SQL 错误 [22000]: 锁超时使用如下语句也没有用 select a.*,b.NAME,c.SESS_ID, sp_close_session( || c.SESS_ID || ); AS CLOSE_SESSION_COMMAND from v$lock a left join sysobjects b on b.IDa…