第1部分:macOS 10.15 Catalina Web开发环境
在macOS上开发Web应用程序真是令人高兴。有许多设置开发环境的选项,包括广受欢迎的MAMP Pro,它在Apache,PHP和MySQL之上提供了一个不错的UI 。但是,有时MAMP Pro的速度变慢或版本过旧,或者由于配置模板和非标准构建的限制性系统而表现不佳。
在这样的时代,人们经常寻找一种替代方法,幸运的是有一种替代方法,并且设置起来相对简单。
在此博客文章中,我们将引导您完成设置和配置Apache 2.4和多个PHP版本的过程。在这个两篇文章系列的第二篇博客文章中,我们将介绍MySQL,Apache虚拟主机,APC缓存和Xdebug安装。
[ 2019年10月8日更新]已更新以反映macOS 10.15 Catalina的发布[2019年1月10日
更新]已更新以从外部小桶添加回PHP 5.6和PHP 7.0
[2018年12月12日更新]已更新以反映最新版本的PHP 7.3,以及从Brew中删除的PHP 7.0。
如果您过去一直Homebrew/php轻按本指南,并希望升级到新Homebrew/core方法,则应该首先按照我们的新升级Homebrew清理当前安装。
本指南适用于经验丰富的Web开发人员。如果您是新手开发人员,则使用MAMP或MAMP Pro会更好。
XCode命令行工具
如果尚未安装XCode,则最好先安装命令行工具,因为这些将由自制软件使用:
<code>$ xcode-select --install</code>复制
自制安装
此过程在很大程度上依赖于名为Homebrew的macOS软件包管理器。使用该brew命令可以轻松地向Mac添加强大的功能,但是首先我们必须安装它。这是一个简单的过程,但是您需要启动Terminal(/Applications/Utilities/Terminal)应用程序,然后输入:
<code>$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"</code>复制
只需按照终端提示操作,然后在需要的地方输入密码即可。这可能需要几分钟,但是完成后,一种快速的方法来确保已brew正确安装,只需键入:
<code>$ brew --version Homebrew 2.1.13 Homebrew/homebrew-core (git revision 99f8; last commit 2019-10-08)</code>复制
您可能还应该运行以下命令,以确保所有配置均正确:
<code>$ brew doctor</code>复制
它会指导您是否需要更正任何内容。
Catalina必需的库
在Catalina上全新安装时,在遇到以下所有步骤时,我遇到了一些缺少的库。为了使事情变得容易,请立即运行以下命令:
<code>$ brew install openldap libiconv</code>复制
Apache安装
最新的macOS 10.15 Catalina预先安装了Apache 2.4,但是,将此版本与Homebrew一起使用不再是一项简单的任务,因为Apple已在此发行版中删除了一些必需的脚本。但是,解决方案是通过Homebrew安装Apache 2.4,然后将其配置为在标准端口(80/443)上运行。
如果您已经在运行内置的Apache,则需要先将其关闭,并删除所有自动加载脚本。只需按顺序运行所有这些命令,实际上并没有什么害处-即使是全新安装:
<code>$ sudo apachectl stop $ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null</code>复制
现在,我们需要安装Brew提供的新版本:
<code>$ brew install httpd</code>复制
<code><div>
<ins class="adsbygoogle"
style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-6297881353008806"
data-ad-slot="7083179606"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script> </div>
<p><strong>标签:</strong><a href="/tags-macOS-0.html" target="_blank">macOS</a>,<a href="/tags-Catalina-0.html" target="_blank">Catalina</a>,<a href="/tags-%E5%A4%8D%E5%88%B6-0.html" target="_blank">复制</a>,<a href="/tags-usr-0.html" target="_blank">usr</a>,<a href="/tags-Apache-0.html" target="_blank">Apache</a>,<a href="/tags-PHP-0.html" target="_blank">PHP</a>,<a href="/tags-local-0.html" target="_blank">local</a>,<a href="/tags-php-0.html" target="_blank">php</a> </br>
来源: https://www.cnblogs.com/ihuangjianxin/p/11773770.html
</p>
</div>
<div>
<div>
</div>
<div>
</div>
</div>
</div>
<div>
<ul>
<li class="sb_list">
<div>
<!-- 123 -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-6297881353008806"
data-ad-slot="1061832590"
data-ad-format="auto"
data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div></li>
<li class="sb_list"> </li>
<li class="sb_list">
<div><div>
<!-- 456 -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-6297881353008806"
data-ad-slot="4979120200"
data-ad-format="auto"
data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div></div></li>
<li class="sb_list">
<div>
<script src="/js/mid.js"></script>
</div></li>
</ul>
<ul id="crf1">
<li class="sb_list">
<div>
</div></li>
<li class="sb_list">
<div>
</div></li>
</ul>
</div>
</div>
</div>
<div>
<div>
<div>
<a href="/about.html" target="_blank"><strong>关于我们</strong></a>
<span class="v">|</span>
<a href="/contactus.html" target="_blank"><strong>联系我们</strong></a>
<span class="v">|</span>
<a href="/" target="_blank"><strong>留言反馈</strong></a>
</div>
<div>
<p>专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]</p>
<p>Copyright (C)<a href="/" target="_blank">ICode9.com</a>, All Rights Reserved.</p>
<p><a href="/" target="_blank">ICode9</a>版权所有</p>
</div>
</div>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?55fe9c2619b337dd6c48f295325d1425";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</div>
<div>
</div>
<script src="/js/xiong.js"></script>
</body>
</html></code>
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!