swoft2 小白教程系列-搭建开发环境

框架安装

Swoft 框架支持 Linux、macOS 虽然 win10也支持 但不推荐使用,最好使用 docker ,本教程手把手教你搭建一套开发环境.
环境要求
操作系统选择 centos7

  1. PHP 包管理器 Composer
  2. docker-ce
  3. docker-compose

环境搭建
安装 docker-ce

sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2

sudo yum-config-manager \--add-repo \https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

sudo yum makecache fast

sudo yum install docker-ce

sudo systemctl enable docker

sudo systemctl start docker

sudo usermod -aG docker $USER

newgrp - docker

sudo systemctl restart docker

安装 docker-compose

su root

curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

安装 php

su root

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

yum -y install php71w-fpm

安装 composer

su root

curl -sS https://getcomposer.org/installer | php

mv composer.phar /usr/local/bin/composer

项目搭建
1 首先第一步拉取项目

composer create-project swoft/swoft Swoft

2 项目文件预览

完整结构

├── app/ ----- 应用代码目录
│ ├── Annotation/ ----- 定义注解相关
│ ├── Aspect/ ----- AOP 切面
│ ├── Common/ ----- 一些具有独立功能的 class bean
│ ├── Console/ ----- 命令行代码目录
│ ├── Exception/ ----- 定义异常类目录
│ │ └── Handler/ ----- 定义异常处理类目录
│ ├── Http/ ----- HTTP 服务代码目录
│ │ ├── Controller/
│ │ └── Middleware/
│ ├── Helper/ ----- 助手函数
│ ├── Listener/ ----- 事件监听器目录
│ ├── Model/ ----- 模型、逻辑等代码目录(这些层并不限定,根据需要使用)
│ │ ├── Dao/
│ │ ├── Data/
│ │ ├── Logic/
│ │ └── Entity/
│ ├── Rpc/ ----- RPC 服务代码目录
│ │ └── Service/
│ │ └── Middleware/
│ ├── WebSocket/ ----- WebSocket 服务代码目录
│ │ ├── Chat/
│ │ ├── Middleware/
│ │ └── ChatModule.php
│ ├── Tcp/ ----- TCP 服务代码目录
│ │ └── Controller/ ----- TCP 服务处理控制器目录
│ ├── Application.php    ----- 应用类文件继承自swoft核心
│ ├── AutoLoader.php     ----- 项目扫描等信息(应用本身也算是一个组件)
│ └── bean.php
├── bin/
│ ├── bootstrap.php
│ └── swoft              ----- Swoft 入口文件
├── config/ ----- 应用配置目录
│ ├── base.php               ----- 基础配置
│ └── db.php                 ----- 数据库配置
├── public/ ----- 公共目录
├── resource/ ----- 应用资源目录
│ ├── language/ ----- 语言资源目录 
│ └── view/ ----- 视图资源目录 
├── runtime/ ----- 临时文件目录(日志、上传文件、文件缓存等)
├── test/ ----- 单元测试目录
│ └── bootstrap.php
├── composer.json
├── phar.build.inc
└── phpunit.xml.dist
├── env ----- 环境变量
├── docker-compose.yml  ----- docker配置项
└── phpunit.xml.dist


3 修改配置并运行
进入 Swoft 目录

cd Swoft

我修改的文件主要是 docker-compose.yml


配置信息

version: "3"
services:
  redis:
    image: redis:alpine
    container_name: redis
    ports:
 - 6379:6379
    volumes:
 - redisdb:/data
 - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
  swoft:
    image: swoft/swoft
#    for local develop
    command: php -S 127.0.0.1:13300
    container_name: swoft-test
    environment:
 - APP_ENV=dev
 - TIMEZONE=Asia/Shanghai
    ports:
 - "18306:18306"
 - "18307:18307"
 - "18308:18308"
    volumes:
 - ./:/var/www/swoft
  mysql:
    image: mysql
    container_name: mysql-srv
    environment:
 - MYSQL_ROOT_PASSWORD=123456
    ports:
 - "3306:3306"
    volumes:
 - mysqldb:/var/lib/mysql
volumes:
  redisdb:
  mysqldb:


启动命令

docker-compose up -d 


查看容器是否正常启动

docker ps 


注意我们这里没有部署 mysql ,所以容器只有 redis 和 swoft 上面的配置项是有mysql容器的,并且 root 密码是 123456 安全策略等需要开发者自行配置
进入容器操作

docker exec -it swoft-test sh


这个表示已经进入了容器内
下载相关依赖
这一步一定要记住 并且是进入容器以后

composer install


配置热更新
按顺序执行下面几个命令

wget https://github.com/swoft-cloud/swoft-cli/releases/download/v0.1.3/swoftcli.phar

mv swoftcli.phar /usr/local/bin/swoftcli

chmod a+x /usr/local/bin/swoftcli


启动开发环境

swoftcli run -c http:start -b bin/swoft


看到如下界面则环境配置完成

此时修改 app 目录和 config 目录 会自动重启,修改其他文件则需要 ctrl+c 结束进程后重启项目.
注意此时关闭了终端,其实 swoftcli 进程 是没有关闭的,再次进入终端也看不到调试信息,所以此时我们需要杀了进程,再重启,才能看到调试信息

ps -aux|grep swoft

杀掉前2个进程即可
kill 进程id

kill 11296
kill 11299

杀掉进程后再次查看进程

ps -aux|grep swoft

此时就可以再次重新启动
swoftcli run -c http:start -b bin/swoft
注意我们这里启动是 web 服务如果websoket服务 请修改 -c 后面的参数 例如 swoftcli run -c ws:start -b bin/swoft

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的官方群点击此处

发布了189 篇原创文章 · 获赞 12 · 访问量 3769

猜你喜欢

转载自blog.csdn.net/weixin_43814458/article/details/103923820