macOS Apache 配置

在 macOS 上搭建本地网页访问服务(Apache) 通过简单几步,我们已经在 macOS 上成功搭建了一个本地 Web 服务,并可以通过浏览器访问自定义网页。适合以下场景:前端页面快速预览局域网共享网页本地开发环境测试Apache 在 macOS 上的易用性和内置支持,极大地方便了本地开发者。下一步你可以尝试使用 PHP、配置虚拟主机、或迁移到更复杂的 Web 服务方案,如 Nginx + MySQL + PHP(LNMP)。如有任何问题或改进建议,欢迎留言交流! 阅读详情

目录

  1. 启动 Apache
  2. 修改 Apache 配置
  3. 配置虚拟主机
  4. 修改 hosts 文件

本文涉及的操作系统、软件版本:

  1. macOS Sierra 10.13.3
  2. Apache/2.4.28

一个事实:macOS 系统自带 Apache 软件。

我们可以在命令行下查看 Apache 版本号:

$ httpd -v                                                      
Server version: Apache/2.4.28 (Unix)
Server built:   Oct  9 2017 19:54:20

启动 Apache

那,要怎么知道 mac 上的 Apache 是否已经启动?简单,我们在浏览器打开网址 http://localhost。

  1. 如果出现 Unable to connect 那就是还没启动;
  2. 如果出现 It works!,那就是已经启动;
  3. 如果出现其它,那就已经启动,并且配置过。

如果你的 mac 上 Apache 还未启动,可以通过以下命令来启动 Apache:

$ sudo apachectl start

是的,你需要 sudo。普通用户没有权限操作 apachectl。

mac 下 Apache 默认的目录在 /Library/WebServer 下,我们来看看该目录下的各文件/文件夹的权限、所有者:

ls -la /Library/WebServer 
total 0
drwxr-xr-x   5 root  wheel   170 Feb  7  2017 .
drwxr-xr-x+ 63 root  wheel  2142 Sep  8 11:13 ..
drwxr-xr-x   4 root  wheel   136 Feb  7  2017 CGI-Executables
drwxr-xr-x  14 root  wheel   476 Sep  8 11:14 Documents
drwxr-xr-x   3 root  wheel   102 Feb  7  2017 share

所有目录的所有者都是 root,假如你当前登录的用户不是 root,那么,你操作该目录下的任何文件都需要 sudo 。你觉得每次都要输入密码太荒唐。

还是放主目录吧。

让我们在自己的主目录下新建一个 Sites 目录:

$cd ~
$ mkdir Sites

如果我们在 Finder 下查看,就会发现这个 Sites 的目录的图标与众不同:

sites folder in macOS

这是因为它本来是 mac 上自带的 web sharing 设置的主目录,只不过 OSX Mountain Lion 之后被去掉了。

创建完 Sites,我们继续在 Sites 下创建一个新目录,

$ cd Sites
$ mkdir blog

并创建一个空的 html 文件:

$ cd blog
$ touch index.html

我们在新建的 index.html 文件中添加一段 hello world:

$ echo 'hello world' >> index.html

那么,要怎样让 Apache 从我们的 Sites 目录读取文件呢?

修改 Apache 配置

可是配置在哪,又该怎么改。

对一头扎进非专业领域的前端开发人员来说,这并不容易。

查找 Apache 文档,我们看到一个 Per-user web directories 的功能:

On systems with multiple users, each user can be permitted to have a web site in their home directory using the UserDir directive. Visitors to a URL http://example.com/~username/ will get content out of the home directory of the user "username", out of the subdirectory specified by the UserDir directive.

在多用户系统里,通过 UserDir 指令,可以让每个用户都在自己的主目录下拥有一个网站。不过,这个特性默认是关闭的。

我们需要调整 /etc/apache2/httpd.conf 文件。

执行 sudo vim /etc/apache2/httpd.conf 打开 httpd.conf 文件,然后查找 userdir。

我们找到如下俩行被注释掉的内容:

#Include /private/etc/apache2/extra/httpd-userdir.conf
#LoadModule userdir_module libexec/apache2/mod_userdir.so

把行首的 # 去掉,并保存。

接着再编辑 /private/etc/apache2/extra/httpd-userdir.conf 文件,增加内容:

UserDir Sites

然后重启 apache:

$ sudo apachectl restart

此时访问 http://localhost/~sam/,我们期望页面会列出 Sites 目录下的所有内容。

但事与愿违:

403 Forbidden
Forbidden
You don't have permission to access /~sam/ on this server.

我们来看看日志:

$ tail -f /var/log/apache2/error_log
[Sat Sep 09 23:37:12.040886 2017] [authz_core:error] [pid 86332] [client ::1:57810] AH01630: client denied by server configuration: /Users/sam/Sites/

根据日志,我们找到 https://wiki.apache.org/httpd/ClientDeniedByServerConfiguration。

里面提到 Directory,是的,默认情况下,Sites 是不对外开放的,我们需要配置权限。

仍要在 /etc/apache2/httpd.conf 文件中配置:

<Directory /Users/sam/Sites>
  Require all granted
</Directory>

再度访问 http://localhost/~sam/,仍有问题,再看看错误日志:

[Sat Sep 09 23:51:57.419328 2017] [autoindex:error] [pid 87722] [client ::1:58376] AH01276: Cannot serve directory /Users/sam/Sites/: No matching DirectoryIndex (index.html,index.html,index.php) found, and server-generated directory index forbidden by Options directive

说是缺少 index 文件,而服务器配置禁止直接列出目录下的内容 - 这便是 apache 403 的缘故。

不过我们不打算在 Sites 目录下直接存放文件,所以这个错误可以忽视。

还记得我们前面创建的 blog 下的 index.html 文件么?试试访问它 http://localhost/~sam/blog/,看到 hello world。也就是说,我们其实已经成功配置 apache。

过了有一阵子,我们的 blog 完全运转,可是,每次都要输入 http://localhost/~sam/blog 这样的访问路径,实在太麻烦。

能不能使用 http://blog.sam 来访问 blog?

配置虚拟主机

为什么需要虚拟主机?

我们知道,一台机器通常是只有一个 ip 的。而现状是,会有多个网址,比如 blog.sam,blog.chen 要解析到同一个 ip 上,Apache 需要一种机制来区别它们 - 这就是虚拟主机(vhost)。

打开 /etc/apache2/httpd.conf,添加如下内容:

<VirtualHost *:80>
  ServerName blog.sam
  DocumentRoot "/Users/sam/Sites/blog/"
</VirtualHost>

保存然后重启 Apache,访问 http://blog.sam,得到:

ERR_NAME_NOT_RESOLVED

因为 DNS 无法解析出它的 ip 地址。

修改 hosts 文件

要把 blog.sam 解析成本地 ip,我们有许多办法,比如利用本地 dns 服务器,但最简单的是,直接改 /etc/hosts 文件,我们在最末添加一行:

127.0.0.1 blog.sam

然后在命令行下 ping 一下看看:

$ ping blog.sam         
PING blog.sam (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.035 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.121 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.095 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.097 ms

很好,有响应。

再访问 http://blog.sam 试试,看到 hello world,成功。

 

 

原文地址:https://blog.zfanw.com/macos-apache/

在Mac上配置Apache和PHP7 至此,你已成功在Mac上配置了Apache和PHP7。通过按照以上步骤进行配置,你可以搭建一个本地的PHP开发环境,并开始编写和测试PHP应用程序。在Mac操作系统上,你可以通过配置Apache服务器和PHP7来搭建一个本地开发环境。现在,你可以通过创建一个简单的PHP文件来测试你的配置是否成功。你可以使用任何文本编辑器打开该文件,并进行以下配置更改。根据你的需求,找到以下行,并确保它们没有被注释掉(行首没有。,如果一切配置正确,你将看到PHP配置信息页面。你可以将文档根目录更改为任何你喜欢的目录。 阅读详情

相关推荐

Mac 本地 Apache 服务器设置指南

请记住,根据您的需求,您可以进一步自定义 Apache 的配置。端口号:默认情况下,Apache 使用端口号 80。在 Mac 上,我们可以使用 Homebrew 包管理器来进行安装。在本篇文章中,我们将详细介绍如何在 Mac 上设置本地 Apache 服务器。如果一切顺利,您应该能够通过浏览器访问服务器上的网站。完成配置后,我们可以启动 Apache 服务器。为了测试服务器是否正常工作,我们可以在网站的根目录中创建一个简单的。我们可以使用任何文本编辑器打开此文件,并进行相应的更改。

CqcVue的博客 1719

mac 13 系统下安装配置 apache php (更新20230511)

apache的配置 apache已经自带了,只需如下三个命令就可以了。 开启apache服务 sudo apachectl start 停止apache服务 sudo apachectl stop 重启服务 sudo apachectl restart 查看版本 httpd -v 手动打开apache服务后,在浏览器输入localhost,将看到如下: 程序的根目录在/Library/WebServer/Documents/ 下,这个It works 就是里面的info.php打印出来的。 下面介绍如何将

哈哈的狮子 7905

电磁场可视化

电磁场可视化 如题,做了电磁场可视化这么久了,也是颇有些心得了,简单描述一下怎么做这个项目的。 开始时是从最基本的OpenGL开始做的,必不可少的翻了许多的文献,后来是直接在unity中做,发现效果挺好,而且可控性强好多。反复琢磨后,发现可视化的渲染,有几种思路,第一就是用linerender,画线的方法,另一种就是用shader。 第一种我通过unity自带的linewave插件可以做到 详细的就是,linewave插件可以轻松画出曲线等,并且可以添加碰撞,控制频率幅度长度等一切的条件数值,而且令人惊喜

weixin_43979140的博客 1670

使用Apache开启Mac本地服务

在本地环境开启服务器操作有多种方式,此文介绍使用Apache开启服务,更多可查看服务器专栏。

失眠时间的博客 1695

【一文读懂】卫星轨道的轨道参数(六根数)和位置速度矢量转换及其在终端距离、相对速度和多普勒频移计算中的应用

本文首先介绍了卫星轨道的六根数参数:半长轴 a、偏心率 e、轨道倾角 i、升交点赤经 Ω、近地点幅角 ω 以及真近点角 ν,并探讨了如何利用这些参数计算卫星与地面终端之间的距离、相对速度及由此产生的多普勒频移。利用开普勒运动公式计算当前瞬间的轨道半径;根据真近点角 ν 在围心坐标系中计算位置矢量和速度矢量;利用旋转矩阵(依次旋转 ω、i、Ω)将围心坐标系的状态矢量转换到地心惯性坐标系;最终结合地面终端信息,计算卫星与终端的欧氏距离、沿视线的相对速度及多普勒频移。

u011376987的博客 9496

Sentaurus TCAD 修改字体

如题

努力学习的IC小白 5760

macOS上Apache php配置

macOS 上Apache php 配置本人小java工程师一个,闲来没事配置一下mac上的php开发环境,使用的是macOS 10.10。mac上自带了php和Apache,就用默认的配置好了,Apache配置中默认的系统级根目录是 /Library/WebServer/Documents下,用户级的根目录是在 /Users/username/Sites 下,如果想使用Sites目录,执行以

征衣风尘的博客 877

SpringBoot3 + OAuth2.1实战:5分钟搞定授权码模式(含完整代码)

本文详细介绍了如何在SpringBoot3环境中快速实现OAuth2.1的授权码模式,包括环境配置、核心安全实现及完整代码示例。通过Spring Security集成,开发者可以高效构建企业级安全认证系统,解决版本兼容性问题,提升开发效率。

weixin_29216353的博客 140

macOS 中 apache vhosts 配置备忘

1. 修改 apache 服务器指向的根目录 macOS 默置了 apache,有以下几个常用命令: sudo apachectl -v // 查看 apache 版本 httpd -v // 同上 sudo apachectl start sudo apachectl stop sudo apachectl restart sudo apachectl -t // 查看当前 apache 运行...

weixin_34067980的博客 242

PyTorch GPU版本安装避坑指南:解决RuntimeError: No CUDA GPUs are available报错

本文详细解析了PyTorch GPU版本安装过程中常见的`RuntimeError: No CUDA GPUs are available`报错问题,从硬件驱动检查、CUDA Toolkit与cuDNN安装到PyTorch GPU版本的正确配置,提供了全面的避坑指南和实战验证方法,帮助开发者高效搭建深度学习开发环境。

r2s3t4的博客 297

RK3576 Buildroot 双机 ADB 异常排障实录:同版 `boot.img`,一台可识别一台不可识别

进程在跑”不等于“USB 枚举成功”,adbd存活只是必要不充分条件。生产环境中的全局别名可能反向污染系统脚本。shell 命令替换中的字符串问题,必须做字节级验证(od -tx1相比“改环境规避”,核心脚本对输入做鲁棒处理更可长期维护。

小灰灰的博客 210

macos 12 安装php 配置apache

安装 php7.4 brew install php@7.4 安装完成后提示: To enable PHP in Apache add the following to httpd.conf and restart Apache: LoadModule php7_module /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so <FilesMatch \.php$> SetHandler applicati.

kevink的博客 4061

UDS自动化测试-Service 0x27(CAPL调用dll实现key计算)

相信读者基于Diagnostic/ISO TP Confighration中cdd、dll文件的测试并不陌生,本文基于其的基础上,介绍在capl中调用内置的函数diagGenerateKeyFromSeed实现27服务解锁,从而进行诊断自动化测试。本文基于4个byte的Seed、16个byte的Key的安全访问,实现27服务的自动化测试。需要加载项目使用的cdd文件,如果没有的情况下可以使用canoe例程中默认的cdd文件。

诊断协议那些事儿's blog 2054

apache 版本_Mac电脑、MacOS系统 下php、apache、mysql开发环境配置

MacOS的终端与使用linux系统没什么区别,shell命令几乎完全通用,非常适合服务端开发。下面讲解一下MacOS 下php、apache、mysql开发环境配置,目录结构与linux系统下的差不多,有哪些坑需要注意的呢?MacOS自带php与apache,把它开启就行了。第一步:打开终端,sudo su 入进root权限第二步:mv /etc/php.ini.default /etc/php...

weixin_33109551的博客 115

Windows10环境下激活虚拟环境报错【source : 无法将“source”项识别为 cmdlet、函数、脚本文件或可运行程序的名称】

在使用Django创建Web程序前,需要创建一个虚拟的工作环境,在使用【source ll_env/bin/activate】命令激活虚拟环境时报错:source : 无法将“source”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。所在位置 行:1 字符: 2。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

apache启动但是访问不到_MacOS下配置Apache解决HTTP405(Method Not Allowed)

|前言在一般情况下请求静态资源是要用get请求,使用post请求的时候并且发送url是一个具体的资源的时候,网络会把url当做域名来解析。那如果硬是要通过POST来获取数据(客户说这样才安全),那在本地开发的时候我们就会遇到。|问题我们在开发的时候使用GET获取本地假数据是没问题的。但我们在使用POST方式获取本地数据的时候,就出现了这种错误Failed to ...

weixin_39565021的博客 967

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

macOS配置Apache服务器

注: macOS自带Apache服务器,只需要修改几个配置就可以 目录要在/Users/TaoWang 修改系统文件一定记住"sudo",否则会没有权限 在修改系统文件前请先备份 etc 目录有点类似于 windows/system32, 存放配置文件的目录 备份和恢复系统文件: //备份: cp (copy 的缩写) httpd.c...

weixin_34007291的博客 169

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Apache Thrift跨平台开发:macOS环境配置指南

你还在为分布式系统开发中的跨语言通信问题烦恼吗?作为一款高效、可靠的跨语言远程过程调用(RPC)框架,Apache Thrift(远程过程调用,Remote Procedure Call)能帮你轻松构建跨平台服务。本文将带你在macOS系统中从零开始配置Thrift开发环境,10分钟内完成从依赖安装到运行第一个跨语言服务的全过程。读完本文你将掌握:Thrift环境的完整搭建流程、编译工具链配置技巧...

gitblog_01186的博客 1103

macos mysql 阿帕奇_Mac配置apache,mysql

OS X 中默认有两个目录可以直接运行你的 Web 程序:系统级的 Web 根目录及对应的网址:/Library/WebServer/Documents/ http://localhost,用户级的根目录及其对应的网址:~/Sites http://localhost/~stephen/(~/Sites 也就是你用户目录下面的”站点”目录,如没有Sites目录,需手工创建sudo mkdir ~/...

weixin_42576410的博客 184

【软件】在 macOS 上安装和配置 Apache HTTP 服务器

通过以上步骤,你可以在 macOS 上成功安装和配置 Apache HTTP 服务器。,说明 Apache 未安装。默认情况下,Apache HTTP 服务器监听 80 端口。你可以通过浏览器访问。如果你需要配置 SSL/TLS 来启用 HTTPS,你需要编辑 SSL 配置文件。然后,你需要创建 SSL 证书和密钥,并在配置文件中指定它们的路径。• 确保在修改配置文件后重启 Apache 服务器以应用更改。• 如果你更改了端口号,确保在防火墙设置中打开相应的端口。例如,要更改网站的根目录,你可以编辑。

u011144881的博客 821

心塞的MacOS环境配置(Apache+MySQL+PHP)

我一开始以为brew安装就可以,应该跟CentOS差不多 结果我错了… MacOS环境下自带了Apache 装了两个,看网上那些配置我都一脸懵 sudo /usr/sbin/apachectl start这个是启动自带apache的 配置文件在/etc/apache2/httpd.conf 纠结了好久好久才弄好了 ...

weixin_38179158的博客 193

macos apache php,如何在mac上配置apache和php

在Mac环境下系统本身就带有的Apache(阿帕奇服务器)和PHP都预装好了. 下面我们逐步来操作Apache和PHP的合并:第一步:查看系统预装的阿帕奇和PHP版本(1)打开终端,输入命令:sudo apachectl -version(2)输入命令:sudo php -v第二步:修改Apache配置文件(1) 前往Finder,(一般快捷键为:command+shift+G),输入地址:/pr...

weixin_29062671的博客 569

macOS下Apache+nginx+mysql+php多版本切换的配置

macOS下Apache+nginx+mysql+php多版本切换的配置 1.安装Homebrew 首先我们要先安装homebrew一个能让你很方便下载Apache、nginx、php的小工具 $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 然后输入密码,安装Ho...

weixin_30563319的博客 110

mamp mysql配置_macOS 下配置 MAMP 开发环境(Mac + Apache + Mysql + PHP)

macOS 中已经内置了 PHP、Python、Ruby、Perl 等常用的脚本语言,以及 Apache HTTP 服务器,所以使用起来非常方便。本文以最新的 macOS Sierra 10.12 配置 MAMP 开发环境为例,本文同样适用其它 macOS 版本的配置,macOS Sierra 10.12 中内置的 PHP 版本为 5.6。一、配置ApachemacOS Sierra 已内置 Ap...

weixin_39994461的博客 353

macOS 10.14 Mojave 开发环境配置Apache多PHP版本

第1部分:macOS 10.14 Mojave Web开发环境 在macOS上开发Web应用程序真是一种乐趣。设置开发环境有很多选择,包括广受欢迎的MAMP Pro,它在Apache,PHP和MySQL之上提供了一个很好的UI。但是,有时候MAMP Pro会出现速度减慢或过时的版本,或者由于配置模板和非标准版本的限制性系统而导致行为不佳。 在这些时候,人们经常寻找替代方法,幸运的是...

akypx02026的专栏 368

cpanel重启PHP服务_Mac电脑、MacOS系统 下php、apache、mysql开发环境配置

MacOS的终端与使用linux系统没什么区别,shell命令几乎完全通用,非常适合服务端开发。下面讲解一下MacOS 下php、apache、mysql开发环境配置,目录结构与linux系统下的差不多,有哪些坑需要注意的呢?MacOS自带php与apache,把它开启就行了。第一步:打开终端,sudo su 入进root权限第二步:mv /etc/php.ini.default /etc/php...

weixin_39760065的博客 238
上一篇: Python3 PyQt5 pycharm 环境搭建
下一篇: centos7下安装多线程下载工具axel
THMAIL
博客等级 码龄10年 2434粉丝 432原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值