SW-X框架 的安装与部署

简介: SW-X 支持启动5种服务,分别为:HTTP服务(API请求)WebSocket服务(长连接请求)MQTT服务(物联网通信)RPC服务(微服务)Tcp服务(自管理 Tcp Server)

官网地址:SW-X框架-专注高性能便捷开发而生的PHP-SwooleX框架

SW-X 依赖于PHP-Swoole扩展,所以在运行SW-X之前,我们需要先安装Swoole扩展。

1、安装Swoole4.8.0

wget http://pecl.php.net/get/swoole-4.8.0.tgz
tar -zxvf swoole-4.8.0.tgz
cd swoole-4.8.0
phpize
# 注意:这里的php安装目录要改成你项目所在的
./configure --with-php-config=/www/server/php/73/bin/php-config --enable-openssl
make
make install
# 修改php.ini,末尾加上下面这句
extension=swoole.so
# 查看扩展是否安装成功
php -m

2、拉取 SW-X 源码最新版

SW-X的安装支持两种方式:

一、官网有提供所有历史版本的源码下载,可直接下载解压:

SW-X框架-历史版本列表

二、也可以通过 composer 命令拉取

composer create-project swoolex/swoolex

下面我们来演示下composer的部署过程:

# 创建项目地址(按照你自己的项目管理路径)
mkdir -p /var/www/html/swoolex/
# 进入该目录
cd /var/www/html/swoolex/
# 拉取SW-X
composer create-project swoolex/swoolex

3、修改服务端口

SW-X的启动,依赖端口挂载,官方默认使用 9502 端口。

如果需要修改端口,只需要打开 /config/server.php 文件修改 port 参考即可。

如果你是云服务器,需要到安全组开放对应的端口,否则启动后无法正常访问服务。

如果安全组开放后,服务还是不能正常访问,可以查看服务器是否开启了防火墙:

# 查看防火墙状态
systemctl status firewalld
# 直接关闭防火墙(测试使用,如果是正式建议单独开放端口,否则会很危险)
systemctl stop firewalld
# 开放某个端口
firewall-cmd --zone=public --add-port=9502/tcp --permanent

4、启动SW-X的HTTP服务

SW-X 支持启动5种服务,分别为:

  1. HTTP服务(API请求)
  2. WebSocket服务(长连接请求)
  3. MQTT服务(物联网通信)
  4. RPC服务(微服务)
  5. Tcp服务(自管理 Tcp Server)

具体的服务启动方式,参考官方文档,服务启动章节:HTTP - Web开发 | SW-X框架

下面我们来启动一个HTTP服务:

# 先进入项目根目录下
cd /var/www/html/swoolex/
# 使用php-cli命令启动服务(注意,这里php全局命令是对应我安装了swoole扩展的版本,如果你是多版本可以指定绝对路径)
php sw-x http

上面命令启动后是会进入框架流程,Ctrl+C会直接关闭服务,如果需要守护进程启动服务,只需要末尾加上 -d

# 守护进程方式启动服务
php sw-x http -d

启动后的CMD界面如下:

浏览器访问:http://外网IP:9502

就能看到框架HTTP服务,初始化的界面:

最后:

开源不易,希望看到本教程的技术大佬们,可以给我一个star,你们的支持是SW-X坚持下去的动力:

https://github.com/swoolex/swoolex


相关文章
|
8月前
|
存储 开发框架 程序员
在Avalonia项目中使用MediatR和MS.DI库实现事件驱动通信
AvaloniaUI是一个强大的跨平台.NET客户端开发框架,让开发者能够针对Windows、Linux、macOS、Android和iOS等多个平台构建应用程序。在构建复杂的应用程序时,模块化和组件间的通信变得尤为重要。Prism框架提供了模块化的开发方式,支持插件的热拔插,而MediatR则是一个实现了中介者(Mediator)模式的事件订阅发布框架,非常适合用于模块之间以及模块与主程序之间的通信。
|
2月前
|
存储 云计算 芯片
多核心物理隔离USB SERVER和单核心USB SERVER的区别及优势
多核心物理隔离USB SERVER和单核心USB SERVER的区别及优势
|
8月前
|
数据可视化 iOS开发
iOS 开发,什么是 Interface Builder(IB)?如何使用 IB 构建用户界面?
iOS 开发,什么是 Interface Builder(IB)?如何使用 IB 构建用户界面?
140 4
|
SQL 存储 数据库连接
如何使用 FreeSql 无缝接替 EF Core ?
在使用 `EF Core` 作为默认的 `ORM` 工具操作数据库时,项目中我们或许只能接触到 `DbContext` 对象,没法直接获取 `db` 数据库连接信息,假如有小伙伴想接入 `FreeSQL` 继续使用熟悉的模式,那该怎么办呢?此时我们可以这样操作,为了不影响原有项目结构的操作,又想接入 `FreeSQL` 的小伙伴们,通过上面的方式我们就可以使用 `FreeSQL` 无缝替换 `EF Core`。
317 1
如何使用 FreeSql 无缝接替 EF Core ?
SAP SD基础知识之与FI集成相关的流程与配置
SAP SD基础知识之与FI集成相关的流程与配置
|
数据安全/隐私保护 网络架构 安全
|
网络协议 网络虚拟化 网络架构

热门文章

最新文章