macOS本地开发环境全攻略 Part-1:Apache
xcode-select --install
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew --version
Homebrew 2.2.15 Homebrew/homebrew-core (git revision 50345f; last commit 2020-05-07)
brew doctor
brew install openldap libiconv
最新的 macOS 10.15 Catalina 系统预装了 Apache 2.4.42。
苹果这个预装的 Apache 版本,移除了不少常用的软件和脚本,填上这个坑可不是件容易的事儿。
最好的选择是停用它。
sudo apachectl stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
brew install httpd
sudo brew services start httpd
http://localhost:8080
It works!
sudo apachectl start
sudo apachectl stop
sudo apachectl restart
sudo apachectl -k restart
ps -aef | grep httpd
tail -f /usr/local/var/log/httpd/error_log
/usr/local/etc/httpd/httpd.conf
将 VS Code 设置为可以从命令行启动。
输入“shell",
选择”Shell 命令:在 PATH 中安装“code”命令。
code /usr/local/etc/httpd/httpd.conf
找到:
Listen 8080
修改为:
Listen 80
找到:
DocumentRoot "/usr/local/var/www"
修改为:
DocumentRoot "/Users/yourName/pathToDir"
yourName: 你的用户名
pathToDir:要修改的文件路径
找到:
DocumentRoot /usr/local/var/www
修改为:
DocumentRoot /Users/yourName/pathToDir
找到:
#LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
修改为:
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
找到:
AllowOverride None
修改为:
AllowOverride All
找到:
User _www
Group _www
修改为:
User yourName
Group staff
找到:
#ServerName www.example.com:8080
修改为:
ServerName localhost
/usr/local/etc/httpd/httpd.conf
文件。建立网站根目录文件夹
mkdir -P /Users/yourName/pathToDir
创建测试用的 index.html
echo "<h1>It also works!!</h1>" > /Users/yourName/pathToDir/index.html
sudo apachectl -k restart
It also works!!
code /usr/local/etc/httpd/httpd.conf
找到:
#LoadModule vhost_alias_module lib/httpd/modules/mod_vhost_alias.so
修改为
LoadModule vhost_alias_module lib/httpd/modules/mod_vhost_alias.so
找到:
# Virtual hosts
#Include /usr/local/etc/httpd/extra/httpd-vhosts.conf
修改为:
# Virtual hosts
Include /usr/local/etc/httpd/extra/httpd-vhosts.conf
code /usr/local/etc/httpd/extra/httpd-vhosts.conf
找到:
<VirtualHost *:8080>
………
DocumentRoot "/usr/local/opt/httpd/docs/dummy-host.example.com"
ServerName dummy-host.example.com
………
</VirtualHost>
<VirtualHost *:8080>
………
DocumentRoot "/usr/local/opt/httpd/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
………
</VirtualHost>
修改为:
<VirtualHost *:80>
DocumentRoot "/Users/yourName/pathToDir/redSite"
ServerName localhost.dev
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Users/yourName/pathToDir/blueSite"
ServerName localadmin.dev
</VirtualHost>
/usr/local/etc/httpd/extra/httpd-vhosts.conf
文件echo "<h1>Welcome to redSite!</h1>" > /Users/yourName/pathToDir/redSite/index.html
echo "<h1>Welcome to blueSite!</h1>" > /Users/yourName/pathToDir/blueSite/index.html
sudo apachectl -k restart
Welcome to redSite!
Welcome to blueSite!
注意:这里可能会访问失败,因为我们还没有配置本地的域名解析。接下来马上搞。
brew install dnsmasq
*.dev
域名echo 'address=/.dev/127.0.0.1' > /usr/local/etc/dnsmasq.conf
*.dev
域名解析规则sudo mkdir -v /etc/resolver
sudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolver/test'
*.dev
域名解析ping youcanuse.dev
PING youcanuse.dev (127.0.0.1): 56 data bytes 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.019 ms 64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.042 ms 64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.032 ms
打开浏览器,
Welcome to redSite!
Welcome to blueSite!
这个*.dev` 域名就完全在本地自由使用了。当然完全可以自定义成任何你想要的域名(只在本机有效)。
下一篇,我们继续配置SSL PHP,MySQL, APC caching, YAML, and Xdebug等
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。