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

欢迎来到《小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.rhkb.cn/news/5606.html

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

相关文章

电梯系统的UML文档07

从这个类中得到的类图&#xff0c;构划出了软件的大部分设计。 系统结构视图提供软件和整个系统结构最复杂的也是最优雅的描述。和通常的软件系统相比&#xff0c;在分布式嵌入系统中了解系统组件如何协同工作是非常重要的。毕竟&#xff0c;每个类图仅仅是一个系统的静态设计…

低代码系统-产品架构案例介绍、明道云(七)

今天分析另外一个零代码、低代码产品-明道云&#xff0c;跟所有低代码产品的架构图一样&#xff0c;高、大、炫、美。 依然是从下至上&#xff0c;从左到右的顺序。 开发层 搭建中心 表单、流程、报表、用户中心&#xff0c;还是这些内容&#xff0c;自定义打印很多平台都有&am…

Linux编译安装Netgen/NGSolve

本文记录Linux下编译安装Netgen/NGSolve的流程。 零、环境 操作系统Ubuntu 22.04.4 LTSVS Code1.92.1Git2.34.1GCC11.4.0CMake3.22.1oneAPI2024.2.1 一、安装依赖 1.1 VS Code 下载并安装VS Code&#xff0c;然后安装以下插件&#xff0c; Task Explorer Output Colorizer …

RabbitMQ的消息可靠性保证

文章目录 1.环境搭建1.common-rabbitmq-starter 配置防止消费者抢消息&#xff08;基础配置&#xff09;2.common-rabbitmq-starter-demo下创建一个生产者一个消费者 2.生产者可靠性1.开启消息超时重试机制2.生产者开启ConfirmCallback消息确认机制1.application.yml2.TestConf…

transformers使用过程问题

transfomers新旧版本冲突&#xff0c;和accelerate、datasets、evaluate这些库直接也经常会发生冲突 我使用了下面的版本&#xff0c;暂时没有冲突&#xff0c;如果有冲突再更新 transformers4.41.2 datasets2.20.0 accelerate0.31.0 evaluate0.4.2pip install transformers安…

Text2SQL 智能报表方案介绍

0 背景 Text2SQL智能报表方案旨在通过自然语言处理&#xff08;NLP&#xff09;技术&#xff0c;使用户能够以自然语言的形式提出问题&#xff0c;并自动生成相应的SQL查询&#xff0c;从而获取所需的数据报表&#xff0c;用户可根据得到结果展示分析从而为结论提供支撑&#…

Idea调试的时候字符串路径乱码 poi解析时表单中文名字正确,但是找不到

目录 原因 解决措施 POI表单中文名字正确但是找不到 原因 1.编码格式冲突 2.文件编码多次转换&#xff0c;已经凌乱 解决措施 1.找到工程目录下的文件夹【.idea】 2.进入【encodings.xml】文件 3.将【encodings.xml】中&#xff0c;除了<file url"PROJECT"&g…

LAYA3.0 组件装饰器说明

原文 在LayaAirIDE中&#xff0c;如果想在IDE内展示组件脚本的属性&#xff0c;需要通过装饰器的规则来实现。下面分别介绍四种装饰器。 文章目录 一、regClass()二、property()2.1 组件属性的常规使用2.2 属性访问器的装饰器使用2.3 是否序列化保存2.4 组件属性是否在IDE中显…

精选100+套HTML可视化大屏模板源码素材

大屏数据可视化以大屏为主要展示载体的数据可视化设计。 “大面积、炫酷动效、丰富色彩”&#xff0c;大屏易在观感上给人留下震撼印象&#xff0c;便于营造某些独特氛围、打造仪式感。 原本看不见的数据可视化后&#xff0c;便能调动人的情绪、引发人的共鸣。 使用方法&…

Unity中实现伤害跳字效果(简单好抄)

第一步骤安装并导入Dotween插件&#xff08;也可以不用导入之后直接下载我的安装包&#xff09; 官网DOTween - 下载 第二步&#xff1a; 制作跳字预制体 建议把最佳适应打开&#xff0c;这样就不怕数字太大显示不全了。 第三步&#xff1a;创建一个空对象并编写脚本JumpNumbe…

Java复习第四天

一、代码题 1.相同的树 (1)题目 给你两棵二叉树的根节点p和q&#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1: 输入:p[1,2,3]&#xff0c;q[1,2,3] 输出:true示例 2: 输…

【2024年华为OD机试】(C/D卷,200分)- 5G网络建设 (JavaScriptJava PythonC/C++)

一、问题描述 题目描述 现需要在某城市进行5G网络建设&#xff0c;已经选取N个地点设置5G基站&#xff0c;编号固定为1到N。接下来需要各个基站之间使用光纤进行连接以确保基站能互联互通。不同基站之间假设光纤的成本各不相同&#xff0c;且有些节点之间已经存在光纤相连。 …

Kubernetes 集群中安装和配置 Kubernetes Dashboard

前言 上篇成功部署Kubernetes集群后&#xff0c;为了方便管理和监控集群资源&#xff0c;安装Kubernetes Dashboard显得尤为重要。Kubernetes Dashboard 是一个通用的、基于 Web 的 UI&#xff0c;旨在让用户轻松地部署容器化应用到 Kubernetes 集群&#xff0c;并对这些应用进…

前端【7】javascript-dom操作

目录 DOM 加载与脚本执行的时序问题 1. 将 <script> 标签放到 HTML 末尾 2.使用 defer 属性 3. 使用 window.onload 一、获取元素 1、getElementById 2、getElementsByClassName 3、getElementsByTagName 4、querySelector和querySelectorALL 5、对象的属性关…

python学opencv|读取图像(四十)掩模:三通道图像的局部覆盖

【1】引言 前序学习了使用numpy创建单通道的灰色图像&#xff0c;并对灰色图像的局部进行了颜色更改&#xff0c;相关链接为&#xff1a; python学opencv|读取图像&#xff08;九&#xff09;用numpy创建黑白相间灰度图_numpy生成全黑图片-CSDN博客 之后又学习了使用numpy创…

【2024年终总结】我与CSDN的一年

&#x1f449;作者主页&#xff1a;心疼你的一切 &#x1f449;作者简介&#xff1a;大家好,我是心疼你的一切。Unity3D领域新星创作者&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6; &#x1f449;记得点赞 &#x1f44d; 收藏 ⭐爱你们&#xff0c;么么哒 文章目录 …

MySQL主从配置

一、 主从原理 MySQL 主从同步是一种数据库复制技术&#xff0c;它通过将主服务器上的数据更改复制到一个或多个从服务器&#xff0c;实现数据的自动同步。主从同步的核心原理是将主服务器上的二进制日志复制到从服务器&#xff0c;并在从服务器上执行这些日志中的操作。 二、主…

【SpringCloud】黑马微服务学习笔记

目录 1. 关于微服务 ?1.1 微服务与单体架构的区别 ?1.2 SpringCloud 技术 2. 学习前准备 ?2.1 环境搭建 ?2.2 熟悉项目 3. 正式拆分 ?3.1 拆分商品功能模块 ?3.2 拆分购物车功能模块 4. 服务调用 ?4.1 介绍 ?4.2 RustTemplate?的使用 4.3 服务治理-注册中…

windows git bash 使用zsh 并集成 oh my zsh

参考了 这篇文章 进行配置&#xff0c;记录了自己的踩坑过程&#xff0c;并增加了 zsh-autosuggestions 插件的集成。 主要步骤&#xff1a; 1. git bash 这个就不说了&#xff0c;自己去网上下&#xff0c;windows 使用git时候 命令行基本都有它。 主要也是用它不方便&…

解决leetcode第3418题机器人可以获得的最大金币数

3418.机器人可以获得的最大金币数 难度&#xff1a;中等 问题描述&#xff1a; 给你一个mxn的网格。一个机器人从网格的左上角(0,0)出发&#xff0c;目标是到达网格的右下角(m-1,n-1)。在任意时刻&#xff0c;机器人只能向右或向下移动。 网格中的每个单元格包含一个值coin…