Mac 下用 brew 搭建 LNMP 和 LAMP 开发环境

本贴最后更新于 1946 天前,其中的信息可能已经渤澥桑田

Mac 下用 brew 搭建 LNMP 和 LAMP 开发环境

Mac 下搭建 lamp 开发环境很容易,有 xampp 和 mamp 现成的集成环境。但是集成环境对于经常需要自定义一些配置的开发者来说会非常麻烦,而且 Mac 本身自带 apache 和 php,在 brew 的帮助下非常容易手动搭建,可控性很高

Brew

brew 对于 mac,就像 apt-get 对于 ubuntu,安装软件的好帮手,不能方便更多…

brew 的安装方式如下:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"

brew 常用选项

brew install xxx
brew uninstall xxx
brew list 
brew update xxx

Apache 或 Nginx

两者只需要安装一个

Apache

Apache 的话使用 mac 自带的基本就够了,我的系统是 10.9,可以使用以下命令控制 Apache

sudo apachectl start
sudo apachectl restart
sudo apachectl stop

唯一要改的是主目录,mac 默认在 home 下有个 Sites(站点)目录,访问路径是

http://localhost/~user_name

这样不太容易访问,修改 /etc/apache2/httpd.conf 内容

DocumentRoot /Users/username/Sites
<Directory /Users/username/Sites>
    Options Indexes MultiViews
    # apache 2.2
    # AllowOverride All
    # Order allow,deny
    # Allow from 127.0.0.1

    # apache 2.4
    Require local
</Directory>

这样 Sites 目录就是网站根目录了,通过 http://localhost 就可以访问了。

常用命令

sudo apachectl start # 启动apache
sudo apachectl stop # 关闭apache
sudo apachectl restart # 重启apache

设置 vhost

设置 vhost 可以很方便的进行站点调试,尤其是对于需要在根目录运行的站点。推荐 VirtualHostX.

设置方法是:

sudo vi /etc/apache2/extra/httpd-vhosts.conf

然后输入:

<Directory "/pash/to/site">
    Allow From All
    AllowOverride All
    Options +Indexes
</Directory>
<VirtualHost *:80>
       ServerName "site.test"
       DocumentRoot "/path/to/site"
</VirtualHost>

这么设置会有个问题,默认的 http://localhost 会被转到这儿来,所以专门再设置一下 localhost 的 host 就好了。

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /path/to/root
</VirtualHost>

然后把 host 文件改一下,把刚刚设置的 ServerName 改到本地就好了。

sudo vi /etc/hosts

写入:

127.0.0.1 site.test

Nginx

要使用 Nginx 也比较方便,首先安装

brew install nginx

启动关闭 Nginx 的命令如下(如果想要监听 80 端口,必须以管理员身份运行)

#打开 nginx
sudo nginx
#重新加载配置|重启|停止|退出 nginx
nginx -s reload|reopen|stop|quit
#测试配置是否有语法错误
nginx -t

配置 Nginx

cd /usr/local/etc/nginx/
mkdir conf.d

修改 Nginx 配置文件

vim nginx.conf

主要修改位置是最后的 include

worker_processes  1;  

error_log       /usr/local/var/log/nginx/error.log warn;

pid        /usr/local/var/run/nginx.pid;

events {
    worker_connections  256;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log      /usr/local/var/log/nginx/access.log main;
    port_in_redirect off;
    sendfile        on; 
    keepalive_timeout  65; 

    include /usr/local/etc/nginx/conf.d/*.conf;
}

修改自定义文件

vim ./conf.d/default.conf

增加一个监听端口

server {
    listen       80;
    server_name  localhost;

    root /Users/username/Sites/; # 该项要修改为你准备存放相关网页的路径

    location / { 
        index index.php;
        autoindex on; 
    }   

    #proxy the php scripts to php-fpm  
    location ~ \.php$ {
        include /usr/local/etc/nginx/fastcgi.conf;
        fastcgi_intercept_errors on; 
        fastcgi_pass   127.0.0.1:9000; 
    }   

}

这个时候还不能访问 php 站点,因为还没有开启 php-fpm。

虽然 mac 10.9 自带了 php-fpm,但是由于我们使用了最新的 PHP,PHP 中自带 php-fpm,所以使用 PHP 中的 php-fpm 可以保证版本的一致。

这里的命令在安装完下一步的 php 后再执行

sudo nginx
sudo php-fpm -D

PHP

PHP 在 mac 下默认安装了,但是不好控制版本,利用 brew 可以再 mac 下安装最新版本,甚至是多个版本,我装了 php5.5

brew update
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
# brew install php55 --with-fpm #Nginx
brew install php55 #Apache

然后修改 php 的 cli 路径和 apache 使用的 php 模块。在.bashrc 或.zshrc 里头加以下内容

#export PATH="$(brew --prefix josegonzalez/php/php55)/bin:$PATH" 
export PATH="/usr/local/bin:/usr/local/sbin:$PATH"

就用刚刚安装的 php 代替了系统默认 cli 的 php 版本。然后在 /etc/apache2/httpd.conf 下增加

LoadModule php5_module /usr/local/Cellar/php55/5.5.8/libexec/apache2/libphp5.so

这样就对 apache 使用的 php 版本也进行了修改。

后面会用到 mongo 和 mysql,所以可以直接利用下面命令安装 php 模块,其他模块也类似

#brew install php55-mysql #这个已经不需要再安装了
brew install php55-mongo

MySQL

mac 不自带 mysql,这里需要重新安装,方法依然很简单

brew install mysql
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
sudo chown -R your_user /usr/local/var/mysql/

第一句是安装,后面的是确保正常使用。然后是启动命令

mysql.server start

最好给 mysql 设个密码,方法如下

mysqladmin -u root password 'xxx'

如果想修改 mysql 的配置,在 /usr/local/etc 下建立一个 my.cnf,例如增加 log

[mysqld]
general-log
general_log_file = /usr/local/var/log/mysqld.log

MongoDB

MongoDB 可以说是最简单的一个,直接执行

brew install mongodb

启动方法

mongod --fork

PHPMyAdmin

phpmyadmin 几乎是管理 mysql 最容易的 web 应用了吧,每次我都顺道装上。

  • 官网下载最新的版本
  • 解压到~/Sites/phpmyadmin 下
  • 在 phpmyadmin 目录下创建一个可写的 config 目录
  • 打开 http://localhost/phpmyadmin/setup,安装一个服务,最后保存(这里只需要输入帐号密码就够了)
  • 将 config 下生成的 config.inc.php 移到 phpmyadmin 根目录下
  • 删除 config

这样就装好了,虽然可能有点小复杂,但是来一次就习惯了。

这里很可能会遇到 2002 错误,就是找不到 mysql.sock 的问题,用下面方法解决

sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

RockMongo

RockMongo 是 MongoDB 很好用的一个 web 应用,安装也很容易

  • 官网下载最新版本
  • 解压到~/Sites/rockmongo 下
  • 运行 http://localhost/rockmongo 即可

把 site 放在 Dropbox 文件夹下

ln -s ~/Dropbox/sitename ~/Sites/sitename
chmod a+rw ~/Dropbox
chmod a+rw ~/Dropbox/sitename

完成

这样就在 mac 下配置好一个 php 开发环境了,enjoy it!

  • 工具

    子曰:“工欲善其事,必先利其器。”

    273 引用 • 679 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...