配置 Mac OS High Sierra (10.13.1) 服务器开发环境

2017-11-08 10:48:09来源:http://blog.qiji.tech/archives/16213作者:技术学习小组人点击

分享

文章的篇幅是挺长的,因为这里面记录了 Mac 从零开始安装到成功运行趣编程服务器项目的全过程。


文章分为了三部分:第一部分描述配置好 Mac 服务器的前提需要安装哪些工具,我把它称为 “准备工作”;第二部分 “服务器运行环境”, 描述怎样搭建 Nginx + Mysql + PHP + php-fpm 服务器运行环境; 第三部分 “项目开发环境” 则是配置属于团队服务器项目的开发环境。


准备工作
安装 homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装 xcode-select 命令行工具
xcode-select --install

服务器运行环境

在安装服务器环境之前先确保安装 xcode 命令行工具:


xcode-select --install

安装 mysql
brew install mysql

打开mysql服务

mysql.server start

执行以下命令:

mysql_secure_installation

这个命令是配置 mysql 的一些安全信息,主要是配置 root 密码、远程账号等功能,根据提示要求输入即可。


安装 php 72 && php-fpm
brew install php72 --with-argon2 --with-debug --with-enchant --with-gmp --with-homebrew-curl --with-homebrew-libressl --with-homebrew-libxml2 --with-homebrew-libxslt --with-imap --with-mssql --with-libmysql

加入环境变量:


echo 'export PATH="$(brew --prefix php72)/bin:$PATH"' >> ~/.bash_profile # for php
echo 'export PATH="$(brew --prefix php72)/sbin:$PATH"' >> ~/.bash_profile#for php-fpm
echo 'export PATH="/usr/local/bin:/usr/local/sbib:$PATH"' >> ~/.bash_profile #for other brew install soft

让配置好的 bash_profile 文件生效


source ~/.bash_profile

测试是否安装成功

查看 php72 版本 :

php -v

输出信息如下:

PHP 7.2.0RC5(cli) (built: Nov 3 2017 16:19:31) ( NTS DEBUG )

Copyright (c) 1997-2017 The PHP Group

Zend Engine v3.2.0-dev, Copyright (c) 1998-2017 Zend Technologies


查看 php-fpm 版本:

php-fpm -v

输出信息如下:

PHP 7.2.0RC5(fpm-fcgi) (built: Nov 3 2017 16:19:33) (DEBUG)

Copyright (c) 1997-2017 The PHP Group

Zend Engine v3.2.0-dev, Copyright (c) 1998-2017 Zend Technologies


配置 php-fpm

修改 /usr/local/etc/php/7.2/php-fpm.conf ,找到以下文件内容:

[global]
; Pid file
; Note: the default prefix is /usr/local/var
; Default Value: none
pid = run/php-fpm.pid#把 ; 注释符号去掉
; Error log file
; If it's set to "syslog", log is sent to syslogd instead of being written
; into a local file.
; Note: the default prefix is /usr/local/var
; Default Value: log/php-fpm.log
error_log = log/php-fpm.log#把 ; 注释符号去掉

修改后保存。


测试一下是否成功

sudo php-fpm -t

成功的话输出下信息:

NOTICE: configuration file /usr/local/etc/php/7.2/php-fpm.conf

test is successful


安装 Nginx
brew install nginx

然后运行


sudo nginx

在浏览器打开 http://127.0.0.1:8080 如果能看到 Welcome to nginx! 字样,代表安装成功。


修改 nginx 配置,让 php 跑起来

删除 nginx.conf 文件:

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

创建 nginx.conf 文件:

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

把以下内容复制进去,然后保存

worker_processes1;
error_log /usr/local/var/log/nginx/error.log debug;
pid/usr/local/var/run/nginx.pid;
events {
worker_connections256;
}
http {
include mime.types;
default_typeapplication/octet-stream;
log_formatmain'$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.logmain;
sendfileon;
keepalive_timeout65;
port_in_redirect off;
include /usr/local/etc/nginx/servers/*;
}

创建 php-fpm 文件

vim /usr/local/etc/nginx/php-fpm

把以下内容复制进去,然后保存

location ~ /.php$ {
try_files $uri = 404;
fastcgi_pass127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_intercept_errorson;
include /usr/local/etc/nginx/fastcgi.conf;
}

配置站点文件

在 /usr/local/etc/nginx/servers 目录下创建 default.conf 文件:

vi /usr/local/etc/nginx/servers/default.conf

输入以下内容:

server {
listen 8080;
server_namelocalhost;
root /usr/local/var/www/default;
access_log/usr/local/var/log/nginx/default.access.logmain;
location / {
indexindex.html index.htm index.php;
autoindex on;
include /usr/local/etc/nginx/php-fpm;
}
error_page404 /404.html;
error_page403 /403.html;
}

在 nginx 默认站点根目录 /usr/local/var/www 配置:

mkdir /usr/local/var/www/default #先创建文件夹
vi /usr/local/var/www/default/index.php #输入 <?phpphpinfo();

测试 Nginx 服务器配置

测试 Nginx:

sudo nginx -t

成功则显示以下信息:

nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok

nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful


开启 php-fpm :

sudo php-fpm -D

正常的情况是没有任何提示信息,但如果有跳出以下提示,则表明已经开启了,

ERROR: unable to bind listening socket for address ‘127.0.0.1:9000’: Address already in use (48)


运行 Nginx 服务
sudo nginx

在浏览器打开 127.0.0.1 如果没看到什么错误,服务器配置就完成了。


项目开发环境
安装 PhpStrom
自行搜索下载 PhpStrom 开发环境安装
克隆项目

以 选拔赛服务器 为例:


http://lawyer5.cn/selection-coolcode/api.git

打开 PhpStorm -> Check out from Verison Control -> Git ,再跟着下图设置,即可 clone



进入到项目根目录下,新建一个名叫 database 的文件夹。


安装 composer :
brew install composer

composer install

执行该命令后:


项目根目录下会新建一个 vendor 文件夹
命令会将 composer.json 写的一些 lib 下载到 vendor 文件夹下
composer dump-autoload
加载 app/helpers.php;
见 composer.json 的 autoload。
cp .env.example .env

复制 .env.example 并新建一个 .env 文件


php artisan jwt:secret
该命令会输出一个 jwt key
然后写入 .env 文件,即更改 JWT_SECRET 的值
更改文件速度有可能会迟钝,不会立即生效,耐心等待时间即可
php artisan key:generate
执行该命令会输出:Application key [XXXXXX] set successfully.
复制中括号里面的字符串,粘贴到 .env 文件的 APP_KEY 等于号后面
修改 .env 文件的 APP_KEY
值为上一个命令得到了 key
修改 .env 数据库配置
DB_CONNECTION 为你所使用的数据库类别,该项目使用 mysql,无需更改
DB_HOST 为数据库访问的 IP,对于开发者,设置为 localhost 即可,无需更改
DB_PORT 为数据库的访问端口,mysql 一般为 3306,无需更改
DB_DATABASE 为该项目使用的数据库名称,我们定义为 ciji,如果本地数据无则新建一个 ciji 数据库
DB_USERNAME 为数据库访问用户名,设置为你本地的数据库访问用户名即可
DB_PASSWORD 为数据库用户的访问密码,设置为你本地的数据库访问用户密码即可

注意数据库字符编码为:utf8mb4


CREATE DATABASE'ciji' DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

新建 storage/logs/sql 文件夹
Mac:mkdir storage/logs/sql
php artisan vendor:publish
将vendor下的一些文件复制到项目中
php artisan migrate
该命令会执行项目根目录 database/migrations 下文件代码,根据你本地数据库表情况执行对应的 migration
如果觉得创建出问题了,可以使用 php artisan migrate:rollback
更多命令,请看文档:https://laravel.com/docs/5.2/migrations
命令执行成后,你可以通过 mysql 命令行或 mysql gui 看到 ciji 数据库新添加了表格
php artisan db:seed
如果提示:Class XxxSeeder does not exist,请使用命令 composer dump-autoload
再查看 ciji 数据库,你会发现数据被添加到一些表中
具体代码请阅读 database/seeds 下面的 Seeds 代码文件
配置 nginx 的 conf

还记得配置站点 conf 吗?同样在 /usr/local/etc/nginx/servers 目录下创建 coolcode.conf 文件:

vi /usr/local/etc/nginx/servers/coolcode.conf

输入以下内容:

server {
listen 2001;
server_namelocalhost;
root/usr/local/var/www/coolcode/public;
access_log/usr/local/etc/nginx/logs/ciji.api.access.logmain;
include /usr/local/etc/nginx/php-fpm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
error_page404/var/www/404.html;
error_page403/var/www/403.html;
}

tails -f storage/logs/sql/xxx-log.sql
每个请求的 sql log 写入项目根目录 storage/logs/sql 下面
Mac 电脑打开 Terminal,cd 到 log 的目录,使用该命令,就能看到你写的代码使用了什么 sql 语句
每次 sql 语句都会重新连接 mysql,尽量减少 sql 的查询
验证项目是否运行成功
切换到 development 分支
访问 你的网址/api/test
若运行成功,则返回消息,”api 项目运行成功”
谢谢

参考阅读:


[PHP] 将 Git 项目代码下载到本地


[PHP] [Mac] PhpStorm 设置 Code Style


框架安装指南(Windows 环境)


全新安装 Mac OS Sierra (10.12) 并使用 HomeBrew 安装 ZSH + MNMP (Mac + Nginx + MySQL + PHP) 开发环境


最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台