Appserver.io

PHP 应用服务器
授权协议 OSL
开发语言 PHP
所属分类 服务器软件、 应用服务器
软件类型 开源软件
地区 不详
投 递 者 谢昂雄
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

appserver.io 是一个多线程的 PHP 应用服务器,实现真正多线程的 PHP 编程,高效安全而且快速,速度比基于 NginxMagento 标准安装要快 50%。使用上非常像 Java 的 Servlet。

亮点:

  • 使用 Doctrine 作为标准的持久层

  • Session Beans (stateful, stateless + singleton)

  • Message Beans

  • Timer Service (tbd)

  • Servlet Engine

  • Integrated Message Queue

  • Easy scaling

  • Webservices

要求:

  • PHP 5.4+ on x64 or x86

  • ZTS enabled (thread safety)

  • POSIX threads implementation

  • Memcached (2.1+)

示例配置:

<servlet>
    <description><![CDATA[A demo servlet]]></description>
    <display-name>DemoServlet</display-name>
    <servlet-name>DemoServlet</servlet-name>
    <servlet-class>\TechDivision\Example\Servlets\DemoServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>DemoServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

示例代码:

public function doGet(Request $req, Response $res)
{
    // build path to template
    $pathToTemplate = $this->getServletConfig()->getWebappPath() .
        DIRECTORY_SEPARATOR . 'static' .
        DIRECTORY_SEPARATOR . 'templates' .
        DIRECTORY_SEPARATOR . 'layout.phtml';

    // init template
    $template = new DemoTemplate($pathToTemplate);

    $baseUrl = '/';
    // if the application has NOT been called over a
    //VHost configuration append application folder naem
    if (!$this->getServletConfig()->getApplication()->isVhostOf(
        $req->getServerName())
    ) {
        $baseUrl .= $this->getServletConfig()->getApplication()->getName() . '/';
    }

    // set vars in template
    $template->setBaseUrl($baseUrl);
    $template->setRequestUri($req->getUri());
    $template->setUserAgent($req->getHeader("User-Agent"));
    $template->setWebappName($this->getServletConfig()->getApplication()->getName());

    // set response content by render template
    $res->setContent($template->render());
}
  • 前言 Websocket是HTML5新增的一种全双工通信协议,客户端和服务端基于TCP握手连接成功后,两者之间就可以建立持久性的连接,实现双向数据传输。 Socket.io不是Websocket,它只是将Websocket和轮询 (Polling)机制以及其它的实时通信方式封装成了通用的接口,并且在服务端实现了这些实时机制的相应代码。也就是说,Websocket仅仅是 Socket.io实现实时通

  • 最近在使用uni-app做APP开发,项目中有个需求:用户可以自己按需配置服务器链接,即APP可动态选择后台服务器。 在uni-app中自带存储API – uni.setStorage(OBJECT)与uni.getStorage(OBJECT),感兴趣的同学可以访问uni-app官网查看。但是我在使用这个API时发现退出APP后再进入,保存的数据会被清除,同步和异步的API我都试了,都不行。网上

  • //获取文件内容 //注意安卓手机内存根目录路径为 /storage/emulated/0 changeFile() { var self = this; plus.io.requestFileSystem( plus.io.PUBLIC_DOCUMENTS, // 程序公用文档目录常量 fs => { // 创建或打开文件, fs.root是根目录操作对象,直接fs表示当前操作对象 fs.roo

  • 无法正常通信 docker环境部署nacos一段时间后出现错误,导致所有服务都处于异常状态,无法正常通信 Caused by: com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /192.168.0

  • 因为一些原因我更换了,nacos的端口号,之后所以服务便报错,花费了好长时间才搞定。 Caused by: com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /192.168.0.164:31048

  • 最近项目组在使用uni-app开发android端,遇到了一个问题,就是我们需要在App应用升级判断是在应用内执行的升级,还是在应用外执行的升级,如果是在应用内执行的升级,如果上次已经登录进去了,则不需要重新登陆,如果是应用外执行的升级,则需要到登录界面重新登陆。 问题就是如果App卸载会导致缓存数据丢失,这个时候我在考虑能不能把数据保存到手机中,这样应用在卸载之后就不会导致数据丢失,在重新打开A

 相关资料
  • 4.1 ABP应用层 - 应用服务 应用服务用于将领域(业务)逻辑暴露给展现层。展现层通过传入DTO(数据传输对象)参数来调用应用服务,而应用服务通过领域对象来执行相应的业务逻辑并且将DTO返回给展现层。因此,展现层和领域层将被完全隔离开来。在一个理想的层级项目中,展现层应该从不直接访问领域对象。 4.1.1 IApplicationService接口 在ABP中,一个应用服务需要实现 IAppl

  • 9501就是swoole服务器监听的地址。root设置为静态文件的目录。当请求静态文件是由Nginx/Apache直接处理,当请求的文件不存在时,发送给Swoole服务器,来进行处理。 nginx配置 server { listen 80; server_name www.swoole.com; root /data/wwwroot/www.swoole.com;

  • 让我们用async/.await建立一个回声服务器! 开始之前,运行rustup update stable,以确保你有 stable Rust 1.39 或更新的版本。一旦完成,就cargo new async-await-echo创建新项目,并打开输出的async-await-echo文件夹。 让我们将一些依赖项,添加到Cargo.toml文件: [dependencies] # The la

  • 应用程序服务是一项基于 HTTP 的服务,用于托管 Web 应用程序、REST API 和移动后端。 应用程序服务是一项基于 HTTP 的服务,用于托管 Web 应用程序、REST API 和移动后端。支持 ASP.NET、ASP.NET Core、Java、Ruby、Node.js、PHP 或 Python等主流编程语言,用户可以无需管理底层基础设置,即可简单、高效、安全和灵活地对应用进行部署、

  • 我在eclipse中安装了Jboss应用服务器,但它没有启动。后来我删除了Jboss并安装了Glassfish服务器,它也没有启动。它们没有给出任何错误,但仍处于启动模式 例如:这是Jboss7的控制台状态。1.它没有继续下去 07:31:29699信息[org.jboss.modules]jboss模块版本1.1.1。GA 07:31:31256信息[org.jboss.msc]jboss ms

  • 综述 测试Web应用漏洞的一个重要步骤是寻找出运行在服务器上的流行应用程序。许多应用程序存在已知漏洞或者已知的攻击手段来获取控制权限或者数据。此外,许多应用往往被错误配置,而且没有更新。他们被认为是“内部”使用,所以没有威胁存在。 随着虚拟web服务的大量使用,传统一个IP地址与一个服务器一一对应的传统形式已经失去了最初的重要意义。多个网站或应用解析到同一个IP地址并不少见。这样的场景不局限于主机

  • 问题内容: 用uWSGI和Nginx设置Flask是非常困难的,即使使用扩展脚本也需要花费一些时间,并且必须记录到指令中以备后用。 如果我不打算在服务器上增加很大的负载(它对公共隐藏),那么在没有uWSGI的情况下运行它是否有意义?(Flask可以监听端口。Nginx可以转发请求吗?) 只在端口上运行裸瓶应用程序,甚至不使用Nginx是否有意义? 问题答案: 当你“运行Flask”时,你实际上是在

  • 第三方应用是由第三方服务商提供的办公应用套件,管理员可根据企业办公需要选择安装。作为企业微信内置OA应用的重要补充,丰富的第三方应用套件将全方位满足企业的办公需求。企业微信会对第三方服务商提供的应用进行质量把关,保证上架应用的用户体验。 安装应用 前往【管理后台】>【企业应用】中安装第三方应用: 01/06在【企业应用】>【第三方应用】中点击【+】安装第三方应用。 02/06进入套件,点击【安装】