Windows 安装 php

Views: 232

本文是windows电脑或服务器安装 apache+php+mysql 的系列新手教程之一。

认识PHP

PHP(超文本预处理器)是一种开源HTML嵌入式服务器端脚本语言,用于开发动态和交互式 Web 应用程序,也用作通用编程语言。

  • PHP由拉斯穆斯·勒多夫于1995年开发,后来作为开源开发。PHP 组现在管理 PHP 的实现。
  • PHP 具有许多类似于 C、Java 和 Perl 的语法,并具有许多独特的功能和特定功能。
  • PHP 页面是一个具有.php扩展的文件可以包含HTML 标签和 PHP 脚本的组合。
  • PHP(超文本前处理器)的PHP递归首字母缩略词:HyperText的意思是,包含各种网络标记的文本,预处理器意味着所有 HyperText 首先处理,然后结果作为纯 HTML 发送到 Web 浏览器。客户端无法看到 PHP 源代码,因为它已预先处理和解释。
  • PHP是服务器端脚本语言:服务器端脚本意味着 PHP 代码在 Web 服务器上而不是客户端计算机上处理。
  • PHP 支持许多数据库(MySQL和 PHP 组合被广泛使用)。
  • PHP 是一种开源脚本语言。
  • PHP 可免费下载和使用。

下载php

访问地址

官方网站:https://www.php.net/

       访问php官网,当前提供的最新版本为8.1,点击Downlocad,然后点击Windows downlocad(在windows 电脑上安装),如下图所示。

点击后进入版本选择页面,php提供线程安全版和非线程安全版。

  • Non Thread Safe:非线程安全版本,部署Fastcgi+iis 环境的下载这个版本。
  • Thread Safe:线程安全版本,部署 Apache+php 环境 的下载这个版本。

此处我们下载线程安全版。如下图所示。

安全校验

为确保下载到本地的安装包与官网提供的完全一致,我们需要进行完整性校验。建议下载完成后,和网站上提供的校验信息进行对比,确保一致。如果不一致,请重新下载安装包。

使用CertUtil命令校验文件

在windows 中,可在cmd命令行窗口/powershell/终端窗口中使用如下命令,进行完整性校验。

CertUtil -hashfile php-8.1.7-Win32-vs16-x64.zip sha256

解释:

  • 路径
    • 可以直接使用文件的完整路径,也可以先切换到文件所在路径,然后直接使用文件名称。本文采用先切换到文件所在路径,然后使用文件名的方法。
  • 校验类型
    • 官网提供的校验值类型为sha256,因此在获取本地文件校验信息时,我们也要获取本地文件的sha256值。获取到该信息后,与官网给出的值进行对比,即可知道本地文件与官网文件是否完全一致。

分配目录并解压

       为方便后续使用、维护,请提前确认好apachephpwww等目录。为了确保目录兼容、可靠、美观、简洁等,建议使用不间断纯英文路径。本文中PHP的路径为:D:\My_WebSite\System\php-8.1.7-Win32-vs16-x64。解压好的目录如下图

php路径和根目录

配置php

配置文件所在路径:D:\My_WebSite\System\php-8.1.7-Win32-vs16-x64,php提供了两个配置文件模板,php.ini-development(开发)、php.ini-production(生产),使用任一配置文件模板都可以,生产环境建议使用php.ini-production。我们复制php.ini-production文件,改名为php.ini,如下图所示:

在对php进行配置前,建议安装一款专业文本编辑工具,以便正确、高效配置和修改。

全局变量

max_execution_time

       每个脚本的最大执行时间,以秒为单位。注意:对于 CLI SAPI,此指令被硬编码为 0。请注意,该php值可根据实际业务场景和数据设置,无需照搬。

  • 默认:max_execution_time = 30
  • 更改:max_execution_time = 300

max_input_time

       每个脚本可能花在解析请求数据上的最长时间。最好在生产服务器上限制此时间,以消除意外长时间运行的脚本。请注意,该php值可根据实际业务场景和数据设置,无需照搬。

  • 默认:max_input_time = 60
  • 更改:max_input_time = 600

memory_limit

脚本可能消耗的最大内存量

  • 默认:memory_limit = 128M

post_max_size

       PHP 接受的 POST 数据的最大值。它的值可能是 0 以禁用限制。如果通过 enable_post_data_reading 禁用 POST 数据读取,则忽略它。请注意,该php值可根据实际业务场景和数据设置,无需照搬。

  • 默认:post_max_size = 8M
  • 更改:post_max_size = 20M

upload_max_filesize

       上传文件的最大允许值。请注意,该php值可根据实际业务场景和数据设置,无需照搬。

  • 默认:upload_max_filesize = 2M
  • 更改:upload_max_filesize = 500M

max_file_uploads

       通过单个请求可以上传的最大文件数。 请注意,该php值可根据实际业务场景和数据设置,无需照搬。

  • 默认:max_file_uploads = 20
  • 更改:max_file_uploads = 50

default_socket_timeout

       基于套接字的流的默认超时(秒)。 请注意,该php值可根据实际业务场景和数据设置,无需照搬。

  • 默认:default_socket_timeout = 60
  • 更改:default_socket_timeout = 300

extension_dir(必须设置)

       可加载扩展(模块)所在的目录。

  • 默认:
    • ; On windows:
    • ;extension_dir = "ext"
  • 更新:
    • ; On windows:
    • extension_dir = "D:/My_WebSite/System/php-8.1.7-Win32-vs16-x64/ext"

加载的库

下面列出的库,主要与wordpress数据库连接,中文字符串处理,主题插件的更新下载,图片处理有关。建议开启。其他更多的库的信息,参考下一个目录。

  • extension=gd ; WordPress 网站生成缩略图、头像等图片,图形报表等需要。
  • extension=mbstring ; WordPress 多语言环境下的字符处理,包括中文、日文、韩文等多字节字符的正确显示和处理,字符串转码,截取等需要。
  • extension=exif ; WordPress 图库中展示图片时,可以通过读取 Exif 数据显示图像的拍摄时间、相机型号、曝光参数等信息
  • extension=curl ; wordpress主题、插件更新时需要。
  • extension=mysqli ; 用于实现 WordPress 的数据存储和读取功能
  • extension=openssl ; OpenSSL 扩展用于在 PHP 中进行加密、解密、证书操作等安全相关的功能,也会影响网站主题和插件的更新

其他的库信息参考:wordpress 安装环境中的php库简单介绍

接入apache

如果需要apache支持php环境,则需要添加php支持。添加位置:apache配置文件。直接添加方法如下:

添加php8.x

打开apache配置文件httpd.conf,在配置文件末尾添加下面的代码。

LoadModule php_module "D:/My_WebSite/System/php-8.1.7-Win32-vs16-x64/php8apache2_4.dll"
AddType application/x-httpd-php .php .html .htm
AddType application/x-httpd-php-source .phps
PHPIniDir "D:/My_WebSite/System/php-8.1.7-Win32-vs16-x64" 
说明:
上面的apache配置文件,为apache添加php 8.0的支持。
注意:
1.确保php8apache2_4.dll文件存在,路径真实。
2.php8.0以上的,php_module不需要写为php_8module

参考:http://xyx115.com/2022/06/14/windows-install-apache/

重启apache服务

设置完成后,需要让php的配置生效,则需要重启apache服务。以管理员权限运行cmd,并执行下面代码。

net stop apache2.4
net start apache2.4

apache重启完成后,即可看到系统服务的apache中,出现了OpenSSL/1.1.10 PHP/8.1.7

验证

创建一个info.php文件,并保存在localhost根目录(在本教程中,设置的根目录是:D:\My_WebSite\WWW)。文件内容:

<?php

echo phpinfo();

?>

如下图所示,各个功能模块版本,运行状态,参数等都可以查看。

发表评论

Index