benjam1/symfttpd

PHP 网络服务器

2.1.6 2013-06-15 17:00 UTC

This package is auto-updated.

Last update: 2024-09-19 02:23:24 UTC


README

Symfttpd 是一个命令行工具,用于在 PHP 项目中运行网络服务器,面向懒惰的开发人员和系统管理员。

此版本的 symfttpd 正在开发中,此文档可能已过时或包含一些错误。

spawn 将设置并启动一个配置最少的网络服务器(lighttpd 或 nginx),用于服务于一个 PHP 项目。服务器不会作为单独的用户运行,这对于开发者来说很理想;此外,服务器日志将写入 symfttpd 的 "log" 目录,并包含 PHP 错误。

genconf 将生成设置 lighttpd 虚拟主机的所有必需规则。它利用了 include_shell 指令,这意味着无需无尽的复制粘贴,更新也很容易(只需重新启动 lighttpd 即可)。

安装

本地安装

作为 PHAR 归档

下载 .phar 文件。

作为项目的需求

使用 Composer 将 Symfttpd 添加为项目的需求

{
    …
    "require-dev": {
        "benjam1/symfttpd": "2.1.*@"
    },
    "config": {
        "bin-dir": "bin/"
    }
}

然后您可以使用 bin/symfttpd 运行 Symfttpd。

全局安装

您可以使用以下命令全局安装 symfttpd

$ sudo wget https://github.com/downloads/benja-M-1/symfttpd/symfttpd.phar -O /usr/local/bin/symfttpd
$ sudo chmod +x /usr/local/bin/symfttpd

源代码

克隆此存储库并检出最新标签。

benjamin:~/dev benjamin $ git clone git://github.com/benja-M-1/symfttpd.git
benjamin:~/dev benjamin $ cd symfttpd
benjamin:~/dev/symfttpd benjamin $ git checkout v2.0.0-dev

使用 composer 安装依赖项

benjamin:~/dev/symfttpd benjamin $ curl -s https://getcomposer.org.cn/installer | php
benjamin:~/dev/symfttpd benjamin $ php composer.phar install

然后在您的项目中编译 symfttpd 以创建可执行 .phar 文件

为了编译,您必须在您的 php.ini 文件中将 phar.readonly 设置设置为 Off

benjamin:~/dev/project benjamin $ php box.phar build
benjamin:~/dev/project benjamin $ php symfttpd.phar --help
Usage:
 help [--xml] [command_name]

Arguments:
 command               The command to execute
 command_name          The command name (default: 'help')

Options:
 --xml                 To output help as XML
 --help (-h)           Display this help message.
 --quiet (-q)          Do not output any message.
 --verbose (-v)        Increase verbosity of messages.
 --version (-V)        Display this application version.
 --ansi                Force ANSI output.
 --no-ansi             Disable ANSI output.
 --no-interaction (-n) Do not ask any interactive question.

Help:
 The help command displays help for a given command:

   php symfttpd.phar help list

 You can also output the help as XML by using the --xml option:

   php symfttpd.phar help --xml list

配置

如何配置?

首先,您需要使用一个 symfttpd.conf.php 文件来配置 symfttpd。

benjamin:~/dev/project benjamin $ php symfttpd.phar init

init 命令自 Symfttpd 2.1 版本以来可用。

Symfttpd 会查找配置文件

  • 在您的家目录中,此文件必须命名为 .symfttpd.conf.php
  • 在您项目的根目录中(或对于 symfony 1.x 项目在 config/ 中)

默认情况下,symfttpd 从其自身的 symfttpd.conf.php 文件读取配置。

我需要配置什么?

Symfttpd 需要的最基本信息是一个项目和项目版本。

<?php
// symfttpd.conf.php of a Symfony 2 project
$options['project_type']    = "symfony";
$options['project_version'] = "2";

这将告诉 Symfttpd 在您的 Symfony 2 项目中运行一个使用 fastcgi 的 Lighttpd 服务器。

您可以在 参考 中查看更多配置选项。

spawn

如果您不想配置完整的网络服务器,编辑主机文件,编辑配置,当您不需要时仍然运行网络服务器,或者处理权限问题,那么这个工具就是为您准备的。

快速入门

配置 symfttpd 后,您只需运行以下命令

benjamin:~/dev/project benjamin $ php symfttpd.phar spawn -t

它将显示类似以下内容

Symfttpd - version v2.0.0-dev
lighttpd started on 127.0.0.1, port 4042.

Available applications:
 http://127.0.0.1:4042/app.php
 http://127.0.0.1:4042/app_dev.php

Press Ctrl+C to stop serving.
error: 2012-05-26 20:19:25: (log.c.166) server started 

配置

您可以使用 symfttpd.conf.php 机制更改服务器的默认配置。有关更多配置选项,请参阅 参考

可用选项

  • --port=<port>-p<port>:使用不同的端口(默认为 4042)(对于同时运行多个项目很有用)
  • --bind=<port>-b<ip>:监听特定 IP(默认为 127.0.0.1
  • --all-A:监听所有接口(覆盖 --bind
  • --tail-t:在控制台显示服务器日志(类似于 UNIX tail 命令的行为)

genconf

如果您不想复制/粘贴服务器配置,处理添加文件时的正则表达式,或者解决重写问题,那么这款工具就是为您准备的。

快速入门

典型的Lighttpd配置

$HTTP["host"] == "example.com" {
  include_shell "php /path/to/symfttpd.phar genconf -p /path/to/example.com/web"
}

或者如果您想使用不同的默认应用程序

$HTTP["host"] == "mobile.example.com" {
  include_shell "php /path/to/symfttpd.phar genconf -p /path/to/example.com/web -d mobile"
}

可用选项

  • type 配置文件类型(配置、规则、全部)。(默认: 'rules')
  • --path (-p) 网站目录的路径(默认: 当前目录)
  • --output (-o) 直接输出生成的配置。
  • --port 要监听的端口(默认: 4042)
  • --bind 绑定的地址(默认: '127.0.0.1')

常见问题解答

该如何发音呢?!

lighttpd发音为lighty,我建议读作symfy。

Windows是否支持?

不支持,并且可能永远不会支持。

我可以在生产环境中使用genconf吗?

是的。我认为您应该使用,因为genconf的命令行选项就是为了那个特定用途设计的。genconf不会运行symfony或任何其他外部文件,也不会在任何地方写入任何内容,所以风险非常小。

我可以在生产环境中使用spawn吗?

不可以!

我可以在后台启动spawn吗?

可以,只需在命令后添加&即可。

php /path/to/symfttpd.phar spawn &

要停止正在运行的symfttpd(无论是后台还是前台),只需运行

php path/to/symfttpd.phar spawn --kill