# 安裝
## [安裝 Composer](http://getcomposer.org/)
`ESD`框架利用 [Composer](http://getcomposer.org/) 來管理自身的依賴。因此,在使用之前,請務必確認是否在你的開發機上安裝了 Composer。
## 安裝PhpStrom插件
建議安裝如下插件

## 安裝 EasySwoole Distributed
~~~php
composer require "esd/esd-server":"~0.1"
## 在項目根目錄 執行初始化命令
php ./vendor/esd/esd-server/Install.php
~~~
啟動ESD
~~~php
php start_server.php start
~~~
訪問
http://127.0.0.1:8080/
# docker 快速開發環境
EasySwoole Distributed 的 docker 鏡像,免安裝擴展,一鍵啟動適合ESD運行的開發環境。
~~~
? docker run -it --rm -p 8080:8080 -v $PWD:/data registry.cn-beijing.aliyuncs.com/anythink/esd:latest
_____ ____ ____ ____ _ _
| ____/ ___|| _ \ | _ \ _ _ _ __ | |_(_)_ __ ___ ___
| _| \___ \| | | | | |_) | | | | '_ \| __| | '_ ` _ \ / _ \
| |___ ___) | |_| | | _ <| |_| | | | | |_| | | | | | | __/
|_____|____/|____/ |_| \_\\__,_|_| |_|\__|_|_| |_| |_|\___|
ESD framework Runtime Environment
version 1.5 author by anythink
root@f41132062911:/data#
~~~
## 拉取鏡像
`docker pull registry.cn-beijing.aliyuncs.com/anythink/esd:latest`
## 啟動鏡像
`docker run -it --rm -p 8080:8080 -v $PWD:/data registry.cn-beijing.aliyuncs.com/anythink/esd:latest`
請在 ESD 根目錄運行容器,否則修改$PWD為代碼根路徑(windows需要用%cd%替換$PWD),如果修改了端口請把8080 修改為自己使用的端口.
鏡像啟動后的目錄即掛載到主機的代碼目錄,注意 Mac 系統無法使用 inotify 熱加載功能。
容器啟動后按照安裝步驟,運行框架。
## 定制 Dockerfile
修改完Dockerfile后,在 Dockerfile 文件同級目錄執行以下命令生成自己的docker 鏡像
~~~
docker build -t registry.cn-beijing.aliyuncs.com/anythink/esd:latest .
~~~
然后按照上面的方式啟動鏡像。
### 相關說明
如果使用Mac系統想從docker里訪問宿主的服務比如redis,mysql,則需使用 192.168.65.2 或者 host.docker.internal 。
如果非Mac系統,則需使用 172.17.0.1
[查看相關鏈接](https://docs.docker.com/docker-for-mac/networking/#there-is-no-docker0-bridge-on-macos)
>[info] [安裝的軟件與擴展請查看 Dockerfile](https://github.com/esd-projects/docker/blob/master/Dockerfile)
- 前言
- 捐贈ESD項目
- 使用篇-通用
- 環境
- 安裝
- 規范
- 壓力測試
- 配置
- 如何設置YML配置
- server配置
- 端口配置
- 項目結構
- 事件派發
- 日志
- 注解
- DI容器
- 自定義進程
- 并發及協程池
- Console插件
- Scheduled插件
- Redis插件
- AOP插件
- Saber插件
- Mysql插件
- mysql事務
- Actuator插件
- Whoops插件
- Cache插件
- PHPUnit插件
- Security插件
- Session插件
- EasyRoute插件
- http路由
- ProcessRpc插件
- AutoReload插件
- AnnotationsScan插件
- Tracing-plugin插件
- MQTT插件
- Pack插件
- AMQP插件
- Validate插件
- Uid插件
- Topic插件
- Blade插件
- CsvReader插件
- hashed-wheel-timer-plugin插件
- 使用篇-HTTP
- 路由
- 靜態文件
- 路由定義
- 修飾方法
- 路由分組
- 資源路由
- 端口作用域
- 異常處理
- 跨域請求
- 路由緩存
- 控制器
- 控制器初始化
- 前置操作
- 跳轉和重定向
- 異常處理
- 請求
- 請求對象
- 請求信息
- request消息
- response消息
- stream消息
- url接口
- 驗證器
- 內置驗證器
- 內置過濾器
- 使用篇-WS
- 如何使用
- 路由
- 使用篇-TCP
- 插件篇-PluginSystem
- 微服務篇-ESDCloud
- CircuitBreaker插件
- SaberCloud插件
- 分布式鏈路追蹤系統
- Consul插件