verchiel 原创

首先要理解MacOS预装了一些什么功能

对付MacOS sierra,对应的版本号是10.12.xx,也是截止到目前的最新版本的Mac系统。
这个版本,本身就预装有Apache和PHP 5.6,但是对付开拓者而言,这两个东西我们用不到。

自带的Apache,跟之前的mac系统预装的apache不再一样,这个版本的apache是一个纯净的版本,不再像之前一样是一个MOD凑集在一起,利于开拓者开拓的apache带各种扩展包的版本。
以是这个版本如果你想用利用自带的apache去开拓php,是须要一些额外的事情量的,这里我们以Nginx为主。

macossierraphpMacOS sierra体系下面安装PHPMySqlNginx开辟情况 HTML

自带的php版本是5.6,相信对付大多数开拓者而言,现在都会选择php7系列的版本,由于php措辞的开拓版本都是向下兼容的,而且7系列的确比5系列要快,这个是笔者亲自测试过的,以是这里推举装php7系列。

首先的准备事情

我们安装软件的工具,选择在Mac上面大名鼎鼎的Homebrew,这是一个MacOS平台上面的软件包管理器,利用它,我们只须要在命令行工具里面,轻松敲几行代码,就可以实现所有须要软件的安装,很是方便。
下面的代码是怎么安装Homebrew(安装代码可以辞官网上面查找,百度Homebrew即可)。

/usr/bin/ruby -e \"大众$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\"大众给Homebrew新增加个tag库

brew tap homebrew/dupes

brew tap homebrew/versions

brew tap homebrew/php

brew tap josegonzalez/homebrew-php升级一下Homebrew到最新的版本

sudo brew update安装Command Line Tools

xcode-select --install安装MySql

(1)安装mysql

brew install mysql

(2)开启mysql

mysql.server start

(3)实行mysql_secure_installation,初始化mysql配置

mysql_secure_installation

然后你可以用下面的命令进入到mysql当中去进行你须要的操作。

mysql -u root -p安装PHP 7.0

这里我们有两种方法去进行安装,php扩展须要自己选择,这里我这是列举了一些常用的。
当然,我们这里安装的是php 7.0系列的,如果你想安装7.1或者7.2系列,不用我说,看了下面的你也该当知道怎么安装了。

第一种

brew install php70 --with-gmp --with-homebrew-curl --with-homebrew-libressl --with-homebrew-libxml2 --with-homebrew-libxslt --with-imap --with-libmysql --with-mssql

第二种,我推举用这种去进行安装

brew install php70 php70-apcu php70-igbinary php70-opcache php70-mcrypt php70-igbinary php70-imagick

etc目录下面创建一个php.ini的快捷办法,指向你自己的php.ini配置文件(把稳这里只是一个软链接,并不是真正的文件路径)

sudo ln -s /usr/local/etc/php/7.0/php.ini /etc/

根据自己需求配置php.ini文件,别忘了保存

sudo vi /etc/php.ini

由于Mac自带了php和php-fpm,因此须要添加系统环境变量PATH来替代自带PHP版本,我们用的是zsh,以是放进.zshrc中,如果你用的shell是bash,那么可以把下面的信息写入到~/.bash_profile文件中,如果这个文件没有,你自己建一个就行。

(1)用了iterm2命令行的

echo 'export PATH=\"大众$(brew --prefix php70)/bin:$PATH\"大众' >> ~/.zshrc

echo 'export PATH=\公众$(brew --prefix php70)/sbin:$PATH\"大众' >> ~/.zshrc

echo 'export PATH=\公众/usr/local/bin:/usr/local/sbib:$PATH\公众' >> ~/.zshrc

source ~/.zshrc

(2)用原生的命令行的

echo 'export PATH=\"大众$(brew --prefix php70)/bin:$PATH\"大众' >> ~/.bash_profile

echo 'export PATH=\公众$(brew --prefix php70)/sbin:$PATH\"大众' >> ~/.bash_profile

echo 'export PATH=\公众/usr/local/bin:/usr/local/sbib:$PATH\"大众' >> ~/.bash_profile

source ~/.bash_profile

测试效果

php -v

该当显示下面类似的信息

PHP 7.0.12 (cli) (built: Oct 24 2016 00:06:38) Copyright (c) 1997-2016 The PHP Group

在看看php-fpm的

php-fpm -v

该当显示下面类似的信息

PHP 7.0.12 (fpm-fcgi) (built: Oct 24 2016 00:06:45) Copyright (c) 1997-2016 The PHP Group

Mac自带的php, 我以前的项目有些依赖不支持php7,以是这个我是留着的,随时切换利用

/usr/bin/php -v

PHP 5.6.24 (cli) (built: Aug 8 2016 16:58:37)Copyright (c) 1997-2016 The PHP Groupphp-fpm配置文件路径

下面是上面刚刚安装的php-fpm配置文件目录,自己根据须要来进行配置

vi /usr/local/etc/php/7.0/php-fpm.confphp配置文件路

vi /usr/local/etc/php/7.0/php.ini安装Nginx

安装nginx

brew install nginx

开启nginx

sudo nginx

配置nginx.conf

vi /usr/local/etc/nginx/nginx.conf

这里可以参考下面的配置

worker_processes 1;

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

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;

sendfile on;

keepalive_timeout 65;

port_in_redirect off;

include /usr/local/etc/nginx/servers/;

}

设置软连接到/etc目录下面

ln -s /usr/local/etc/nginx /etc/nginx

配置sever block,先新建一个sever block的配置文件,放在nginx下面的server目录

vi /usr/local/etc/nginx/servers/example.conf

下面是一个参考代码:

server {

listen 80;

server_name verchielxy.local;

root /Users/xuyan/Sites/verchielxy/public;

index index.php index.html index.htm;

charset utf-8;

error_page 401 /401.html;

error_page 403 /403.html;

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;

location / {

# laravel 开启

try_files $uri $uri/ /index.php?$query_string;

}

location = /robots.txt { allow all; access_log off; log_not_found off; }

location = /favicon.ico { allow all; access_log off; log_not_found off; }

location ~ \.php$ {

root /Users/xuyan/Sites/verchielxy/public;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi.conf;

include fastcgi_params;

}

location ~ /\.ht {

deny all;

}

}

千万不要忘了重启nginx

nginx -s reload停滞自带的Apache2以及加入系统launchctl

launchctl,可以理解为开机自动启动,以是我们要开机自动启动nginx,mysql以及php-fpm

停滞自带的Apache2

sudo apachectl stop

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null

开机自动启动nginx,mysql以及php-fpm

mysql

cp /usr/local/opt/mysql/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

nginx

mkdir ~/Library/LaunchDaemons/

cp /usr/local/opt/nginx/homebrew.mxcl.nginx.plist ~/Library/LaunchDaemons/

sudo chown root:wheel ~/Library/LaunchDaemons/homebrew.mxcl.nginx.plist

sudo launchctl load ~/Library/LaunchDaemons/homebrew.mxcl.nginx.plist

php70

cp /usr/local/opt/php70/homebrew.mxcl.php70.plist ~/Library/LaunchAgents/

launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php70.plist下面附赠一些常用到的知识。

nginx的配置文件,路径在

/usr/local/etc/nginx/nginx.conf

nginx的日志文件路径在

/usr/local/var/log/nginx

nginx的pid文件,路径在

/usr/local/var/run/

nginx的server文件,路径在

/usr/local/etc/nginx/servers/

以上便是MacOS下面的配置php环境的全部教程,原创不易,这里跟大家分享,如果有缺点和遗漏的地方,欢迎大家示正。