Mac下用brew搭建PHP(LNMP/LAMP)開發環境

Mac下用brew搭建PHP(LNMP/LAMP)開發環境

Mac下搭建lamp開發環境很容易,有xampp和mamp現成的集成環境。可是集成環境對於常常須要自定義一些配置的開發者來講會很是麻煩,並且Mac自己自帶apache和php,在brew的幫助下很是容易手動搭建,可控性很高php

Brew

brew對於mac,就像apt-get對於ubuntu,安裝軟件的好幫手,不能方便更多…html

brew的安裝方式以下:mysql

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

brew經常使用選項nginx

brew install xxx
brew uninstall xxx
brew list 
brew update xxx

Apache || Nginx (只須要裝一個)

Apache

Apache的話使用mac自帶的基本就夠了,個人系統是10.9,可使用如下命令控制Apachegit

sudo apachectl start
sudo apachectl restart
sudo apachectl stop

惟一要改的是主目錄,mac默認在home下有個Sites(站點)目錄,訪問路徑是github

http://localhost/~user_name

這樣不太容易訪問,修改/etc/apache2/httpd.conf內容web

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就能夠訪問了。sql

經常使用命令

sudo apachectl start # 啓動apache
sudo apachectl stop # 關閉apache
sudo apachectl restart # 重啓apache

設置vhost

設置vhost能夠很方便的進行站點調試,尤爲是對於須要在根目錄運行的站點。推薦 VirtualHostX.mongodb

設置方法是:apache

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!

參考

  1. Hot to install nginx, PHP-fpm 5.5.6, mongo and MySql on mac with homebrew
  2. Mac OSX 10.9搭建nginx+mysql+php-fpm環境

原文地址:http://yansu.org/2013/12/11/lamp-in-mac.html

相關文章
相關標籤/搜索