macOS 10.14 Mojave 开发环境配置Apache多PHP版本
第1部分:macOS 10.14 Mojave Web开发环境
在macOS上开发Web应用程序真是一种乐趣。设置开发环境有很多选择,包括广受欢迎的MAMP Pro,它在Apache,PHP和MySQL之上提供了一个很好的UI 。但是,有时候MAMP Pro会出现速度减慢或过时的版本,或者由于配置模板和非标准版本的限制性系统而导致行为不佳。
在这些时候,人们经常寻找替代方法,幸运的是有一种方法,并且设置相对简单。
在这篇博文中,我们将引导您完成Apache 2.4和多个PHP版本的设置和配置。在这篇两篇文章系列的第二篇博文中,我们将介绍MySQL,Apache虚拟主机,APC缓存和Xdebug安装。
[更新时间01/10/2019]更新为从外部弃用桶添加PHP 5.6和PHP 7.0
[已更新12/12/2018]已更新,以反映最新版本的PHP 7.3以及从Brew中删除PHP 7.0。
如果您过去一直遵循本指南 Homebrew/php点击,并希望升级到新的Homebrew/core方法,然后您应该首先按照我们新的升级自制程序清理您当前的安装。
本指南适用于有经验的Web开发人员。如果您是初学者,可以使用MAMP或MAMP Pro更好地服务。
XCode命令行工具
如果您还没有安装XCode,最好先安装命令行工具,因为这些工具将由homebrew使用:
$ xcode-select --install
自制安装
这个过程在很大程度上依赖于名为Homebrew的macOS包管理器。使用brew命令您可以轻松地为您的mac添加强大的功能,但首先我们必须安装它。这是一个简单的过程,但您需要启动终端(/Applications/Utilities/Terminal)申请然后输入:
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
只需按照终端提示操作,然后根据需要输入密码。这可能需要几分钟,但完成后,可以快速确保已安装brew 正确的,只需输入:
$ brew --version
Homebrew 1.7.6
Homebrew/homebrew-core (git revision a1ed; last commit 2018-09-25)
您可能还应运行以下命令以确保正确配置所有内容:
$ brew doctor
如果您需要更正任何内容,它会指示您。
Mojave必需的库
在Mojave上安装新鲜时,我遇到了一些在完成以下所有步骤时丢失的库。为了简化操作,请立即运行:
$ brew install openldap libiconv
Apache安装
最新的macOS 10.14 Mojave预装了Apache 2.4,但是,将此版本与Homebrew一起使用不再是一项简单的任务,因为Apple在此版本中删除了一些必需的脚本。但是,解决方案是通过Homebrew安装Apache 2.4,然后将其配置为在标准端口(80/443)上运行。
如果您已经运行了内置Apache,则需要先关闭它,并删除所有自动加载脚本。按顺序运行所有这些命令真的没有坏处 - 即使它是全新的安装:
$ sudo apachectl stop
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
现在我们需要安装Brew提供的新版本:
$ brew install httpd
如果没有选项,httpd将不需要从源代码构建,因此安装速度非常快。完成后,您应该看到如下消息:
macOS 10.14 Mojave 开发环境配置Apache多PHP版本的更多相关文章
- macOS 10.14 Mojave Apache设置:多个PHP版本
[18/6/2018更新]由于Homebrew/php点击在2018年3月底被弃用,并将所有PHP公式移动到Homebrew/core,我们已经重新设计了我们的指南,使用这个新的水龙头. 如果您过去一 ...
- macOS 10.14 Mojave Apache Setup: Multiple PHP Versions
Part 1: macOS 10.14 Mojave Web Development Environment Developing web applications on macOS is a rea ...
- 最新最全最详细的MacOS 10.14 Mojave黑苹果安装教程
图文教程知乎地址:点击打开链接 视频教程B站地址:点击打开链接 微信公众号 地 址:点击打开链接 准备工作(工具包及镜像在后边) 一个8G以上的U盘(有的U盘标的是8G,实际只有7.X,实际容量小于7 ...
- 【从零学习Python】Ubuntu14.10下Python开发环境配置
1. 前言 近期在研究计算机视觉的一些算法,也刚開始接触linux,试着在ubuntu下用qt+openCV进行开发,感觉还行.可是Python作为在学术领域广为应用的高级解释性语言.其在计算机视觉的 ...
- arcgis android 10.2.5开发环境配置
android里要添加arcgis android 的支持,其实本质是添加了jar包,so库,清单文件里申请了权限而已. 插件是为了方便创建arcgis android工程,然后并没有什么卵用. ar ...
- Android Studio开发环境配置以及相关说明
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这里简单记录下在开发的时候使用的Android Studio开发环境版本以及相关注意事项. 一般来讲,每隔一段时间就要检查下Andr ...
- 在64位的ubuntu 14.04 上开展32位Qt 程序开发环境配置(pro文件中增加 QMAKE_CXXFLAGS += -m32 命令)
为了能中一个系统上开发64或32位C++程序,费了些周折,现在终于能够开始干过了.在此记录此时针对Q5.4版本的32位开发环境配置过程. 1. 下载Qt 5.4 的32位版本,进行安装,安装过程中会发 ...
- windows eclipse直接访问远程linux hadoop开发环境配置(符合实际开发的做法)
CDH 5.x搭建请参考CentOS 7离线安装CDH 5.16.1完全指南(含各种错误处理). 如果使用的是cloudera quickstart vm,则只能在linux服务器中使用eclipse ...
- 基于Eclipse的Hadoop应用开发环境配置
基于Eclipse的Hadoop应用开发环境配置 我的开发环境: 操作系统ubuntu11.10 单机模式 Hadoop版本:hadoop-0.20.1 Eclipse版本:eclipse-java- ...
随机推荐
- BZOJ1014:[JSOI2008]火星人(Splay,hash)
Description 火星人最近研究了一种操作:求一个字串两个后缀的公共前缀.比方说,有这样一个字符串:madamimadam, 我们将这个字符串的各个字符予以标号:序号: 1 2 3 4 5 6 ...
- 通过iframe标签绕过csp
iframe.php代码如下: allow-popups开启时,window.open就可以打开新的窗口. 看csp规则,默认是在当前域内,如果这是一个ctf题的话,就很简单了,window.loca ...
- Git打Tag相关操作
一.打标签 git tag -a 0.1.3 -m “Release version 0.1.3″ 详解: git tag 是命令 -a 0.1.3是增加 名为0.1.3的标签 -m 后面跟着的是标签 ...
- PL/SQL Developer修改窗口字体和大小
工具 → 首选项 → 字体 → 选择, 然后自己调节设置
- NMON监控linux性能
NMON监控linux性能 一.下载nmon压缩包,下载地址:http://download.csdn.net/download/fhqsse220/6699865 二.安装方法: 1.将nmon_l ...
- ssh框架错误:org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role。
在做ssh项目练习的时候出现问题: org.hibernate.LazyInitializationException: failed to lazily initialize a collectio ...
- php生成word文档
使用fopen文件操作函数来做,需要注意的直接生成中文文件名会乱码,(生成word和微软的编码不一样)需要转码生成.word内容保持utf8编码就好. $file_name = iconv(" ...
- javascript之promise
js语言的执行环境是"单线程",即一次只能执行一个任务,如果有多个任务的话,就需要排队,只有前面的一个任务执行结束了,再执行后面的一个任务.于是异步执行就变得非常重要,异步执行之后 ...
- Annotation原理
为什么使用注解: 1.通过注解,可保存源数据在Java源代码中:并且注解不同于注释,注解享有编译期的类型检查保护. 2.可在描述符性质的类或接口中抽取重复性的工作,通过注解来简化与自动化这些工作. 注 ...
- Java并发编程(九)线程间协作(下)
上篇我们讲了使用wait()和notify()使线程间实现合作,这种方式很直接也很灵活,但是使用之前需要获取对象的锁,notify()调用的次数如果小于等待线程的数量就会导致有的线程会一直等待下去.这 ...