如何在 macOS 12 Monterey 上设置 MAMP本地服务器
Apple 于 2021 年 10 月 25 日发布了 2021 年最新的 macOS 12 Monterey。今年又到了,如果您从 macOS 11 Big Sur 或更旧版本升级,您可能需要重新配置 macOS。
或者,如果您有一台装有 macOS 12 Monterey 的全新 Mac,以下配置步骤应该可以帮助您在 macOS 平台上设置本地 Web 服务器。
在 macOS 12 Monterey 上,系统内置了 Apache。但是,当您查看 Apache 内置的 httpd.conf 时,您会注意到有一行说:
#PHP was deprecated in macOS 11 and removed from macOS 12
从 macOS 12 Monterey 开始,由于没有内置 PHP,如果您想设置 MAMP(macOS、Apache、MySQL、PHP)堆栈,我建议使用 Apache 的 Homebrew 版本以及 PHP。
禁用 macOS 内置 Apache
由于我们不会使用 macOS 12 内置版本的 Apache,如果您的内置 Apache 正在运行,请发出以下命令来停止 Apache 服务。
打开终端Terminal
并输入:
sudo apachectl stop
安装Homebrew
您需要做的第一件事是将 Homebrew 安装到您的 macOS 12 Monterey 系统(如果您还没有安装 Homebrew)。
检查您是否安装了 Homebrew 或知道安装的 Homebrew 版本
打开Terminal
并输入brew -v
Homebrew 3.3.0
Homebrew/homebrew-core(git 修订版 359f9f16171;最后一次提交 2021-10-25)
这意味着您已经安装了 Homebrew。如果您没有看到以上内容,请按照以下步骤在您的系统中安装 Homebrew。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
打开Terminal
并粘贴上面的命令。
注意:如果您没有安装 Xcode 的命令行工具,Homebrew 安装程序将首先下载并安装 Xcode 的命令行工具,然后它将继续完成 Homebrew 到您的系统的安装。
导出环境路径
当您尝试发出 brew 命令时,您可能会收到以下错误。
zsh: command not found: brew
如果出现上述错误,则必须通过发出以下命令来导出路径。
export PATH="/opt/homebrew/bin:$PATH"
打开Terminal
并键入以下命令,然后按 Enter。
echo 'export PATH="/opt/homebrew/bin:$PATH"' >> $HOME/.zshrc
然后键入以下命令并按 Enter。
关闭Terminal
并重新打开一个新Terminal
窗口。
通过 Homebrew 安装 Apache
安装 Homebrew 并正确设置导出后,下一步是使用 Homebrew 安装 Apache。
打开 Terminal
输入 brew install httpd
配置 Homebrew 版本的 Apache(httpd.conf 文件)
打开 Terminal
输入 cd /opt/homebrew/etc/httpd/
键入 sudo cp httpd.conf httpd.conf.bak
并按 Enter(如果您想保留原始配置文件的副本,则此步骤是可选的。)
输入 sudo nano httpd.conf,进行编辑
启用模块和配置
您需要启用(取消注释该行)并修改/更新httpd.conf
文件中的配置。
要启用模块,首先,您需要找到要启用的模块。
用于调control + w
出搜索功能,查找以下模块并确保取消注释。(删除#
每行前面的。)
LoadModule authn_core_module lib/httpd/modules/mod_authn_core.so LoadModule authz_host_module lib/httpd/modules/mod_authz_host.so LoadModule userdir_module lib/httpd/modules/mod_userdir.so LoadModule include_module lib/httpd/modules/mod_include.so LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so Include /opt/homebrew/etc/httpd/extra/httpd-userdir.conf
修改 DocumentRoot
使用control + w
并搜索DocumentRoot
. 注释掉(放在#
下面每一行的前面。
DocumentRoot "/Users/mymac/work/" <Directory "/Users/mymac/work/"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. # Options Indexes FollowSymLinks Multiviews MultiviewsMatch Any # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # AllowOverride FileInfo AuthConfig Limit # AllowOverride All # # Controls who can get stuff from this server. # Require all granted </Directory>ed
修改监听端口
默认情况下,它将侦听 port 8080
。如果要监听端口80
,修改Listen 8080
为Listen 80
.
使用Control + w
并搜索Listen 8080
然后替换为Listen 80
在您的用户名下创建站点文件夹
由于我们将 DocumentRoot 定义为/Users/mymac/work/
。我们需要Sites
在用户“ developer
”下创建这个“ ”文件夹。
打开Finder
并导航到用户的文件夹。
创建新文件夹并将其命名为“ work
”
通过 Homebrew 安装 PHP
打开 Terminal
输入 brew install PHP
等待安装完成。
修改 httpd.conf 以在 Apache 上启用 PHP
打开终端
输入 cd /opt/homebrew/etc/httpd/
输入 sudo nano httpd.conf 编辑
添加以下几行。
LoadModule php7_module /usr/local/Cellar/php@7.1/7.1.33_4/lib/httpd/modules/libphp7.so
# 注意这里要根据你具体的php路径,如果是7.x 中间php7_module,如果是8.x,则php_module,后面也是libphp.so <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
使用Control + w
并搜索DirectoryIndex
,然后添加index.php
创建 phpinfo.php 文件
phpinfo.php 文件将用于检查 PHP 是否正常工作。
打开 Terminal
输入 cd ~/work
类型 sudo nano phpinfo.php
打开 nano 应用程序后,添加以下行。
<?php phpinfo(); ?>
然后按control + o
保存然后control + x
退出nano应用程序。
启动Apache服务器
完成Apache和PHP的配置后,让我们启动Apache服务器。
打开 Terminal
输入 brew services restart httpd
要检查 Apache 服务是否正在运行,请键入 brew services list
你应该看到类似的东西:
httpd 启动开发人员 /Users/developer/Library/LaunchAgents/homebrew.mxcl.httpd.plist
// 注:如果php显示none,则表示php没开启,开启方法:brew services restart php@7.1 根据自己的版本号调整,关闭stop、重启restart
如果您看到“已启动”状态,则表示 Apache 服务器已启动并正在运行。