verchiel 原创
首先要理解MacOS预装了一些什么功能对付MacOS sierra,对应的版本号是10.12.xx,也是截止到目前的最新版本的Mac系统。这个版本,本身就预装有Apache和PHP 5.6,但是对付开拓者而言,这两个东西我们用不到。
自带的Apache,跟之前的mac系统预装的apache不再一样,这个版本的apache是一个纯净的版本,不再像之前一样是一个MOD凑集在一起,利于开拓者开拓的apache带各种扩展包的版本。以是这个版本如果你想用利用自带的apache去开拓php,是须要一些额外的事情量的,这里我们以Nginx为主。
自带的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环境的全部教程,原创不易,这里跟大家分享,如果有缺点和遗漏的地方,欢迎大家示正。