使用 WEBrick 为 PHP Web 应用程序提供服务

2024-03-01

我是一名 PHP 开发人员,已经开始学习 Ruby on Rails。我喜欢启动和运行 Rails 应用程序开发是多么容易。我最喜欢的东西之一是 WEBrick。它使您不必为您正在处理的每个小项目配置 Apache 和虚拟主机。 WEBrick 允许您轻松启动和关闭服务器,以便您可以在 Web 应用程序周围单击。

我并不总是有机会开发 Ruby on Rails 应用程序,因此我想知道如何配置(或修改)WEBrick 以便能够使用它来为我的 PHP 项目和 Zend Framework 应用程序提供服务。

你尝试过这个吗?为了实现这一目标需要采取哪些必要步骤?


要在 webrick 中获得 php 支持,您可以使用 php 文件的处理程序。为此,您必须扩展HttpServlet::AbstractServlet并实施do_GET and do_POST方法。这些方法是为来自浏览器的 GET 和 POST 请求而调用的。在那里,您只需将传入的请求提供给php-cgi.

要让 PHPHandler 处理 php 文件,您必须将其添加到HandlerTable特定安装座的。你可以这样做:

s = HTTPServer.new(
    :Port => port,
    :DocumentRoot => dir,
    :PHPPath => phppath
)
s.mount("/", HTTPServlet::FileHandler, dir, 
    {:FancyIndexing => true, :HandlerTable => {"php" => HTTPServlet::PHPHandler}})

第一条语句初始化服务器。第二个将选项添加到DocumentRoot山。在这里它启用目录列表并处理 php 文件PHPHandler。之后服务器可以启动s.start().

我自己编写了一个 PHPHandler,因为我在其他地方没有找到它。它是基于webricks的CGIHandler,但经过重新设计以使其与php-cgi。你可以在 GitHub 上查看 PHPHandler:

https://github.com/questmaster/WEBrickPHPHandler https://github.com/questmaster/WEBrickPHPHandler

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 WEBrick 为 PHP Web 应用程序提供服务 的相关文章

  • Godaddy 托管上的 CakePHP 控制台

    我一直在努力让我的 CakePHP 网站在 Godaddy 网格托管 帐户上运行 我的蛋糕应用程序设置是从帐户的子目录托管的 并且可以通过子域访问 我必须调整我的 htaccess 文件才能使其正常工作 现在我需要让 CakePHP 控制台
  • PHP:STR 替换为链接

    我有这个 PHP 聊天框 如果我在聊天框中键入链接 它不会将其显示为链接 我如何使用 STR 替换来执行此操作 它应该响应诸如 http http com nl www www 之类的内容 我的其他 STR 替换行如下所示 bericht
  • 如何从 ruby​​ 中的字符串名称创建类实例?

    我有一个类的名称 我想创建该类的一个实例 以便我可以循环该类的架构中存在的每个 Rails 属性 我该怎么做呢 我的名称是我想要检查的类的字符串 我想我需要实例化一个类实例 以便我可以 循环遍历它的属性并打印它们 在 Rails 中你可以这
  • 如何使用 PHP 查找目录中的前 5 个文件?

    如何使用 PHP 列出按字母顺序排序的目录中的前 5 个文件或目录 Using scandir array slice array filter scandir path to dir is file 0 5 The array filte
  • json_encode 创建格式错误的 JSON 数据?

    我有一个 codeigniter 应用程序将一些数据从数据库返回到视图 我正在尝试将其作为 json 数据发送回来 问题是返回的数据格式错误 它看起来像这样 2 5 Admin1 2 10 Admin2 当我在 jsonlint com 上
  • 如何在 Laravel Mix 中将公共路径更改为包含下划线的路径?

    Laravel 5 4 中引入了 Mix 来编译资产并维护资产管道 Mix 默认为您的公共目录被命名public 在许多情况下 包括我的 我的公共目录被称为其他名称 就我而言 是public html 如何更改资源编译到的公共目录 我尝试过
  • PHP,文本从数据库中回显,没有换行,全部一体

    我的数据库中有一个长文本 从 php mayadmin 来看它看起来很好 但是当我将它回显到页面时 它会丢失所有格式 即没有新行 全部都在一个块中 有任何想法吗 Thanks 可能是因为换行符是 n 并且 html 想要 br 所以使用nl
  • Heroku 部署错误

    在 Windows 环境中 尝试部署到 Heroku 时出现以下错误 C Ruby lib ruby gems 1 8 gems heroku 1 9 13 lib heroku commands base rb 32 in 没有这样的文件
  • 如何使用额外标记输出 wp_list_categories

    我目前正在使用下面的脚本在无序列表中输出我的所有 WordPress 类别 如何获得带有额外标记的输出 ul ul 例如 ul li Category 1 rsaquo li li Category 2 rsaquo li ul 代替 ul
  • 从文本文件 PHP 读取数据

    我只是想知道如何在 php 中读取文本文件 我想让它显示文本文件中的最后 200 个条目 每个条目都在一个新行上 Like John White Jane Does John Does Someones Name 等等 Thanks Use
  • 如何使用多个数据库设置 symfony 3 学说迁移?

    我在验证和更新模式时努力让 symfony doctrine 排除数据库视图 我第一次尝试没有教条迁移 看到这个问题 https stackoverflow com questions 46775200 symfony 3 doctrine
  • 如何从列表创建多维数组?

    我在 MySQL 中有一个带有父 ID 的类别列表 如何从列表中创建 PHP 数组 ID Category Parent ID 1 Car NULL 2 Education NULL 3 Mathematics 2 4 Physics 2
  • 如何编写可以补偿拼写错误数据的 MySQL 搜索?

    有没有什么方法可以编写一个 MySQL 搜索来弥补用户在拼写等方面的错误 作为随机示例 有人可能会输入 电子邮件受保护 cdn cgi l email protection代替 电子邮件受保护 cdn cgi l email protect
  • 多重要求和允许强参数rails 4

    在下面的情况下 我尝试使用强参数 我想要求email address password并允许remember me fields 但像下面这样使用它只允许最后一行在方法示例中 在下面的情况下 它只需要params permit rememb
  • 通过 SOAP 的 Gmt php 或 UTC C# 等效项

    is C DateTime UtcNow和 PHPdate c 是等价的 我怀疑 因为当我肥皂时 我得到了 C
  • 如何在php中关闭夏令时

    我有这行代码将夏令时设置为 打开 将其设置为 关闭 的正确方法是什么 is daylight saving On rcmail config dst active bool date I date I 这是一个大写字母 i 当当前默认时区
  • 使用 PHP 创建图表并导出为 PDF

    我正在寻找有关使用 PHP 创建图表的建议 我还希望能够将这些图表导出到 PDF 文档 我目前正在使用谷歌图表 但我不喜欢将我的所有信息发送到谷歌的想法 我更喜欢自己的托管解决方案 我见过很多 Flash 解决方案 但我不知道有什么方法可以
  • REXML - 如何提取单个元素

    我正在用 ruby 编写一些验收测试 其中涉及断言响应 XML 中值的存在 我的 XML 是这样的
  • MYSQL 的 Google OAuth 2.0 用户 ID 数据类型

    我正在实施 Google OAuth 2 0 并注意到 Google OAuth 返回的唯一用户 ID 是21位数字长的 我想大整数 20 足以满足这种需求 但我现在看到 Google OAuth 返回的用户 ID 的长度感到困惑 关于我应
  • PHP 文件上传帮助

    div align center div 这是我的代码

随机推荐

  • 如何以编程方式读取 AWS Glue 数据目录表架构

    我有一组结构统一的日常 CSV 文件 我将其上传到 S3 有一个下游作业将 CSV 数据加载到 Redshift 数据库表中 CSV 中的列数可能会增加 从那时起 新文件中将包含新列 发生这种情况时 我想检测更改并自动将该列添加到目标 Re
  • 在android中,当一张图像移动时,如何知道两个图像是否相交?

    在我的应用程序中 我使用以下方法在屏幕上移动图像onTouchListener 我在同一视图中还有另外两张图像 我的问题是 当移动图像接触任何其他图像时 我需要执行特定操作 这意味着如果图像相交 则执行某些操作 如何实现这一点 请尽快帮助我
  • 从订单表中提取本周的记录

    我有一张包含以下信息的表格 Id orderNumber orderDate customerId orderDate是 MySQL 日期时间字段 当前日 月 年和时间在写入记录时插入数据库 所以我的问题是如何提取本周某一天的订单列表 我的
  • 克服 NSURL 的 checkResourceIsReachableAndReturnError 的意外行为

    在我为 iOS 5 创建的程序中 我遇到了 NSURL 的 checkResourceIsReachableAndReturnError 方法的意外行为 我创建了一个新项目来验证该问题 并仅包含代码 NSURL url NSURL URLW
  • Pandas:两个 datetime64 对象的差异产生 NaT 而不是正确的 timedelta 值

    这个问题 被问了很多 但仔细查看其他答案后 我还没有找到适合我的情况的解决方案 遗憾的是 这仍然是一个症结所在 我有一个pandas带列的数据框datetime我只是想计算数据覆盖的时间范围 以秒为单位 比如说 from datetime
  • 查询一段时间内的 DAU/MAU(每日)

    我有一个每日会话表 其中包含 user id 和日期列 我想绘制每天的 DAU MAU 每日活跃用户 每月活跃用户 图表 例如 Date MAU DAU DAU MAU 2014 06 01 20 000 5 000 20 2014 06
  • Spring Cloud Stream Kafka - 方法必须是声明性的

    我已经使用 Spring Cloud Stream 配置了一个基于 Spring Boot 的应用程序 我正在尝试处理 KStream 但不断收到错误 java lang IllegalArgumentException 方法必须是声明性的
  • 自训练算法

    我想针对特定问题开发一种自我训练算法 为了简单起见 我将把它归结为简单的例子 更新 我添加了一个工作解决方案作为下面这个问题的答案 假设我有来自数据库的大量实体列表 每个实体都是相同的类型 并且有 4 个字节类型的属性 public cla
  • Maven - 如何重命名 jar 名称的输出分类器?

    我正在尝试重命名属于 WAR 项目一部分的 jar 文件名的默认输出分类器 默认情况下 它会生成以下输出 jar project artifactId project version classifier 在我的示例中 它将生成 myweb
  • 解决“配置对象是只读的,因为它已通过调用 ServerManager.CommitChanges() 提交”?

    我为安装程序项目编写了一个自定义操作 该操作执行以下操作 检查现有网站是否存在同名网站 由用户输入 如果该网站不存在 则在 IIS 中创建该网站 创建应用程序池 将应用程序池分配给创建的网站 当涉及到分配应用程序池时 我收到错误 配置对象是
  • 使用 XML 设置选项卡小部件的样式

    所以我在使用 xml 设计选项卡小部件时遇到了很大的困难 我搜索过的所有地方似乎都建议以编程方式执行此操作的解决方案 或者引用 actionBarTab 样式 gt 我想要实现的是使用生成的 qtabwidget 可绘制对象的自定义选项卡h
  • 我可以在 Google Apps 脚本上设置每小时特定时间的触发器吗?

    我有一个链接到谷歌表格文档的谷歌应用程序脚本 我想在每小时的顶部运行脚本 即恰好下午 1 00 00 下午 2 00 00 下午 3 00 00 等 我已经在 管理项目的触发器 设置中设置了每小时触发器 但是 这将在一小时内选择一个随机时间
  • 将外部模块 TypeScript 声明暴露给使用模块

    我有一个已发布的 TypeScript 模块 我们称之为shared stuff 旨在由其他 TypeScript 模块导入 这shared stuff模块具有第三方依赖项 但没有 types 范围声明 因此该模块内部有几个声明文件 lib
  • T-SQL UDF 与完整表达式运行时

    我试图通过在 SQL SERVER 中使用 UDF 使我的查询可读 但使用该函数时运行时间会急剧增加 以下是我正在使用的功能 create function DL trim all input varchar max returns var
  • 使属性不可枚举有什么好处?

    可枚举性是属性的三个属性之一 可写性 可枚举性和可配置性 我的问题是 在 JavaScript 中使属性不可枚举有什么好处 我知道我们通过使属性不可枚举来隐藏属性 但是隐藏属性有什么好处呢 我们可以访问不可枚举的属性吗 如果是 那么使它们不
  • Android ImageView连续放大和缩小

    有什么办法可以放大和缩小ImageView在Android中不断 我尝试使用下面的代码 但只有一个缩放功能可以工作 缩放 xml
  • iPhone 上 Objective C 中的静态字符串变量

    如何在 iPhone 中创建和访问静态字符串 目标 c 我声明static NSString str OldValue 在A类 如果我在 B 类中为此分配一些值str NewValue 该值对于 B 类中的所有方法都有效 但是 如果我在 C
  • Java线程中的定时器

    我有一个线程负责执行一些过程 我想让这些处理每 3 秒完成一次 我使用了下面的代码 但是当线程启动时 什么也没有发生 我假设当我为计时器定义任务时它会自动执行ScheduledTask在时间间隔内但它根本不做任何事情 我缺少什么 class
  • Swift 中的快速排序出现错误

    我正在 Swift 中使用高阶函数编写快速排序 但它给出了 error Int is not convertible to Int return quickSort array lesser pivot quickSort array gr
  • 使用 WEBrick 为 PHP Web 应用程序提供服务

    我是一名 PHP 开发人员 已经开始学习 Ruby on Rails 我喜欢启动和运行 Rails 应用程序开发是多么容易 我最喜欢的东西之一是 WEBrick 它使您不必为您正在处理的每个小项目配置 Apache 和虚拟主机 WEBric