//查看版本
brew -v
//安裝homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
國內(nèi)Homebrew鏡像剧蹂,更換鏡像源加速:
cd "$(brew --repo)"
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
brew update
brew -v
安裝 啟動 nginx
brew cleanup //移除舊版本
brew install nginx
//啟動nginx,如果更新安裝nginx,啟動時常會提示沒有權(quán)限醒串,則刪除之前的logs文件夾中的文件等
sudo nginx //啟動
//查看狀態(tài)
ps -ef|grep nginx
nginx -V
sudo nginx -s reload //重新加載配置
sudo nginx -s stop //關(guān)閉
lsof -i tcp:80 //查看80端口占用情況
ps aux | grep nginx //查看nginx進程
配置nginx 虛擬主機执桌,通過域名訪問本地web項目
//瀏覽器輸入一個url,首先會去找本地hosts中該域名配置的ip
vi /private/etc/hosts
127.0.0.1 www.dtemp.com
//修改nginx配置文件芜赌,使其包含虛機目錄下所有配置文件
// /usr/local/etc/nginx/nginx.conf文件中最后一行 } 大括號前增加下面這句
include servers/*;
vi /usr/local/etc/nginx/servers/dtemp
server {
listen 80;
server_name www.dtemp.com;
root /Users/free/www/learnlaravel/;
access_log /usr/local/var/logs/nginx/dtemp.access.log;
location / {
if (!-e $request_filename){
rewrite ^/(.*) /index.php last;
}
index index.html index.htm index.php;
autoindex on;
include /usr/local/etc/nginx/conf.d/php-fpm;
}
}
// /usr/local/etc/nginx/conf.d/php-fpm 該文件內(nèi)容:
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_intercept_errors on;
include /usr/local/etc/nginx/fastcgi.conf;
}
//以上內(nèi)容表示如果nginx接到的請求是.php結(jié)尾的php程序仰挣,
//則將請求轉(zhuǎn)發(fā)到本機9000端口,而這個端口是php-fpm在監(jiān)聽缠沈,
//當(dāng)未安裝php時膘壶,請求www.dtemp.com會返回502錯誤
瀏覽器地址欄輸入地址,請求流程
例如:http://www.dtemp.com/test.php
url包含:
- 協(xié)議【http/https等】
- ip/域名【www.dtemp.com】端口【80/8080等博烂,默認80可以省略】
- uri【/test.php】
瀏覽器地址欄輸入url后回車香椎,就會發(fā)送請求,首先會去本機hosts找該域名對應(yīng)的ip禽篱,沒有則會找dns域名服務(wù)器畜伐,拿到對應(yīng)ip,找到網(wǎng)絡(luò)中要訪問的那臺電腦躺率,uri則說明了要訪問目標(biāo)電腦上的資源路徑玛界。
通過找本機hosts,發(fā)現(xiàn) www.dtemp.com 對應(yīng)ip為127.0.0.1悼吱,即本機慎框,我們使用的nginx配置監(jiān)聽80端口,所以請求被nginx接收后添。nginx根據(jù)web根目錄配置和uri /test.php笨枯,即可找到該資源。發(fā)現(xiàn)是請求的是php文件遇西,則轉(zhuǎn)發(fā)請求到9000端口馅精,交給了php-fpm。php-fpm處理完成后返回給nginx粱檀,nginx將結(jié)果通過http返回給瀏覽器
搜索安裝php
brew search php
brew install php@7.2
php -v //查看版本
php -m //查看擴展
//安裝完php7會輸出以下內(nèi)容洲敢,實際是一個簡單guid,
//執(zhí)行 brew services start php@7.2啟動php-fpm
The php.ini and php-fpm.ini file can be found in:
/usr/local/etc/php/7.2/
php@7.2 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
If you need to have php@7.2 first in your PATH run:
//*執(zhí)行下面兩行命令茄蚯,就會將php7命令路徑加入環(huán)境變量
echo 'export PATH="/usr/local/opt/php@7.2/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/php@7.2/sbin:$PATH"' >> ~/.bash_profile
For compilers to find php@7.2 you may need to set:
export LDFLAGS="-L/usr/local/opt/php@7.2/lib"
export CPPFLAGS="-I/usr/local/opt/php@7.2/include"
To have launchd start php@7.2 now and restart at login:
brew services start php@7.2
Or, if you don't want/need a background service you can just run:
php-fpm
laravel環(huán)境要求如下, 新建test.php在web目錄压彭,可以清楚看到php配置和擴展等信息
PHP >= 7.1.3
OpenSSL PHP Extension
PDO PHP Extension
Mbstring PHP Extension
Tokenizer PHP Extension
XML PHP Extension
Ctype PHP Extension
JSON PHP Extension
BCMath PHP Extension
test.php 內(nèi)容:
<?php phpinfo();?>
安裝mysql,通過官網(wǎng)下載社區(qū)版
https://dev.mysql.com/downloads/mysql/
brew 覆蓋安裝老版本往往有些坑睦优,使用dmg安裝一路next簡易操作,只有一點需要注意壮不。
老版連接mysql的客戶端使用的舊版加密汗盘,mysql8安裝時會默認選擇加強加密,可以選擇老版加密询一,避免更換客戶端衡未。
navicat 查看mysql數(shù)據(jù)庫很方便,推薦一個下載地址:
https://xclient.info/search/s/navicat/
創(chuàng)建用戶并分配某個庫的權(quán)限給該用戶家凯,項目中不要使用root賬戶
//*我mac安裝后mysql的路徑
cd /usr/local/mysql-8.0.15-macos10.14-x86_64/bin
./mysql //進入mysql命令行模式
use mysql;//進入mysql系統(tǒng)庫
//創(chuàng)建名為freeuser的用戶缓醋,%表示可以遠程操作,ip不限绊诲。
CREATE USER 'freeuser'@'%' IDENTIFIED BY 'free99';
//分配learnlaravel庫的所有權(quán)限給freeuser用戶
GRANT ALL PRIVILEGES ON learnlaravel.* TO 'freeuser'@'%';