MAC系统安装配置LNMP+TP6

6 篇文章 0 订阅
2 篇文章 0 订阅
一. 安装Homebrew

Homebrew是一款Mac系统下的软件包管理工具,brew命令类似CentOS上的yum,能十分方便的在Mac上安装或卸载软件

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

若安装报错, 运行下面自动脚本(已经全部替换为国内地址):

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

根据提示一步步操作

# 查看版本
local brew -v
Homebrew 2.2.17-105-g1aee867-dirty
Homebrew/homebrew-core (git revision cc21f; last commit 2020-05-25)
Homebrew/homebrew-cask (git revision 84a57; last commit 2020-05-25)
二. 安装PHP
brew install php

通过brew安装后位置: /usr/local/Cellar

cd /usr/local/Cellar
# 查看版本
cd php/7.4.6
bin/php -v
PHP 7.4.6 (cli) (built: May 14 2020 10:39:21) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.6, Copyright (c), by Zend Technologies

切换MAC系统下的PHP版本

  1. 确认当前系统的php版本
which php
# 如果你没有更改过系统默认的php路径,输出的结果应该类似于
/usr/bin/php
# 版本
php -v
PHP 7.1.19 (cli) (built: Aug 17 2018 18:03:17) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
  1. 更改版本
# 确认需要切换的PHP版本路径, 按照上面brew安装的PHP路径为
/usr/local/Cellar/php/7.4.6/bin
  1. 编辑文件
vim ~/.bash_profile
# 添加
export PATH=/usr/local/Cellar/php/7.4.6/bin:$PATH
# 保存退出
  1. 重载配置
source ~/.bash_profile
  1. 查看PHP版本是否切换
which php
# 版本
php -v
PHP 7.4.6 (cli) (built: May 14 2020 10:39:21) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.6, Copyright (c), by Zend Technologies

php-fpm加入开机启动项
通过brew安装的php-fpm

# 安装路径
/usr/local/Cellar/php/7.4.6/sbin/php-fpm
# 配置文件
cd /usr/local/etc/php/7.4
# 编辑
vim php-fpm.conf
...
daemonize = yes
...

加入启动项

# 编辑
vim ~/Library/LaunchAgents/org.php.php-fpm.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>php-fpm</string>
    <key>Program</key>
    <string>/usr/local/Cellar/php/7.4.6/sbin/php-fpm</string>
    <key>KeepAlive</key><true/>
</dict>
</plist>

保存退出后, 执行以下名命令

sudo chown root:owner ~/Library/LaunchAgents/org.php.php-fpm.plist
sudo chmod +x ~/Library/LaunchAgents/org.php.php-fpm.plist
sudo launchctl load -w ~/Library/LaunchAgents/org.php.php-fpm.plist

执行完以上命令,可以用这个调试命令,来看看是否加载了启动项

launchctl list | grep php

输出:

586 	0	com.apple.xpc.launchd.oneshot.0x10000003.phpstorm

中间的数字是状态码,如果是0说明已经成功了,这时服务已经启动了

三. 安装Mysql
brew install mysql
# 安装路径为 /usr/local/Cellar
cd /usr/local/Cellar/mysql
8.0.19_1
# 开启服务
cd 8.0.19_1
/bin/mysqld
# 进入MySQL, 默认密码为空, 直接进入
/bin/mysql -u root -p

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 38
Server version: 8.0.19 Homebrew

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

用Navicat链接MySQL时, 出现 Authentication plugin ‘caching_sha2_password’ cannot be loaded
出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password, 而在mysql8之后,加密规则是caching_sha2_password
解决问题方法是把mysql用户登录密码加密规则还原成mysql_native_password.

  1. 登陆MySQL
  2. 修改账户密码加密规则并更新用户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your password';   
  1. 刷新权限并重置密码
FLUSH PRIVILEGES; 

Navicat远程登录报错Host is not allowed to connect to this MySQL server

  1. 登录MySQL mysql -u root -p密码
  2. 执行use mysql
  3. 执行update user set host = ‘%’ where user = ‘root’;这一句执行完可能会报错,不用管它
  4. 执行FLUSH PRIVILEGES

设置mysql开机自启动

  1. 编辑一个mysql启动文件
sudo vim /Library/LaunchDaemons/com.mysql.mysql.plist
  1. 输入启动文件内容
<?xml version="1.0" encoding="UTF-8"?>    
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">    
<plist version="1.0">    
  <dict>    
    <key>KeepAlive</key>    
    <true/>    
    <key>Label</key>    
    <string>com.mysql.mysqld</string>    
    <key>ProgramArguments</key>    
    <array>    
    <string>/usr/local/Cellar/mysql/8.0.19/bin/mysqld_safe</string>    
    <string>--user=root</string>    
    </array>      
  </dict>    
</plist>

上面xml中的 /usr/local/Cellar/mysql/8.0.19/bin/mysqld_safe 为我的mysql所在目录

  1. 加载这个启动文件
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
  1. 查看启动情况
ps -aef | grep mysql
四. 安装Nginx
brew install nginx

通过brew安装后位置: /usr/local/Cellar

# 进入
cd /usr/local/Cellar/nginx/1.17.10
# 启动 默认端口8080
nginx
# 重启
nginx -s reload
# 停止
nginx -s stop
# 检验

在浏览器中输入 127.0.0.1:8080
在这里插入图片描述
或者终端里输入

curl 127.0.0.1:8080

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

设置Nginx开机自启动

# 1
mkdir -p ~/Library/LaunchAgents
# 2
cp /usr/local/Cellar/nginx/1.17.10/homebrew.mxcl.nginx.plist ~/Library/LaunchAgents/
# 3
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
# 4
sudo chown root:wheel /usr/local/Cellar/nginx/1.17.10/bin/nginx
# 5
sudo chmod u+s /usr/local/Cellar/nginx/1.17.10/bin/nginx
五. 配置文件

通过brew安装, 配置文件位置为: /usr/local/etc

cd /usr/local/etc
# 查看
ls

ODBCDataSources             httpd                       nginx                       openssl                     redis-sentinel.conf
bash_completion.d           locales.conf                odbc.ini                    openssl@1.1                 redis-sentinel.conf.default
freetds.conf                my.cnf                      odbcinst.ini                php                         redis.conf
gitconfig                   my.cnf.default              openldap                    pool.conf                   redis.conf.default

# 数据库配置文件
my.cnf
# nginx配置文件
ngin/
# php配置文件
php/
  1. 查看php-fpm端口
# 进入
cd /usr/local/etc/php/7.4/php-fpm.d
# 查看
vim vim www.conf
# 绑定端口
...
listen = 127.0.0.1:9000
...
  1. Nginx配置文件
# 编辑
vim /usr/local/etc/nginx/nginx.conf
# 日志打开
....
http {
	...
    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  logs/access.log  main;
    ...
}
# 在文件http包体末尾添加
include wang/*;

新建wang文件夹, 用来管理项目配置

# 新建
mkdir wang
# 进入
cd wang
# 新建当前项目配置文件
vim wang.com.conf
# 编辑
server {
        listen       8081;
        server_name  wang.com;

        #charset koi8-r;

        access_log  logs/wang.com.access.log  main;
		error_log logs/wang.com.error.log;
        location / {
            root   /Users/laowang/PhpstormProjects/tp6/public;
            index  index.html index.htm index.php;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            root           /Users/laowang/PhpstormProjects/tp6/public;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

使用域名访问时, 要将该域名绑定到本机

sudo vim /etc/hosts
...
127.0.0.1       wang.com
...

修改配置后重新加载Nginx

sudo nginx -s reload

至此, Nginx可以通过该域名访问静态资源, 但是还不能访问php文件, 因为未开启php-fpm

开启php-fpm服务

# 进入
cd /usr/local/Cellar/php/7.4.6/sbin
# 开启
nohup ./php-fpm > a.log &

此时可以访问php文件

Nginx不支持PathInfo模式

不支持 http://wang.com:8081/index.php/demo/index
支持 http://wang.com:8081/index.php?s=demo/index

# 修改配置文件, 使其支持pathinfo模式
vim /usr/local/etc/nginx/wang/wang.com.conf

...
location / {
            root   /Users/laowang/PhpstormProjects/tp6/public;
            index  index.html index.htm index.php;
            if (!-e $request_filename) {
                rewrite ^/index.php(.*)$ /index.php?s=$1 last;
                rewrite ^(.*)$ /index.php?s=$1 last;
                break;
            }
        }
...

重启Nginx

nginx -s reload
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敲代码der

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值