mac安装php+nginx+mysql环境

mac安装php+nginx+mysql环境

安装iTerm2终端:iTerm2官网,后面的命令都用该终端来输入执行,当然你喜欢用别的其他的终端也可以。

安装macOS包管理软件:Mac安装Homebrew并更换国内镜像源

安装php

使用brew安装php

brew install php

启动|停止|重启php

brew services start|stop|restart php

比如我要启动php,则运行以下命令(停止和重启同理):

brew services start php

查找php配置文件位置:

brew info php | grep -A 1 php.ini

安装php包管理工具composer

brew install composer

使用pecl安装扩展

pecl是php的扩展管理工具,新版php已经自带pecl(7.2/7.3都自带了,7.1我不确定),如果你的php没有pecl,可以使用这个方法安装:Mac Homebrew1.5以后安装php扩展的方法

先查询有没有这个扩展

pecl search 扩展名

再安装扩展

pecl install 扩展名

安装mysql

使用brew安装mysql:

brew install mysql

启动|停止|重启mysql:

brew services start|stop|restart mysql

比如我要启动mysql,则运行以下命令(停止和重启同理):

brew services start mysql

注意启动时如果弹出提示问你是否允许mysql授受传入网络连接,点允许即可。

mysql配置文件在:

/usr/local/etc/my.cnf

安装nginx

使用brew安装nginx:

brew install nginx

或者如果你想安装openresty(支持lua扩展的nginx):

brew install openresty/brew/openresty

启动|停止|重启nginx(注意因为nginx要设置运行用户和组,需要使用sudo运行,否则显示启动成功实际上没启动,错误日志里会有报错):

sudo brew services start|stop|restart nginx

比如我要启动nginx,则运行以下命令(停止和重启同理):

sudo brew services start nginx

openresty也是一样(实际上启动的也是nginx):

sudo brew services start|stop|restart openresty

注意启动时如果弹出提示问你是否允许nginx授受传入网络连接,点允许即可。

nginx配置文件在:

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

如果是openresty,则配置文件在:

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

为什么openresty的配置文件也是nginx.conf呢?因为说白了,openresty也是nginx,只不过支持使用lua(一种编程语言)扩展而已。

启动nginx后访问http://localhost:8080,如果看到下图所示的页面,表示运行正常:

Xnip2018-12-29_12-01-44.png

以上方式启动后php、mysql、nginx后,如果你重启电脑,它们会自动启动,所以你关机再开机,或者你重启电脑,不需要自己去启动了,一般都会自动启动除非出问题了。

检查php、mysql、nginx是否已启动(这里以php为例,其他同理):

ps aux | grep php

如下图所示:

Xnip2018-12-29_11-58-10.png

修改php/nginx的运行用户和组

为防止出现权限问题,请把php-fpm和nginx的启动用户指定为你系统用户名和组。

修改php-fpm运行用户和组

注意php7.2是版本,你要查看你当前是什么版本,不一定是我这个7.2.

vim /usr/local/etc/php/7.2/php-fpm.d/www.conf

找到以下配置(大概在22-23行):

user = _www
group = _www

把它们改成:

user = 你的用户名
group = staff

注意,你的用户名可以执行whoami命令获取,比如我的就是:

Xnip2018-12-29_14-40-40.jpg

最后重启php:

brew services restart php

修改nginx运行用户和组

打开nginx配置文件

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

在它的第一行应该有一个#user nobody;,把它改成:user 你的用户名 staff;,那你的用户名是什么呢?运行whoami即可获取。

Xnip2018-12-29_14-31-34.png

重载nginx配置,先用-t测试配置文件是否正确,如果正确会有ok/successful这样的字样:

sudo nginx -t

Xnip2018-12-29_14-43-02.jpg

然后重载nginx配置(如果不输出任何信息,表示重载成功):

sudo nginx -s reload

注意,以后凡是修改了nginx配置文件,都使用这种方法重载配置。

设置nginx默认配置

默认配置会开启显示目录,这样你少量的测试代码都可以放在这里运行,但如果是一个项目,最后单独设置一个配置文件(其实基本上跟以下配置类似,具体网上查询怎么设置)。

首先你要确定一个目录作为你项目代码的存放目录,我自己是在用户目录下创建一个叫www的目录:

mkdir ~/www

然后进入到nginx配置文件目录:

cd /usr/local/etc/nginx/servers/

用vim创建一个默认配置文件:

vim default

输入以下配置:

#设置一个vhost,属于ngx_http_core_module
server {
    #设置监听端口为80端口
    listen       80 default_server;
    #server_name定义一个虚拟主机名称,当http请求到达nginx监听的80端口时,nginx从http请求的header中的host字段获取到host值,并与server_name等于该host值的server匹配
    server_name  localhost;

    #charset属于ngx_http_charset_module
    charset utf-8;

    #设置访问日志和错误日志路径,属于ngx_http_log_module模
    access_log  /usr/local/var/log/nginx/localhost.access.log;
    error_log   /usr/local/var/log/nginx/localhost.error.log;

    #root指令属于ngx_http_core_module模块,与server、location同级,只是它可以写在server和location里面,当然它也可以写在http下面
    root   /Users/bruce/www;

    #启用目录列表输出(off为禁用,默认为off),属于ngx_http_autoindex_module
    autoindex on;
    #是否显示精确文件大小(单位为Byte),默认为on,如果你要自动按大小四舍五入显示kb/mb/gb,则要设置为off
    autoindex_exact_size off;
    #显示格式,默认为html,另外还可以为xml/json/jsonp
    autoindex_format html;
    #是否显示当地时间(不设置默认off,off则显示UTC时间)
    autoindex_localtime on;

    #根据匹配的URI来指定具体配置,注意该命令属于ngx_http_core_module模块,虽然它写在server里面,但并不隶属于server,它与server命令是同级的
    location / {
        #index指令,属于ngx_http_index_module模块
        #index  index.php index.html index.htm;
        #gzip,属于ngx_http_gzip_module
        gzip on;
        gzip_min_length 1k;
        gzip_buffers 4 16k;
    }

    location ~ \.php$ {
        #fastcgi_pass属于ngx_http_fastcgi_module
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        #include属于core functionality(核心功能),并不属于某个模块
        include fastcgi.conf;
    }
}

注意保证以下几个配置的路径存在,其中root指定的目录为你的代码目录(不要照抄我的):

access_log /usr/local/var/log/nginx/localhost.access.log;
error_log /usr/local/var/log/nginx/localhost.error.log;
root   /Users/Bruce/www;

保存,然后重载nginx配置,然后在你的代码目录创建一个index.php文件,放输入代码:

<?php
    phpinfo();

打开浏览器,访问http://localhost,如果能看到php的配置,说明已经配置成功。

打赏

订阅评论
提醒
guest

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x

扫码在手机查看
iPhone请用自带相机扫
安卓用UC/QQ浏览器扫

mac安装php+nginx+mysql环境