在本教程中,我将向您展示如何使用Apache作为Web服务器在Windows 10计算机上安装PHP 8。

下载必要的文件

您可以从以下网址下载PHP二进制文件:https://windows.php.net/download/。

根据您的Windows类型下载线程安全的32位或64位版本。由于所有版本均已使用VisualStudio 16(2019)进行了编译,因此稍后,您需要在PC上安装合适的Apache二进制文件和“ Microsoft Visual C ++ 2019 Redistributable”程序包。

准备PHP位置

我希望程序位于“程序文件”文件夹中。除此之外,随着时间的流逝,您将安装几个不同版本的PHP。因此,我创建以下目录结构:

为了易于使用,我在开发机器的安全性方面做出了一些牺牲。我向本地用户授予对我的计算机上PHP目录的完全权限。

创建目录后,复制下载的zip文件的内容。

检查PHP是否有效

如前所述,PHP 8是使用Visual Studio 2019编译的。因此,如果您的计算机上未安装适当的Redistributable,则会出现以下错误:
...未找到VCRUNTIME140.dll。..

您可以从Microsoft可再发行文件下载中下载文件

如果一切顺利,则可以从命令行使用PHP。您可以使用以下命令检查安装:php -v ,结果应该是类似的:

为了使使用PHP更加方便,可以将PHP目录放在路径上。单击开始,然后键入env。从列表中单击“编辑系统环境变量”,然后将出现系统属性”对话框。单击“环境变量...”,然后从“系统变量”块中选择“路径”。将新的PHP文件夹添加到列表中。

配置PHP

现在,PHP正在运行,但尚未正确配置。在基本级别上配置PHP 8与旧版本没有什么不同。
PHP文件夹包含2个示例配置文件:

  • php.ini-production
  • php.ini-development

将开发版本复制到与该目录相同的目录php.ini并打开以进行编辑。您需要设置的是扩展名和会话数据的位置。

您必须将extension_dir参数设置为有效位置:extension_dir = "c:\Program Files\PHP\php-8.0.0RC2\ext"

extension_dir = "c:\Program Files\PHP\php-8.0.0RC2\ext"

您还必须从列表中取消注释所需的扩展名。通常,curl,gd,mbstring,mysqli,pdo_mysql扩展是复杂的php应用程序所必需的。
extension=curl
extension=gd
extension=mbstring
extension=mysqli
extension=openssl
extension=pdo_mysql

最后,您需要设置保存会话数据的位置:  session.save_path = "w:/tmp"
session.save_path = "w:/tmp"

安装Apache

即使PHP具有内置的Web服务器,生产系统也会使用Apache,Ngnix,Lightspeed等。对于Windows开发环境,Apache是​​最简单的选择。

您可以从ApacheLounge网站下载最新的Apache Web服务器。根据您的操作系统类型下载32或64位版本。

如前所述,我不喜欢C:根目录中的所有内容,因此我还在Program Files文件夹中为Apache创建了一个目录。不要忘记允许用户权限。

现在,您可以将zip文件的Apache24文件夹的内容复制到新位置。注意确切的目录结构。

与PHP一样,您可以将Apache添加到路径中,但是在这种情况下,您需要添加bin文件夹。

基本的Apache配置

Apache配置文件位于conf目录中。主要的配置文件是httpd.conf。要启动网络服务器,您需要SRVROOT将配置文件中的服务器root()参数设置为正确的位置,如下所示:

Define SRVROOT "c:/Program Files/Apache/httpd-2.4.46"ServerRoot "$ {SRVROOT}"

最好设置ServerName显式设置以防止启动过程中出现问题。由于我们稍后将使用虚拟主机,因此您只需将其设置为localhost:80

ServerName localhost:80

可选步骤-但大多数PHP应用程序通常要求执行此步骤-启用Apache模块。例如,默认情况下禁用mod_rewrite模块,但几乎始终需要该模块。只需取消注释行,您就完成了。

LoadModule rewrite_module modules/mod_rewrite.so

将Apache作为服务安装

要将Apache作为Windows服务安装,您必须以管理员身份打开命令提示符。导航到Apache bin目录并执行以下命令:httpd -k install
然后,您可以使用以下命令启动Web服务器:httpd -k start

允许访问:

如果一切正确,那么您将返回提示,而不显示任何消息。

打开浏览器,然后输入http://localhostURL。您应该获得类似于以下内容的欢迎页面:

设置虚拟主机

默认文档位置是htdocs安装目录中的文件夹。但是,这不是最佳的。如果您是开发人员,则可能需要处理多个Web项目。因此,对每个项目都有一个专用的文件夹和URL会很好。例如,如果site1.com site2.com是生产站点,则您可能需要site1.localsite2.local带有专用目标文件夹的URL用于开发。

虚拟主机是解决此问题的方法。 
同样,将代码与驱动器C分开存储是一个好主意。 
例如,您可以创建一个目录结构,如下所示:

现在,您必须配置虚拟主机并启用它。首先,打开httpd.conf文件,然后取消注释该文件所在的行httpd-vhosts.conf

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

然后,打开httpd-vhosts.conf文件extra夹中的文件。为您想要的每个项目添加一个条目。的ServerNameDocumentRoot以及ErrorLog是重要的参数,你可以跳过别人。

<VirtualHost *:80>ServerName site1.localDocumentRoot "w:/Websites/site1.local"ErrorLog "w:/Websites/site1.local/error.log"
</VirtualHost>

除此之外,您还必须允许访问这些文件夹,因此Directory在VirtualHosts条目之前添加具有以下内容的公共块。
您最终的虚拟主机配置文件应如下所示:

<Directory "w:/Websites" >Options FollowSymLinksAllowOverride AllRequire all granted
</Directory><VirtualHost *:80>ServerName site1.localDocumentRoot "w:/Websites/site1.local"ErrorLog "w:/Websites/site1.local/error.log"
</VirtualHost><VirtualHost *:80>ServerName site2.localDocumentRoot "w:/Websites/site2.local"ErrorLog "w:/Websites/site2.local/error.log"
</VirtualHost>

您还需要扩展位于中的Windows主机文件c:\Windows\System32\drivers\etc\hosts。使用管理特权打开文件进行编辑,然后将以前使用的服务器名称添加到指向本地127.0.0.1 IP地址的文件中。

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost127.0.0.1 site1.local
127.0.0.1 site2.local

将简单的index.html文件放入具有不同内容的网站根目录中,以进行测试。
 
现在,您可以使用重启Apache httpd -k restart。如果一切正确,则不会显示错误消息。导航到site1.local和site2.local,您的浏览器应显示相应的HTML内容。

设置Apache以使用PHP 8

设置几乎完成,但是我们尚未配置PHP和Apache一起工作。 
首先,我们必须将php扩展名添加到已知的mime类型。为此,请在mime.types配置文件末尾添加以下行: application/x-httpd-php    php

application/x-httpd-php                php

要在index.php请求目录时自动执行,请DirectoryIndex使用index.phpin扩展属性httpd.conf

<IfModule dir_module>DirectoryIndex index.php index.html
</IfModule>

之后,最重要的步骤是加载php模块。为此,请在httpd.conf文件中指定PHP安装目录和相应的模块。只需将行插入httpd.conf

# PHP 8.0
PHPIniDir "c:/Program Files/PHP/php-8.0.0RC2"
LoadModule php_module "c:/Program Files/PHP/php-8.0.0RC2/php8apache2_4.dll"

现在,您可以重新启动apache并检查是否有任何错误。如果一切正常,请在服务器文档根目录中使用一个简单的phpinfo创建一个小的inf.php文件,如下所示:

<?phpphpinfo();

访问site1.local / info.php应该会在浏览器中显示一个PHP信息页面。

故障排除

“文件无法找到API模块结构‘php8_module’......”的错误消息是一个常见的问题。验证确切地php_module在LoadModule行中。旧的php7_module和预期的都不php8_module是好的。

如何在Windows 10上安装PHP 8相关推荐

  1. 如何在Windows 10 上安装SQL Server 2000数据库?

    Win10本身是一个兼容性较好的操作系统,目前有很多人在咨询如何在Windows 10 上安装 SQL Server 2000数据库,都没有成功过.主要是卡在了安装过程中的mdac2.6 安装上,一直 ...

  2. 如何在Windows 10上安装PowerShell 7

    Microsoft 微软 Microsoft announced PowerShell 7.0 on March 4, 2020. It's the latest major update to Po ...

  3. 如何在 Windows 10 上安装和配置 SNMP 服务并通过组策略配置 SNMP 设置

    简单网络管理协议或 SNMP用于企业网络上的监控.事件通知和网络设备管理.该协议由一组网络管理标准组成,包括应用层协议.数据库模式和一组数据对象.SNMP 可以从任何网络设备接收各种类型的信息(正常运 ...

  4. 如何在 Windows 10 上安装华为模拟器eNSP?保姆级的教程来喽,附安装包下载

    由于最新版本的 eNSP不再包含必备组件 VirtualBox 和 WinPcap,为了使安装生效,我们需要 预先安装这些组件.在这篇文章中,我将向您介绍如何在 Windows 10 中安装 eNSP ...

  5. 如何在 Windows 10 上安装 WSL 2

    翻译自 Joey Sneddon 2020年10月30日的文章<How to Install WSL 2 on Windows 10> [1] 如果您想在最新的 Windows 版本中尝试 ...

  6. 如何在Windows 10上安装Python

    Installing and using Python on Windows 10 is very simple. The installation procedure involves just t ...

  7. 如何在Windows 10上安装MySQL数据库服务器8.0.19

    In this article, I am going to explain the step by step installation process of MySQL database serve ...

  8. windows系统中pyyaml_关于python:如何在Windows 10上安装pyYAML

    我试图从Windows 10上的源代码安装pyYAML.我从https://pypi.python.org/pypi/PyYAML下载了PyYAML 3.11. 运行setup.py时出现错误:[Wi ...

  9. wsl2安装_如何在Windows 10上安装WSL 2?

    WSL 2 全称Windows Subsystem for Linux 2,是微软推出适用于Linux的Windows子系统的最新架构,这种新架构改变了这些Linux二进制文件与Windows和计算机 ...

最新文章

  1. 少儿不宜!这个开源项目能自动画出各种尺寸的...
  2. python是不是特别垃圾-震惊!垃圾分类居然能用Python搞定!
  3. Maven 的 Scope 区别,你知道吗?
  4. 怎么给网站加js_网站站内SEO优化实操细节详解,权重上升嗖嗖的
  5. 注册域名的时候一定要注意的事项
  6. Linux—vim/vi 翻页跳转命令快捷键
  7. sinr是什么意思_明明是满格信号,可是却不如两三格,这是什么情况?
  8. cut最后几位 shell_shell命令_cut
  9. js原生ajax跨域请求,封装一个原生js的ajax请求,支持IE9CORS跨域请求
  10. 下面的程序可以从0....n-1中随机等概率的输出m个不重复的数。(假设nm)
  11. 计算机组成原理(白中英) 第五章 课后题答案
  12. 关于vb.net初学者,倒计时器的开发
  13. linux比较好的网站和博客
  14. android仿ios消息框,Android仿IOS提示框
  15. 腾讯云主机配置tomcat服务器
  16. fx3u4ad一adp说明书_FX3U-4AD-PT-ADP用户手册FX3U-4AD-PT-ADP使用说明书 - 三菱
  17. Circular Barn Revisited (区间DP)
  18. Quartz 实现画图片、写文字、画线、椭圆、矩形、棱形等。
  19. linux prom命令解释,eeprom 执行boot PROM命令
  20. mac出现文件夹问号_MacBook Air开机出现一个带问号的文件夹图案是怎么回事?电脑已经无法进入系统!...

热门文章

  1. 中国石油大学《钢结构》第一阶段在线作业
  2. 鸿蒙系统暗黑2,暗黑2 二十大最难爆出来的暗金装备(上)
  3. css字体像素教程,详解CSS中的字体属性的使用
  4. Sa-token SSO单点登录机制【源码】
  5. 黑马Java热门面试题线程(三)
  6. 工作站的数据处理比微型计算机,高效液相色谱分析-数据处理系统
  7. performSelector 的使用
  8. 【FPGA教程案例44】图像案例4——基于FPGA的图像中值滤波verilog实现,通过MATLAB进行辅助验证
  9. php pdf只能查看不能下载,对于pdf文件不支持浏览器下载如何处理?
  10. 智能复制粘贴剪切板管理工具——Pastebot