我尝试设置 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.
因此,Apache 无法工作(Attempting to start Apache service...
“并且什么都没有”)。之后,我尝试安装最后一个 WampServer(wampserver 3.1.7)。我得到了这样的 mysqld 窗口:missing msvcp120.dll
之后我尝试运行 Wamp 的 3 个服务,只有两个启动了,Apachelocalhost
可以工作,我不知道什么没有启动。所以,我尝试安装,msvcp120
但什么也没发生。
答案1
安装
阿帕奇
从以下位置下载 Apache 副本Apache 休息室。您可能需要下载当前的 64 位版本(httpd-2.4.43-win64-VS16.zip)。.zip
下载文件后,提取内容。将Apache24
文件夹移动到您希望它永久驻留的位置。请注意Apache24
,一般来说,不是放置在:
- 任何“Program Files”文件夹。
- 任何“用户”文件夹。
- 下的任何地方
AppData
。
阿帕奇应该位于没有空格的路径中(例如C:\Apache24
默认情况下)。您可能需要安装正确的Visual Studio 2015-2019 C++ 可再发行组件也一样。
PHP
安装 Apache 后,下载PHP。正如 PHP.net 侧边栏所示,使用 Apache 时,您需要使用 PHP 的“线程安全”版本。最新的 PHP 64 位线程安全版本是php-7.4.3-Win32-vc15-x64.zip。与 Apache 类似,提取.zip
文件并将其内容放置在您希望其永久驻留的位置(例如C:\PHP7
)。您可能希望避免使用与 Apache 相同的系统控制文件夹(如上所述)。
MySQL
最后,下载MySQL 社区版。您可以使用您认为最合适的版本,但为了获得最大兼容性,您可能希望考虑较旧的 MySQL 5.x 分支。作为建议,我可能会建议使用最新的 5.5 分支 64 位安装程序(mysql-5.5.62-winx64.msi)。您可能希望选择自定义安装类型并将 MySQL 放在“Program Files”以外的文件夹中,但是这并不像 Apache 或 PHP 那样重要。
MySQLInstanceConfig.exe
请注意,MySQL 附带“MySQL 服务器实例配置向导”。安装 MySQL 后,该向导会自动运行。但是,您可以在安装完成后取消选中此选项,并在 MySQL 文件夹中随时运行相同的向导bin
。
配置
阿帕奇
假设您已将 Apache 安装到C:\Apache24
(上述),Apache 应该不需要进一步调整即可运行。您应该能够使用 启动 ApacheC:\Apache24\bin\httpd.exe
并转到localhost
或127.0.0.1
查看有用!作为浏览器中返回的消息。Web 文档(.html
文件、.php
脚本等)的默认文件夹例如是C:\Apache24\htdocs
。
PHP
复制php.ini-development
或者 php.ini-production
并重命名重复的文件php.ini
(所有这些文件通常都位于 PHP 安装文件夹的根目录中,例如C:\PHP7
)。选择哪个文件作为配置的基础(php.ini-development
与php.ini-production
)取决于您。如所示,php.ini-development
是面向开发人员的配置,php.ini-production
是面向生产(即用于暴露在互联网上的服务器)的稍微更安全的配置。
PHP 通常不需要额外的配置,除非您的脚本需要特定的函数或模块,而这些函数或模块不是 PHP 的默认设置。也就是说,您可以在php.ini
创建后取消注释任何必要的选项(删除#
行首的 并保存文件)。您的脚本所需的任何特定 PHP 配置选项都可能在原始脚本的源代码中找到(即在网站上)。
MySQL
在MySQL 安装目录MySQLInstanceConfig.exe
下运行(例如)。选择。以下选项应作为基本设置使用:bin
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 服务器”选项。
- 将 Bin 目录包含在 Windows 路径中(可选)。这样就可以
bin
从命令行运行 MySQL 文件夹中的程序(如果您在脚本中需要它们,可以使用 检查 MySQL 版本mysqld -V
,轻松地将 MySQL 作为服务进行管理等)。 - 修改安全设置(输入用于访问 MySQL 的新密码,以便您可以使用用户名和密码
root
登录)。出于安全考虑,大多数情况下可以不选中“创建匿名帐户”,也可以不选中“启用远程计算机的 root 访问”(除非您确实需要)。root
password_you_chose
选择所有适当的选项后,按“执行”按钮应用您的更改。给出的基本选项将记录在my.ini
您的根 MySQL 目录中。MySQL 现在应该作为服务在后台运行(独立于 Apache/PHP)。
Apache 和 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"
c:/PHP7
应与您安装 PHP 的目录匹配,并且php.ini
应该已经存在(请参阅上面的 PHP 配置)。不要忘记保存更改并重新启动 Apache 服务器。
.php
您可以通过创建包含以下行的文件来验证 PHP 是否在 Apache 上运行:
<?php phpinfo()?>
将其保存为 ex.version.php
并将其放在您的根 Web 目录中(例如C:\Apache24\htdocs
)。然后您应该能够导航到 ex.http://localhost/version.php
并查看有关 PHP 安装的大量信息。
Apache 说明
通过直接运行手动启动 Apache(即不作为服务)
httpd.exe
通常不会产生任何错误。但是,为了避免出现有关 Apache 无法解析服务器的 FQDN 的警告,您可能希望取消注释(例如)ServerName
中的条目。默认工作正常。httpd.conf
C:\Apache24\conf\httpd.conf
www.example.com:80
正如已经指出的,更新
httpd.conf
或之后php.ini
,您应该始终重新启动 Apache 以确保您的更改生效。如果 Apache 无法启动和/或生成错误,您应该查看日志来确定原因(例如
C:\Apache24\logs\error.log
)。httpd.exe
使用或手动启动 Apachehttpd.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)。ShiftEnter
您可以使用 安装 Apache 作为服务
httpd.exe
。从提升的命令提示符(上面)导航到 egC:\Apache24\bin
并运行:httpd -k install -n "Apache2.4"
在 Windows 上,“Apache2.4”应为默认的 Apache 服务名称。使用任何其他服务名称都可能导致问题。
如果您之前尝试将 Apache 或 MySQL 安装为服务,则可能需要确保它们不再在 Windows 中注册。首先,确保服务已停止(同样,您可以通过“开始”菜单 → 运行/搜索 → “服务” 使用“服务”进行检查Enter)。假设服务未运行,请打开提升的命令提示符(如上所示),然后运行例如
sc delete Apache2.4
或sc delete MySQL
。或者,Apache 和 MySQL 有 ex.
httpd -k uninstall -n "Apache2.4"
(例如C:\Apache24\bin\httpd.exe
) 和 ex.mysqld --remove
(例如C:\MySQL Server 5.5\bin\mysqld.exe
) 来删除相应的服务。
注意事项
- 正如 MySQL 配置部分所述,如果将并发连接数(最多 500 个)设置为除联机事务处理 (OLTP) 之外的其他选项,则可能会导致 MySQL 服务无法启动。症状包括尝试启动 MySQL 服务时(按“执行”后)MySQL 服务器实例配置向导“挂起”或无法在 Windows 中手动启动服务(
System error 1607 has occurred
。)