## 常规安装 常驻内存模式、协程模式的 HTTP 开发都使用该方法安装。 ## 环境要求 >[success] 必须的 - PHP 版本 >= 7.0 - Swoole >= 1.9.5 (常驻同步模式) - Swoole >= 4.2.2 (常驻协程模式) - mbstring 扩展 >[success] 可选的 - Composer (修改一级目录,安装第三方库需要) - gd 扩展 (Image组件需要) - pdo 扩展 (Pdo组件需要) - redis 扩展 (Redis组件需要) ## 环境搭建 ### 1. 安装 Swoole 扩展 pecl 在 php/bin 目录,国内 pecl 安装 swoole 有时很慢,如果无法忍受,可选择 [编译安装](https://wiki.swoole.com/wiki/page/6.html)。 ~~~shell $> pecl install swoole ~~~ ### 2. 安装 MixPHP 方法一: 推荐使用 [composer](https://www.phpcomposer.com/) 安装,但是一般情况下,`composer` 安装的是最新的稳定版本,不一定是最新版本。 ```shell composer create-project mixstart/mixphp --prefer-dist ``` 如果你需要安装实时更新的版本: ```shell composer create-project mixstart/mixphp=v1.1.0-beta --prefer-dist ``` 然后在 composer.json 增加 `"minimum-stability": "beta"` 配置项,再执行: ```shell composer update ``` 方法二: 也可使用一键下载脚本,GitHub 有时下载很慢,命令行会报错,多试几次即可。 ```shell $> php -r "copy('https://raw.githubusercontent.com/mixstart/mixphp/master/download.php', 'download.php');include 'download.php';" ``` 安装入口: 入口文件安装至 `/usr/local/bin`,(可选,不安装可直接执行入口文件)。 ```shell $> cd /data/mixphp-master $> chmod 777 install.sh $> ./install.sh ``` ### 3. 确认安装成功 启动 mix-httpd 服务器。 >[info] - 请使用 root 账号启动 mix-httpd。 > - 初次部署建议不使用 `-d` 参数,这样能方便发现目录权限不足,路径不对等系统级错误问题。 ~~~shell $> mix-httpd service start -d ~~~ 访问测试: ~~~shell $> curl http://127.0.0.1:9501/ Hello World ~~~ 如果显示 "Hello World" 的欢迎语那就表示 MixPHP 已经正常运行。 ### 4. 增加 Nginx 反向代理 ~~~shell server { server_name www.test.com; listen 80; root /data/mixphp/apps/httpd/public; location = / { rewrite ^(.*)$ /index last; } location / { proxy_http_version 1.1; proxy_set_header Connection "keep-alive"; proxy_set_header Host $http_host; proxy_set_header Scheme $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; if (!-e $request_filename) { proxy_pass http://127.0.0.1:9501; } } } ~~~ >[info] 在 MixPHP 中通过读取 Request::header('x-real-ip') 或者 Request::header('x-forwarded-for') 来获取客户端的真实IP。 ## Swoole IDE 自动补全 这个不是必须安装的,只是能方便在需要写一些原生 Swoole 时,能让 IDE 自动补全,很方便的一个工具,推荐安装。 [>> 到 GitHub 下载 swoole-ide-helper-phar <<](https://github.com/mixstart/swoole-ide-helper-phar)