文章的篇幅是挺长的,因为这里面记录了 Mac 从零开始安装到成功运行趣编程服务器项目的全过程。
文章分为了三部分:第一部分描述配置好 Mac 服务器的前提需要安装哪些工具,我把它称为 “准备工作”;第二部分 “服务器运行环境”, 描述怎样搭建 Nginx + Mysql + PHP + php-fpm 服务器运行环境; 第三部分 “项目开发环境” 则是配置属于团队服务器项目的开发环境。

准备工作

安装 homebrew

安装 xcode-select 命令行工具

服务器运行环境

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

安装 mysql

  • 打开mysql服务

  • 执行以下命令:

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

安装 php 72 && php-fpm

加入环境变量:

让配置好的 bash_profile 文件生效

测试是否安装成功

  • 查看 php72 版本 :

输出信息如下:

* 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 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 ,找到以下文件内容:

修改后保存。
* 测试一下是否成功

成功的话输出下信息:

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

安装 Nginx

然后运行

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

修改 nginx 配置,让 php 跑起来

  • 删除 nginx.conf 文件:

  • 创建 nginx.conf 文件:

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

  • 创建 php-fpm 文件

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

配置站点文件

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

    • 输入以下内容:

      }

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

测试 Nginx 服务器配置

  • 测试 Nginx:

成功则显示以下信息:

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 :

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

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

运行 Nginx 服务

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

项目开发环境

以下内容引用了项目的说明,做了小地方的修改。

安装 PhpStrom

  • 自行搜索下载 PhpStrom 开发环境安装

克隆项目

以 选拔赛服务器 为例:

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

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

安装 composer :

composer install

执行该命令后:

  1. 项目根目录下会新建一个 vendor 文件夹
  2. 命令会将 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

新建 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 文件:

输入以下内容:

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) 开发环境

Comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注