从命令行在任何目录中启动Apache服务器

Dev*_*ode 24 apache command-line-interface static-files static-site staticfilehandler

我希望能够从命令行启动一个apache服务器,输入类似apache site-folder或的东西apache . --port=2000

这应该读取和使用.htaccess文件.

我知道python -m SimpleHTTPServer并且它接近我需要的东西,但并不完全.

理想解决方案

  1. 为apache本身提供了一个很好的命令行界面
  2. 编写一个包含/包含apache(或其他东西)的简单命令行工具
  3. 链接到现有cli上的文档以获取apache

我只想打字 command <Directory> --port=8000 --other-options

命令名也可以是 pache

在某些时候,我可能想在生产中使用它.将进程发送到后台应该很容易,然后永远停止该实例或所有实例

相关链接:http://httpd.apache.org/docs/2.4/programs/httpd.html

对于任何人来说,安装脚本以供立即使用应该只有一个命令

gpi*_*ino 16

apache调试模式(-X)怎么样?

apache2 -X -d. -f.htaccess -C"PidFile `mktemp`"  -C"Listen 1025" 
-C"ErrorLog /dev/stdout" -C"DocumentRoot `pwd`"
Run Code Online (Sandbox Code Playgroud)

一旦开始你把它放在后台你可以使用Ctrl ^ Z然后键入"bg"

使用FOREGROUND标志,将其包装在shell脚本中:

#!/bin/sh
if [ $# -ne 2 ]; then 
    echo "$0 <port> <dir>"
    exit 10 
fi
/usr/sbin/apache2 -DFOREGROUND -d. -f.htaccess -C"PidFile `mktemp`" \ 
-C"Listen $1" -C"ErrorLog /dev/stdout" -C"DocumentRoot $2" -e debug
Run Code Online (Sandbox Code Playgroud)

称之为"pache",chmod + x,然后就可以运行了

./pache 1026 /tmp/webroot
Run Code Online (Sandbox Code Playgroud)


Dev*_*ode 6

http-server是一个比pache更好的简单http服务器,它是我目前使用的!:)

使用[pache] [1]

使用npm安装 - 这里有节点:http://nodejs.org/

sudo npm install pache -g
Run Code Online (Sandbox Code Playgroud)

在当前目录,端口3000上运行:

pache
Run Code Online (Sandbox Code Playgroud)

或者指定目录和端口:

pache site-directory 2000
Run Code Online (Sandbox Code Playgroud)

[1]:https://github.com/devinrhode2/pache

  • 我希望你能给予最能激发你的javascript解决方案的赏金.你为什么不坚持使用`sh`?必须安装nodejs并不像使用已安装的那样简单. (4认同)

Rem*_*tor 5

这有效:

你的 apache 配置可能指向 /var/www

然后使用:

sudo mount -o bind /home/webcreatorperson/mywebsite /var/www
Run Code Online (Sandbox Code Playgroud)

解除绑定使用:

sudo umount /var/www
Run Code Online (Sandbox Code Playgroud)

如果您想要多个端口,您可以在 apache 中预先配置端口以指向 /var/www/8000 等目录。