Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境


Posted in PHP onMarch 03, 2015

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 />

    Options Indexes MultiViews

    AllowOverride All

    Order allow,deny

    Allow from all

</Directory>

这样sites目录就是网站根目录了,代码都往这个下头丢

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应用了吧,每次我都顺道装上。

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

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

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

sudo mkdir /var/mysql

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

RockMongo

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

1.去官网下载最新版本
2.解压到~/Sites/rockmongo下
3.运行http://localhost/rockmongo即可

完成

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

PHP 相关文章推荐
php.ini 中文版
Oct 28 PHP
PHP小技巧搜集,每个PHPer都来露一手
Jan 02 PHP
第五章 php数组操作
Dec 30 PHP
深入apache host的配置详解
Jun 09 PHP
php使用smtp发送支持附件的邮件示例
Apr 13 PHP
PHP贪婪算法解决0-1背包问题实例分析
Mar 23 PHP
PHP实现简单数字分页效果
Jul 26 PHP
php检查页面是否被百度收录
Oct 28 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
Apr 11 PHP
浅析php静态方法与非静态方法的用法区别
May 17 PHP
PHP实现数据库的增删查改功能及完整代码
Apr 18 PHP
PHP用swoole+websocket和redis实现web一对一聊天
Nov 05 PHP
laravel容器延迟加载以及auth扩展详解
Mar 02 #PHP
laravel安装zend opcache加速器教程
Mar 02 #PHP
分享一个Laravel好用的Cache宏
Mar 02 #PHP
php解析http获取的json字符串变量总是空白null
Mar 02 #PHP
laravel 5 实现模板主题功能(续)
Mar 02 #PHP
laravel 5 实现模板主题功能
Mar 02 #PHP
Opcache导致php-fpm崩溃nginx返回502
Mar 02 #PHP
You might like
Mysql数据库操作类( 1127版,提供源码下载 )
2010/12/02 PHP
PHP 命名空间实例说明
2011/01/27 PHP
php中常用的预定义变量小结
2012/05/09 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
php使用glob函数遍历文件和目录详解
2016/09/23 PHP
JS 添加网页桌面快捷方式的代码详细整理
2012/12/27 Javascript
JS动态获取当前时间,并写到特定的区域
2013/05/03 Javascript
jquery入门必备的基本认识及实例(整理)
2013/06/24 Javascript
jquery加载图片时以淡入方式显示的方法
2015/01/14 Javascript
Javascript实现颜色rgb与16进制转换的方法
2015/04/18 Javascript
基于javascript实现表格的简单操作
2016/05/21 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
Angular.js中上传指令ng-upload的基本使用教程
2017/07/30 Javascript
js闭包学习心得总结
2018/04/17 Javascript
vue-socket.io跨域问题有效解决方法
2020/02/11 Javascript
[04:45]DOTA2上海特级锦标赛主赛事第四日RECAP
2016/03/06 DOTA
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
[48:37]EG vs OG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
python制作websocket服务器实例分享
2016/11/20 Python
python3写爬取B站视频弹幕功能
2017/12/22 Python
python字符串格式化方式解析
2019/10/19 Python
TensorFlow基本的常量、变量和运算操作详解
2020/02/03 Python
Selenium自动化测试工具使用方法汇总
2020/06/12 Python
瑞典的玛丽小姐:Miss Mary of Sweden
2019/02/13 全球购物
英国最大的在线亚洲杂货店:Red Rickshaw
2020/03/22 全球购物
西部世纪.net笔试题面试题
2014/04/03 面试题
一些Unix笔试题和面试题
2012/09/25 面试题
海量信息软件测试笔试题
2015/08/08 面试题
自荐信模版
2013/10/24 职场文书
网吧消防安全制度
2014/01/28 职场文书
房地产开盘策划方案
2014/02/10 职场文书
北京奥运会口号
2014/06/21 职场文书
2015重阳节座谈会主持词
2015/07/30 职场文书
2019年入党思想汇报
2019/03/25 职场文书