文档章节

Mac OS X 10.9配置AMP环境

卢林
 卢林
发布于 2016/09/22 11:34
字数 2304
阅读 14
收藏 0

2015年5月9日更新

更新内容:针对Mac OS X 10.10.3不能访问用户目录

http://localhost/~lulin

检查Apache版本是否升级

Server version: Apache/2.4.10 (Unix)
Server built:   Jan  8 2015 20:48:33

修改的地方有以下 3 点:

(1)/etc/apache2/httpd.conf

打开如下配置(去除#注释)

LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
# 这两项是重点检查对象
LoadModule userdir_module libexec/apache2/mod_userdir.so
Include /private/etc/apache2/extra/httpd-userdir.conf

修改完后访问会出现,所以还需要修改(2)中的文件

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

(2)/etc/apache2/extra/httpd-userdir.conf

打开如下配置(去除#注释)

Include /private/etc/apache2/users/*.conf

(3)修改之前 10.9 中 /etc/apache2/users/<youusername>.conf

<Directory "/Users/lulin/Sites/">
	Options Indexes MultiViews
	AllowOverride None
	Require all granted
</Directory>

前言

因为每次重新安装系统都需要配置一下Apache、MySQL、PHP的环境,网上的文章又不完整或者不完全符合自己的情况,所以写下一篇文章来记录一下,保证99%配置成功,还剩1%由于各种奇葩环境原因。。。主要从 6 个方面进行记录:

  1. 启动Apache
  2. 建立个人的网站目录
  3. 启动php的解析功能
  4. 安装、启动mysql
  5. 修改mysql root密码
  6. 使用客户端连接mysql

一、启动Apache

查看Apache的版本信息:

$ httpd -v

Server version: Apache/2.2.26 (Unix)
Server built:   Dec 10 2013 22:09:38

启动Apache

$ sudo apachectl restart

如果终端中显示:

org.apache.httpd: Already loaded

就表示已经启动过了,可以使用重启命令:

$ sudo apachectl restart

这样我们的准备工作就做完了,第一步不要太复杂,不然配置会混乱,不太好还原之前的状态。接下来访问:

http://localhost

如果出现如下图情况,就表示一切顺利,我们再接下去配置,如果没有成功,其实就不推荐再折腾啦,重装系统是最快的解决方案。。。

<!-- more -->

It works!

接下来我们来看看为什么吧。

  • Apache默认的网站目录:/Library/WebServer/Documents
  • 默认访问的文件:/Library/WebServer/Documents/index.html.en

好吧,这样就很好理解了,我们不需要看Apache的配置文件,这样只会让配置变得复杂。

当然,配置好啦之后,我们就应该了解为什么是这个目录,现在可以使用快捷键(shift+command+G)打开对应目录(有界面还是尽量使用可视化操作,会让你更加专注的学习正在配置的东西):

/etc/apache2

你会发现有一个:httpd.conf 文件,这个文件里面就配置了默认的网站目录,你可以使用sublime text等编辑器(使用编辑器可以更好的处理权限等问题)查找“/Library/WebServer/Documents”,一看就明白了。

OK,现在上面的入门配置好啦,接下来就需要在/Users/<yourname>下配置自己的网站目录,你可能要问为什么,首先,使用默认的目录不是程序员的范,其次就是那个目录的权限太高,每次修改内容都需要使用sudo权限,不太方便。

二、建立个人的网站目录

首先,需要在你的个人目录下面创建一个Sites目录(为什么叫这个名字呢?可以google一下,是有故事的,这里就不多描述了,单纯的先把成果搞出来),网上教使用:

$ mkdir Sites

这种方式来创建目录,这里必须要说一下,既然你用的Mac OS X可视化系统,需要这么复杂吗?右键,新建文件夹,就OK。

接下来我们就需要修改一些配置了:

  • 搞一个自己的配置文件,放入:/etc/apache2/users,比如我的配置
/etc/apache2/users/lulin.conf
  • 提升你对该配置文件的权限,这个用终端瞬间秒杀
$ sudo chmod 755 /etc/apache2/users/lulin.conf
//验证一下修改正确没有,首先验证lulin.conf文件,其次验证/etc/apache2/users这个目录的权限,不然遇到蛋疼的时候没头绪
$ cd /etc/apache2/users && ls -la
$ cd .. && ls -la

显示如下图情况就表示没问题了:

验证权限

最后需要配置一下"/etc/apache2/users/lulin.conf"这个conf文件,使用sublime text打开加入内容如下:

<Directory "/Users/lulin/Sites/">
	Options Indexes MultiViews
	AllowOverride All
	Order allow,deny
	Allow from all
</Directory>

改了配置嘛,不管怎么,要我们的环境保证是修改后的结果,就重启一下Apache吧。

$ sudo apachectl restart

输入访问地址:

http://localhost/~lulin/

如果出现权限问题,那么可以查看一下“/etc/apache2/users/lulin.conf”这里的文件权限是否正确。

个人网站目录

这样个人的自定义目录也搞定了,接下我们如果想访问php文件的话就还需要一点简单配置,不然的话php文件会被当做普通文本来解析,离成功不远啦。

三、启动php的解析功能

使用快捷键直接定位到配置文件:

/etc/apache2/httpd.conf

打开后只需要去除一句话的注释即可搞定,使用编辑器来搜索吧,so easy!(去除前面的#号即可,这就是conf的特性而已)

LoadModule php5_module libexec/apache2/libphp5.so

接下来老规矩,保证不踩坑,重启一下Apache。

$ sudo apachectl restart

写一个简单的php文件测试一下配置结果,这次我们把php文件建在我们个人的网站目录"/Users/lulin/Sites"吧。

  • 新建一个 index.php 页面,Apache会默认解析index.php
  • 敲入简单代码,别偷懒,敲完整哦,不然万一你的某个配置没开就踩坑里了:
<?php
	echo phpinfo();
?>

PHP经典页面

显示下面经典测试php的页面,即OK。

四、安装、启动mysql

安装去官网下载一份就行,我这里下载的版本是:mysql-5.6.21-osx10.9-x86_64.dmg

建立下载dmg文件,安装方便,会默认建立软连接等东西。

安装完后,我们先找到安装的mysql,这样方便以后配置,简单的查看目录就在:

//软连接
/usr/local/mysql
//真实目录
/usr/local/mysql-5.6.21-osx10.8-x86_64

安装的详情可以查看官方说明,我找了很多资料发现还是官方比较直观。

MySQL安装官网

不过官网更新不是特别快,其中的安装默认启动项已经在我安装的版本不需要自己搞了,已经有了,可以查看【系统偏好设置查看】,安装MySQL后默认是关闭的,我们也进去启动一下。

入口

MySQL启动配置

现在依然在终端输入:mysql 命令还不能识别到命令,我们需要配置环境变量,这个在终端下面好弄一点,我们就采用命令的方式修改:

$ sudo vim ~/.bash_profile

在.bash_profile文件中加入MySQL的可执行目录:

export PATH="/usr/local/mysql/bin:$PATH"

最后刷新一下配置:

$ source ~/.bash_profile

接下来我们就可以在终端之间输入:mysql 命令就能够以非root用户登录了。

现在MySQL环境搭建完成,要正常使用我们需要配置root用户,默认root用户的密码是空值,实际使用肯定需要修改一下。

五、修改mysql root密码

网上介绍了很多方法,我觉得最直接,最快速的方法是使用空密码,以root用户的身份登录进入MySQL控制台,然后再去更新密码即可。

$ mysql -u root -p
$ 直接回车登录
//下面模拟MySQL控制台
//因为是在MySQL下,所以SQL关键字采用小写更方便,如果你是Oracle的话还是推荐都是用大写
mysql > show databases; //看一下所有数据是否齐全
		> use mysql; //切换到mysql库
		> update user set password=password('lulin') where user='root';
		> flush privileges; //一定要记住刷新权限,不然修改密码不生效
		> exit; //退出,使用修改后的密码重新登录,确定是否修改成功

现在MySQL的配置基本上结束了,更多的配置可以配置my.cnf,在windows下是my.ini,都是其他文件重命名的,这个可以google查阅到详细配置。

六、使用客户端连接mysql

上面的配置结束啦,我们不可能每次都在MySQL控制台搞吧,效率太low,这里我介绍几个客户端:

  • Mac OS X平台

Querious

这个使用过一段时间,需要收费,不太好破解官方出的最新版本,不过还挺好用,这里我就不用了,找个免费的用用。

Sequel Pro

下载地址:http://www.sequelpro.com/download

可能被墙访问有点慢,我就将最新版放入了360云盘,大家可以去下。

云盘地址:http://yunpan.cn/cA5FY26fdqTsm (提取码:b343)

使用就so easy啦,Sequel Pro 配置如下图:

Sequel Pro 连接MySQL

记得把常用连接加入收藏就行,不然每次都要输来输去,Host建立使用127.0.0.1,原因可以google,不过Querious之前我用的时候输入localhost会默认转换成127.0.0.1,还比较人性化。

  • Windows平台

只推荐一款利器,用过很多,没有之一,就它最好用:

navicat for mysql

这个客户端是收费的,不过如果你使用的时8.0版本,在baidu搜索:

navicat for mysql 注册码

关键字,第一个搜索结果里面就有注册码。

© 著作权归作者所有

卢林
粉丝 29
博文 17
码字总数 30812
作品 0
成都
程序员
私信 提问
在Mac OS X 10.9上编译安装nginx

在Mac OS X 10.9上编译安装nginx 很早就听闻nginx的大名,轻量级高并发的特性一直吸引着我,但一直没有时间顾及,最近由于各种原因,准备学习一下nginx这个神器。好的,让我们进入正题。今天...

ihaolin
2014/04/08
0
3
Mac OS X 安装Golang

1.确保Mac OS X 安装了Git,Hg,在Mac OS X 10.8+下面安装Xcode CommandLine Tools就可以了,10.9以上安装Xcode就包含了Git工具,hg请安装SourceTree,这个Git GUI工具包含了Mercurial工具 2....

平安武汉
2014/12/04
2.7K
1
苹果全新 Mac OS X“小牛”降临:三大新特性

在今天的WWDC 2013发布会上,除了iOS 7,苹果还正式推出了全新的桌面系统——Mac OS X 10.9。 全新的Mac OS X 10.9系统放弃了长期以往使用的猫科动物的命名方式(美洲豹、山狮...),而重新命...

oschina
2013/06/11
1K
6
Python 3.3.4 正式版发布

Python 3.3.4 正式版发布,此版本主要包括了 Python 3.3.3 版本的 一些安全补丁和其他方面的 bug 修复 。这个版本完全支持 OS X 10.9 Mavericks。值得关注的是此版本修复了之前版本在 OS X 1...

oschina
2014/02/11
4.1K
13
超简单的linux下virtualbox4.3.26安装配置黑苹果 OSX 10.9的办法

为了在虚拟机上装个osx,前前后后折腾了7天,终于搞定了。 发现虚拟机装osx有个最大的好处是,可以直接下载别人现成的虚拟机镜像,我就是在屡屡失败后,下载了个vdi镜像了事,虽然比较偷懒,...

jim19770812
2015/04/08
0
10

没有更多内容

加载失败,请刷新页面

加载更多

“旧城改造”的背后——银泰新零售阿里云解决方案(上)

相关免费课程《银泰新零售上云解决方案精讲》上线中 立足实战 讲透经典案例 助你快速理解新零售 第一节学习地址 第二节学习地址 传统线下商业体上云的案例 与其说银泰上云,倒不如说银泰“旧...

阿里云官方博客
24分钟前
2
0
记一次升级Oracle驱动引发的死锁

问题描述 近期项目需要从虚拟机环境迁移到容器环境,其中有一个项目在迁移到容器环境之后的两天之内出现了2次“死锁(deadlock)”的问题,部分关键日志如下: Found one Java-level deadlock:...

ksfzhaohui
25分钟前
13
0
MySQL 中的 information_schema 数据库

欢迎查看原文 - 本博客仅记录 https://blog.csdn.net/kikajack/article/details/80065753 -- 是否开启bin_log日志: off为关闭-- show variables like 'log_%'; show variables like '......

莫库什勒
33分钟前
1
0
Random在高并发下的缺陷以及JUC对其的优化

Random可以说是每个开发都知道,而且都用的很6的类,如果你说,你没有用过Random,也不知道Random是什么鬼,那么你也不会来到这个技术类型的社区,也看不到我的博客了。但并不是每个人都知道...

编程SHA
38分钟前
2
0
T5大牛带你解析:如何实现分布式技术

1.分布式事务 2. 分布式锁 Java 原生 API 虽然有并发锁,但并没有提供分布式锁的能力,所以针对分布式场景中的锁需要解决的方案。 分布式锁的解决方案大致有以下几种: 基于数据库实现 基于缓...

李红欧巴
50分钟前
35
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部