适用于最新 Windows 10 的 Apache+PHP+MySQL

Vyt*_* P. 1 apache-http-server website mysql php

我尝试设置 XAMPP 和 WampServer,以及在 Windows 10 上手动下载和设置 Apache+PHP+MySQL 的最新安装程序,但每次我都会遇到不同的错误。谁能给我关于在 Windows 10 上安装 Apache+PHP+MySQL 的建议?我用俄语阅读并做这样的信息:1)https://codeby.net/threads/ustanovka-i-nastrojka-servera-apache-php-mysql-phpmyadmin-na-windows-10.67181/我在最后开始时遇到这样的错误Apache:httpd.exe: Syntax error on line 75 of C:/server/bin/conf/httpd.conf: Cannot load modules/mod_actions.so into server:之后所有模块都加载错误。2) https://blog.denisbondar.com/post/apache24php56win7我在启动最后一个 Apache 时遇到错误,类似于:[mpm_winnt:error] 我下载了两个程序,第一个是 XAMPP 7.3.5,我安装了这个程序,启动后没有任何反应。我收到这样的错误:

[Sat May 11 10:50:47.974475 2019] [ssl:warn] [pid 8012:tid 528] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sat May 11 10:50:48.097489 2019] [ssl:warn] [pid 8012:tid 528] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sat May 11 10:50:48.150507 2019] [mpm_winnt:notice] [pid 8012:tid 528] AH00455: Apache/2.4.39 (Win64) OpenSSL/1.1.1b PHP/7.3.5 configured -- resuming normal operations
[Sat May 11 10:50:48.150507 2019] [mpm_winnt:notice] [pid 8012:tid 528] AH00456: Apache Lounge VC15 Server built: Mar 28 2019 11:59:33
[Sat May 11 10:50:48.150507 2019] [core:notice] [pid 8012:tid 528] AH00094: Command line: 'C:\\xampp\\apache\\bin\\httpd.exe -d C:/xampp/apache'
[Sat May 11 10:50:48.156507 2019] [mpm_winnt:notice] [pid 8012:tid 528] AH00418: Parent: Created child process 3212
[Sat May 11 10:50:49.104673 2019] [ssl:warn] [pid 3212:tid 132] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sat May 11 10:50:49.176682 2019] [ssl:warn] [pid 3212:tid 132] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sat May 11 10:50:49.218705 2019] [mpm_winnt:notice] [pid 3212:tid 132] AH00354: Child: Starting 150 worker threads.
Run Code Online (Sandbox Code Playgroud)

所以,Apache 不起作用(Attempting to start Apache service...“什么都没有”)。之后,我尝试安装最后一个 WampServer(wampserver 3.1.7)。我得到mysqld这样的窗口:missing msvcp120.dll 之后我尝试运行Wamp的3个服务,只启动了两个,Apachelocalhost可以工作,什么没有启动我不知道。所以,我尝试安装msvcp120但没有任何反应。

Ana*_*man 5

安装

阿帕奇

Apache Lounge下载一份Apache。您可能想要下载当前的 64 位版本 ( httpd-2.4.43-win64-VS16.zip )。一旦.zip文件被下载,解压缩其内容。将Apache24文件夹移动到您希望它永久驻留的位置。需要注意的是Apache24,作为一项规则,应该不会被放置在:

  • 任何“程序文件”文件夹。
  • 任何“用户”文件夹。
  • 下的任何地方AppData

Apache应该驻留在没有空格的路径中(例如C:\Apache24默认情况下)。您可能还需要安装正确的Visual Studio 2015-2019 C++ Redistributables

PHP

拥有 Apache 后,请下载PHP。如 PHP.net 侧边栏所示,使用 Apache 时,您需要使用 PHP 的“线程安全”版本。PHP 64 位的最新线程安全版本是php-7.4.3-Win32-vc15-x64.zip。与 Apache 类似,提取.zip文件并将其内容放置在您希望它永久驻留的位置(例如C:\PHP7)。您可能希望避免使用与 Apache(上图)相同的系统控制文件夹。

MySQL

最后,下载MySQL Community Edition。您可以使用您认为最合适的版本,但为了获得最大的兼容性,您可能希望考虑使用较旧的 MySQL 5.x 分支。作为建议,我可能会建议使用最后一个 5.5 分支 64 位安装程序 ( mysql-5.5.62-winx64.msi )。您可能希望选择自定义安装类型并将 MySQL 放在“Program Files”以外的文件夹中,但这不如使用 Apache 或 PHP 重要。

请注意,MySQL 带有“MySQL 服务器实例配置向导”。这可以在安装 MySQL 后自动运行。但是,您可以在安装完成后取消选中此选项,并随时MySQLInstanceConfig.exe在 MySQLbin文件夹中运行相同的向导。


配置

阿帕奇

假设您将 Apache 安装到C:\Apache24(上面)中,Apache 应该不需要进一步调整即可运行。您应该能够启动 ApacheC:\Apache24\bin\httpd.exe并访问localhost127.0.0.1查看它的工作原理!作为浏览器中返回的消息。Web 文档(.html文件、.php脚本等)的默认文件夹是例如C:\Apache24\htdocs.

PHP

复制php.ini-development php.ini-production并重命名复制的文件php.ini(所有这些通常位于 PHP 安装文件夹的根目录中,例如C:\PHP7)。选择哪个文件作为您的配置基础 ( php.ini-developmentvs php.ini-production) 取决于您。正如所指出的,php.ini-development是一种面向开发人员的配置,并且php.ini-production是一种用于生产的稍微更安全的配置(即用于暴露于 Internet 的服务器)。

PHP 通常不需要额外的配置,除非您的脚本需要不属于 PHP 默认值的特定功能或模块。也就是说,您可以在php.ini创建后取消注释任何必要的选项(删除#行开头的 并保存文件)。您的脚本所需的任何特定 PHP 配置选项都可能在原始脚本的源代码中找到(即在网站上)。

MySQL

MySQLInstanceConfig.exebinMySQL 安装目录的目录下运行(例如C:\MySQL Server 5.5\bin\MySQLInstanceConfig.exe)。选择Detailed Configuration。以下选项应作为基本设置:

  • 开发者机器(最少的内存使用)。
  • 多功能数据库(InnoDB 和 MyISAM 存储引擎)。
  • InnoDB 数据文件 ( installation path) 的默认位置。
  • 在线事务处理 (OLTP)。多达 500 个连接。请注意,选择此选项非常重要。使用不同的选项/连接数可能会阻止 MySQL 服务启动。
  • 默认网络选项(在端口 3306 上启用 TCP/IP 连接,确保选中“为此端口添加防火墙例外”,启用严格模式)。
  • 标准字符集 (Latin1)。如果您使用的不是“西欧”语言,您可能希望选择“最佳支持多语言”(UTF8)。
  • 作为 Windows 服务安装。选中“自动启动 MySQL 服务器”选项。
  • 在 Windows 路径中包含 Bin 目录(可选)。这只是使从命令行运行 MySQLbin文件夹中的程序成为可能(以防您在脚本中需要它们,使用 来检查您的 MySQL 版本mysqld -V,轻松管理 MySQL 作为服务等)。
  • 修改安全设置(输入root用于访问 MySQL的新密码,以便您可以使用例如用户名root和密码登录password_you_chose)。为了安全起见,在大多数情况下可以不选中“创建匿名帐户”,“启用远程机器的根访问”也是如此(除非您确实需要它)。

选择所有适当的选项后,按“执行”按钮应用更改。给出的基本选项将记录my.ini在您的 MySQL 根目录中。MySQL 现在应该作为服务在后台运行(独立于 Apache/PHP)。


阿帕奇 & PHP

要使用 Apache 启用 PHP 处理,您需要编辑您的httpd.conf文件(例如C:\Apache24\conf\httpd.conf),如下所示。将以下几行放在 的末尾httpd.conf

# ----- PHP Configuration -----

# LoadModule php7_module "c:/PHP7/php7apache2_4.dll"

LoadModule php7_module "c:/PHP7/php7apache2_4.dll"
AddHandler application/x-httpd-php .php

# Configure the path to php.ini
# PHPIniDir "c:/PHP7"

PHPIniDir "c:/PHP7"
Run Code Online (Sandbox Code Playgroud)

c:/PHP7应该与您安装 PHP 的任何目录匹配并且php.ini应该已经存在(请参阅上面的 PHP 配置)。不要忘记保存更改并重新启动 Apache 服务器。

您可以通过创建一个.php包含以下行的文件来验证 PHP 是否在 Apache 上运行:

<?php phpinfo()?>
Run Code Online (Sandbox Code Playgroud)

将此保存为 ex。version.php并将其放置在您的根 Web 目录中(例如C:\Apache24\htdocs)。然后您应该能够导航到 ex。http://localhost/version.php并查看有关您的 PHP 安装的大量信息。


阿帕奇笔记

  • 通过httpd.exe直接运行手动启动 Apache(即不作为服务)通常不会产生错误。但是,为了避免出现关于 Apache 无法解析服务器的 FQDN 的警告,您可能希望取消注释(例如)中的ServerName条目。默认工作正常。httpd.confC:\Apache24\conf\httpd.confwww.example.com:80

  • 如前所述,在更新httpd.conf或 后php.ini,您应该始终重新启动 Apache 以确保您的更改生效。

  • 如果 Apache 无法启动和/或生成错误,您应该查看日志以确定原因(例如C:\Apache24\logs\error.log)。

  • 使用httpd.exe或手动启动 Apache httpd.exe -k start(如果 Apache 作为服务安装)可能会显示特定的配置问题,并且相关的文件/行 Apache 解析有问题。

  • 要使用安装目录以外的安装目录C:\Apache24或 Web 文档根目录以外的目录C:\Apache24\htdocs,您需要编辑httpd.conf. 您可能还需要对此文件进行其他更改才能正确设置您的 Web 服务器。

  • 要启用 SSL 连接 (HTTPS),您需要获取 SSL 证书,并且需要编辑httpd-ssl.conf.

  • Apache 对允许运行脚本的文件夹具有适度的安全意识。如果您的 PHP 脚本失败,则它们可能没有正确的运行权限。


服务说明

  • 服务可以通过服务进行管理(开始菜单?运行/搜索?“服务” Enter)。

  • 与任何Windows服务工作需要管理权限,包括提升的命令提示符(开始菜单?运行/搜索?“CMD” Control+ Shift+ Enter)。

  • 您可以使用httpd.exe. 从提升的命令提示符(上面),导航到 egC:\Apache24\bin并运行:

    httpd -k install -n "Apache2.4"
    
    Run Code Online (Sandbox Code Playgroud)
  • 在 Windows 上,“Apache2.4”应该是默认的 Apache 服务名称。使用任何其他服务名称可能会导致问题。

  • 如果您之前尝试将 Apache 或 MySQL 作为服务安装,您可能需要确保它们不再在 Windows 中注册。首先,确保服务已停止(同样,您可以通过“开始”菜单?运行/搜索?“服务”在“服务”中进行检查Enter)。假设服务没有运行,打开一个提升的命令提示符(上面),然后运行 ​​egsc delete Apache2.4sc delete MySQL

  • 或者,Apache 和 MySQL 有前任。httpd -k uninstall -n "Apache2.4"(例如C:\Apache24\bin\httpd.exe)和前。mysqld --remove(例如C:\MySQL Server 5.5\bin\mysqld.exe)删除每个相应的服务。


注意事项

  • 正如在 MySQL 配置部分所述,为并发连接数(最多 500)选择在线事务处理 (OLTP) 以外的任何内容可能会阻止 MySQL 服务启动。症状包括尝试启动 MySQL 服务时 MySQL 服务器实例配置向导“挂起”(按“执行”后)或无法在 Windows 中手动启动服务 ( System error 1607 has occurred.)