首先要了解 MacOS 预装了一些什么功能
对于 Mac OS 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 "
给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 Group
php-fpm配置文件路径
下面是上面刚刚安装的php-fpm配置文件目录,自己根据需要来进行配置
vi /usr/local/etc/php/7.0/php-fpm.conf
php配置文件路
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环境的全部教程,原创不易,这里跟大家分享,如果有错误和遗漏的地方,欢迎大家指正。
相关文章
本站已关闭游客评论,请登录或者注册后再评论吧~