如何通过Homebrew程序在macOS上安装Apache

时间:2019-05-19 01:26:35  来源:igfitidea点击:

macOS的最新版本预装了Apache 2.4。
但是通过Homebrew软件很难管理,因为苹果已经从最新的macOS版本中删除了一些必需的草稿。
本教程将从系统中删除默认安装的Apache,并在系统上安装Homebrew版本的Apache。

准备工作

在使用本教程开始安装Apache (HTTPD)服务器之前,我们必须具备以下准备工作。
终端:我们必须有Mac终端访问权限,并且对使用终端应用程序知之甚少。
Homebrew是一个流行的Mac操作系统的包管理器。
它对于安装大多数开源软件(如Node)非常有用。

步骤1 -在macOS上安装Apache

从系统中删除内置的Apache服务器(如果有的话)。
打开一个终端并执行命令以停止运行Apache服务器并删除它。

sudo apachectl stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

现在通过Homebrew安装服务器提供的新版本Apache:

brew install httpd

完成安装过程后,将httpd服务配置为在系统引导时自动启动。

sudo brew services start httpd

我们已经通过Homebrew程序成功安装了Apache web服务器,并将其配置为使用特权帐户自动启动。
在浏览器中打开 http://localhost:8080应该能看到apache首页

步骤2 -配置Apache

Apache web服务器现在正在macOS系统上运行。
现在我们需要根据本地开发环境进行一些配置更改。
配置文件 /usr/local/etc/httpd/httpd.conf
是由安装程序生成的,对它进行以下更改。

设置Apache端口

Homebrew的httpd版本使用端口8080。
我们必须手动将listen端口从默认的8080更改为标准端口80。

Find the line with  
Listen 8080

and change it to  
Listen 80

更改站点的目录

现在,为Apache配置文档根目录。
默认的文档根目录设置为“/usr/local/var/www”。
我们可以保持文档根目录不变,并将网站文件放在此文档根目录。
但我假设我们希望将文档根目录更改为设置为主目录。
更改此指向用户目录,其中your_user是用户帐户名称:

DocumentRoot /Users/Hyman/Sites

我们还需要更改在DocumentRoot行正下方配置的标记 /Users/Hyman/Sites
这也应该改变为指向你的新文档根目录:
在同一块中,我们将发现一个AllowOverride选项,将其设置为all以便在Apache中启用.htaccess文件。

<Directory /Users/Hyman/Sites>
   [...]
   #
   # 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 
</Directory>

启用重写模块

删除mod_rewrite模块前面的#号注释。

这将在Apache上启用URL重写。

LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

为Apache设置用户和组

正如我们已经将Apache文档根目录配置到主目录一样。
我们将面临权限问题,因为在默认情况下,Apache作为用户守护进程和组守护进程(可能用户名和组是_www)运行。
对于个人系统,我们可以将这些更改为与一组staff匹配用户帐户(将user_name替换为真实用户名)。

User user_name
  Group staff

步骤3 -在Apache上配置应用程序

让我们在主目录中创建一个Sites文件夹,并为测试创建一个示例index.html文件。

mkdir ~/Sites
echo "Welcome" > ~/Sites/index.html

重新启动apache,以确保配置更改已经生效:

sudo apachectl -k restart

现在,使用浏览器访问http://localhost,将显示新创建的index.html内容。

步骤4 -管理Apache服务

现在我们已经安装了Apache server,还根据设置相应地配置了它。
下面的命令用于停止、启动和重新启动Apache服务

sudo apachectl stop
sudo apachectl start
sudo apachectl -k restart