从命令行在任意目录中启动apache服务器

从命令行在任意目录中启动apache服务器,apache,command-line-interface,static-files,static-site,staticfilehandler,Apache,Command Line Interface,Static Files,Static Site,Staticfilehandler,我希望能够从命令行启动apache服务器,键入类似于apache站点文件夹或apache的内容--端口=2000 这应该读取并使用.htaccess文件 我了解python-msimplehttpserver,它很接近我所需要的,但并不完全 理想解决方案: 为apache本身提供了一个出色的命令行界面 编写一个简单的命令行工具来包装/包含apache(或其他东西) 链接到apache现有cli上的文档 我只想键入命令--port=8000--其他选项 命令名也可以是pache 在某个时候,我可能

我希望能够从命令行启动apache服务器,键入类似于
apache站点文件夹
apache的内容--端口=2000

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

我了解
python-msimplehttpserver
,它很接近我所需要的,但并不完全

理想解决方案:

  • 为apache本身提供了一个出色的命令行界面
  • 编写一个简单的命令行工具来包装/包含apache(或其他东西)
  • 链接到apache现有cli上的文档
  • 我只想键入
    命令--port=8000--其他选项

    命令名也可以是
    pache

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

    相关链接:

    阿尔索
    任何人都可以只使用一个命令来安装脚本以供立即使用

    为什么不使用Gatling,它可以让您完全按照自己的意愿进行操作


    apache调试模式(-X)如何

    要在启动后将其置于后台,可以使用Ctrl^Z,然后键入“bg”

    使用前台标志,将其包装在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
    
    http服务器
    是一个比pache好得多的简单http服务器,这就是我目前使用的!) 使用[pache][1] 使用npm安装-此处随节点一起提供:

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

    pache
    
    或指定目录和端口:

    pache site-directory 2000
    
    [1] :

    这项工作:

    您的apache配置可以指向/var/www

    然后使用:

    sudo mount -o bind /home/webcreatorperson/mywebsite /var/www
    
    要解除绑定,请使用:

    sudo umount /var/www
    
    如果您需要几个端口,可以在apache中预先配置端口以指向/var/www/8000之类的目录。

    Hmm。。。有趣

    我可以理解为什么您希望能够根据需要在不同的端口上生成一个单独的apache实例,等等

    也就是说,有时候,您只想更改一个实例的配置,或者希望用户能够自助服务,等等

    但更重要的是,您希望能够为您的用户提供Apache灵活性,而不会破坏其他人的Apache。这是大型virtualhost配置文件无法处理的

    我在自己的环境中有类似的设置

    在任何一种情况下,要在Mac上使用自定义设置启动Apache,我都是这样做的:

    文件夹/文件:

    ~/site/conf/httpd.conf ~/site/logs/ ~/站点/公共/

    httpd.conf文件的内容:

    # Can be substituted with an Include statement, which all httpd.conf can pull in.
    # Included here for simplicity/single file example.
    LoadModule authn_file_module /usr/libexec/apache2/mod_authn_file.so
    LoadModule authn_dbm_module /usr/libexec/apache2/mod_authn_dbm.so
    LoadModule authn_anon_module /usr/libexec/apache2/mod_authn_anon.so
    LoadModule authn_dbd_module /usr/libexec/apache2/mod_authn_dbd.so
    LoadModule authn_default_module /usr/libexec/apache2/mod_authn_default.so
    LoadModule authz_host_module /usr/libexec/apache2/mod_authz_host.so
    LoadModule authz_groupfile_module /usr/libexec/apache2/mod_authz_groupfile.so
    LoadModule authz_user_module /usr/libexec/apache2/mod_authz_user.so
    LoadModule authz_dbm_module /usr/libexec/apache2/mod_authz_dbm.so
    LoadModule authz_owner_module /usr/libexec/apache2/mod_authz_owner.so
    LoadModule authz_default_module /usr/libexec/apache2/mod_authz_default.so
    LoadModule auth_basic_module /usr/libexec/apache2/mod_auth_basic.so
    LoadModule auth_digest_module /usr/libexec/apache2/mod_auth_digest.so
    LoadModule cache_module /usr/libexec/apache2/mod_cache.so
    LoadModule disk_cache_module /usr/libexec/apache2/mod_disk_cache.so
    LoadModule mem_cache_module /usr/libexec/apache2/mod_mem_cache.so
    LoadModule dbd_module /usr/libexec/apache2/mod_dbd.so
    LoadModule dumpio_module /usr/libexec/apache2/mod_dumpio.so
    LoadModule reqtimeout_module /usr/libexec/apache2/mod_reqtimeout.so
    LoadModule ext_filter_module /usr/libexec/apache2/mod_ext_filter.so
    LoadModule include_module /usr/libexec/apache2/mod_include.so
    LoadModule filter_module /usr/libexec/apache2/mod_filter.so
    LoadModule substitute_module /usr/libexec/apache2/mod_substitute.so
    LoadModule deflate_module /usr/libexec/apache2/mod_deflate.so
    LoadModule log_config_module /usr/libexec/apache2/mod_log_config.so
    LoadModule log_forensic_module /usr/libexec/apache2/mod_log_forensic.so
    LoadModule logio_module /usr/libexec/apache2/mod_logio.so
    LoadModule env_module /usr/libexec/apache2/mod_env.so
    LoadModule mime_magic_module /usr/libexec/apache2/mod_mime_magic.so
    LoadModule cern_meta_module /usr/libexec/apache2/mod_cern_meta.so
    LoadModule expires_module /usr/libexec/apache2/mod_expires.so
    LoadModule headers_module /usr/libexec/apache2/mod_headers.so
    LoadModule ident_module /usr/libexec/apache2/mod_ident.so
    LoadModule usertrack_module /usr/libexec/apache2/mod_usertrack.so
    LoadModule setenvif_module /usr/libexec/apache2/mod_setenvif.so
    LoadModule version_module /usr/libexec/apache2/mod_version.so
    LoadModule proxy_module /usr/libexec/apache2/mod_proxy.so
    LoadModule proxy_connect_module /usr/libexec/apache2/mod_proxy_connect.so
    LoadModule proxy_ftp_module /usr/libexec/apache2/mod_proxy_ftp.so
    LoadModule proxy_http_module /usr/libexec/apache2/mod_proxy_http.so
    LoadModule proxy_scgi_module /usr/libexec/apache2/mod_proxy_scgi.so
    LoadModule proxy_ajp_module /usr/libexec/apache2/mod_proxy_ajp.so
    LoadModule proxy_balancer_module /usr/libexec/apache2/mod_proxy_balancer.so
    LoadModule ssl_module /usr/libexec/apache2/mod_ssl.so
    LoadModule mime_module /usr/libexec/apache2/mod_mime.so
    LoadModule dav_module /usr/libexec/apache2/mod_dav.so
    LoadModule status_module /usr/libexec/apache2/mod_status.so
    LoadModule autoindex_module /usr/libexec/apache2/mod_autoindex.so
    LoadModule asis_module /usr/libexec/apache2/mod_asis.so
    LoadModule info_module /usr/libexec/apache2/mod_info.so
    LoadModule cgi_module /usr/libexec/apache2/mod_cgi.so
    LoadModule dav_fs_module /usr/libexec/apache2/mod_dav_fs.so
    LoadModule vhost_alias_module /usr/libexec/apache2/mod_vhost_alias.so
    LoadModule negotiation_module /usr/libexec/apache2/mod_negotiation.so
    LoadModule dir_module /usr/libexec/apache2/mod_dir.so
    LoadModule imagemap_module /usr/libexec/apache2/mod_imagemap.so
    LoadModule actions_module /usr/libexec/apache2/mod_actions.so
    LoadModule speling_module /usr/libexec/apache2/mod_speling.so
    LoadModule userdir_module /usr/libexec/apache2/mod_userdir.so
    LoadModule alias_module /usr/libexec/apache2/mod_alias.so
    LoadModule rewrite_module /usr/libexec/apache2/mod_rewrite.so
    LoadModule hfs_apple_module /usr/libexec/apache2/mod_hfs_apple.so
    
    # These can also be turned into an Include. 
    PidFile logs/httpd.pid
    LockFile logs/httpd.lock
    
    # Can be substituted for a variable in an Include.
    Listen 8099
    NameVirtualHost *:8099
    
    # Just put this here to stop the startup error. Can be replaced with something else.
    ServerName test
    
    Include /etc/apache2/extra/httpd-autoindex.conf
    Include /etc/apache2/extra/httpd-default.conf
    Include /etc/apache2/extra/httpd-info.conf
    
    <VirtualHost *:8099>
        DocumentRoot /Users/doe/site/public
        <Directory />
            Options FollowSymLinks
            AllowOverride None
        </Directory>
    
        ErrorLog logs/error.log
    
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
    
    </VirtualHost>
    
    模块、侦听端口、php、pid和锁定文件位置等的配置可以移动到外部包含,由管理员而不是用户控制。然后,您可以向用户提供一个基线模板httpd.conf文件、一个简单的start/stop/reload/etc.wrapper,并让所有用户都能够启动自己的网站


    考虑到这是一个Mac OS环境,您需要安装的越少,管理就越简单。

    对于遇到同样问题的人来说,我想要的东西和前面提到的包一样简单,但不依赖于安装node.js

    我的用例是寻找一个用于中的webrick服务器的替代品。Webrick和大多数轻量级RunAnywhere http服务器一样,不支持.htaccess文件

    所以我接受了gpilotino的答案,把它包装了一点。我已经用了几个星期了,虽然我相信它可以在完成任务后得到改进。它作为一个脚本和一个最小的httpd.conf文件提供,这使得它易于扩展以支持(比如)PHP

    您可以在以下网址找到:

    基本上,一旦安装(可选配置调整),您只需运行:

    apache-d文档根目录-p{port}

    以及:

    apachestop{port}


    完成后。

    希望您能找到解决方案。我讨厌,我不喜欢。所以我写了这个:

    #!/bin/bash
    cat >._apache2_dir_conf << EOF
    Include /etc/apache2/mods-enabled/*.load
    Include /etc/apache2/mods-enabled/*.conf
    ErrorLog $1/._apache2_dir_error.log
    HostnameLookups Off
    NameVirtualHost *:$2
    ServerName joyeruc
    Listen $2
    PidFile $1/._apache2_pid
    <VirtualHost *:$2>
        ServerAdmin joyer@uc
        DocumentRoot $1
        <Directory />
            Options FollowSymLinks
            AllowOverride None
        </Directory>
        <Directory $1/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
        </Directory>
        ErrorLog $1/._apache2_dir_error.log
        LogLevel warn
    </VirtualHost>
    
    EOF
    
    #apache2 -k $3 -X -f $1/._apache2_dir_conf
    apache2 -X -f $1/._apache2_dir_conf
    
    #/bin/bash
    
    cat>\u apache2\u dir\u conf home目录中的一个.globalhtaccess文件会让人吃惊,为什么你要寻找一种与传统虚拟主机相反的方法?我指的是你用指令定义的那些。500赏金看起来很诱人,但它并没有回答你的问题。在生产中,应使用
    apachectl
    命令(重新)启动和停止。并使用VirtualHost指令正确配置基于端口的主机。如何做到这一点是一个广泛的问题。至少需要一个人来回答。在考虑自己的生产配置之前,先研究并理解其他默认配置,如Debian或OpenBSD。生产的便利性不仅仅是一个班轮;它不会因为服务器停机而从你的夜间睡眠中被调用。或者init/service脚本,不管是在你的平台上,而不是apachectl。看起来相当差劲。这应该使用包管理器,而不是一次性tarball。“El cheapo.htaccess支持”并不是我想要的。“快速肮脏的SSL/TLS支持”听起来也很糟糕。真的很酷!我得到了这个输出:$/pache 1026用法:mktemp[-d][-q][-t前缀][-u]模板…–mktemp[-d][-q][-u]-t前缀––./pache:第6行:/usr/sbin/apache2:没有这样的文件或目录–––––./pache:第7行:-CListen 1026:未找到命令,因此我打算从自制中安装最新的apache。。默认情况下,这是在自制副本中,而不是常规自制中。我认为这应该更新到2.4.4,但我不应该在不禁用调试的情况下安装它以使用您的方法吗?好的,有三种方法将其置于前台。使用-X(调试标志)、使用-DFOREGOUND、使用-DNO_DETACH。最近的两个应该独立于--disable debug标志。你能试试这个吗?“apache2”必须指向本地apache安装二进制文件。因此,我没有apache2命令,而是httpd命令。我改了。然后。。不要使用sudo。J
    sudo umount /var/www
    
    # Can be substituted with an Include statement, which all httpd.conf can pull in.
    # Included here for simplicity/single file example.
    LoadModule authn_file_module /usr/libexec/apache2/mod_authn_file.so
    LoadModule authn_dbm_module /usr/libexec/apache2/mod_authn_dbm.so
    LoadModule authn_anon_module /usr/libexec/apache2/mod_authn_anon.so
    LoadModule authn_dbd_module /usr/libexec/apache2/mod_authn_dbd.so
    LoadModule authn_default_module /usr/libexec/apache2/mod_authn_default.so
    LoadModule authz_host_module /usr/libexec/apache2/mod_authz_host.so
    LoadModule authz_groupfile_module /usr/libexec/apache2/mod_authz_groupfile.so
    LoadModule authz_user_module /usr/libexec/apache2/mod_authz_user.so
    LoadModule authz_dbm_module /usr/libexec/apache2/mod_authz_dbm.so
    LoadModule authz_owner_module /usr/libexec/apache2/mod_authz_owner.so
    LoadModule authz_default_module /usr/libexec/apache2/mod_authz_default.so
    LoadModule auth_basic_module /usr/libexec/apache2/mod_auth_basic.so
    LoadModule auth_digest_module /usr/libexec/apache2/mod_auth_digest.so
    LoadModule cache_module /usr/libexec/apache2/mod_cache.so
    LoadModule disk_cache_module /usr/libexec/apache2/mod_disk_cache.so
    LoadModule mem_cache_module /usr/libexec/apache2/mod_mem_cache.so
    LoadModule dbd_module /usr/libexec/apache2/mod_dbd.so
    LoadModule dumpio_module /usr/libexec/apache2/mod_dumpio.so
    LoadModule reqtimeout_module /usr/libexec/apache2/mod_reqtimeout.so
    LoadModule ext_filter_module /usr/libexec/apache2/mod_ext_filter.so
    LoadModule include_module /usr/libexec/apache2/mod_include.so
    LoadModule filter_module /usr/libexec/apache2/mod_filter.so
    LoadModule substitute_module /usr/libexec/apache2/mod_substitute.so
    LoadModule deflate_module /usr/libexec/apache2/mod_deflate.so
    LoadModule log_config_module /usr/libexec/apache2/mod_log_config.so
    LoadModule log_forensic_module /usr/libexec/apache2/mod_log_forensic.so
    LoadModule logio_module /usr/libexec/apache2/mod_logio.so
    LoadModule env_module /usr/libexec/apache2/mod_env.so
    LoadModule mime_magic_module /usr/libexec/apache2/mod_mime_magic.so
    LoadModule cern_meta_module /usr/libexec/apache2/mod_cern_meta.so
    LoadModule expires_module /usr/libexec/apache2/mod_expires.so
    LoadModule headers_module /usr/libexec/apache2/mod_headers.so
    LoadModule ident_module /usr/libexec/apache2/mod_ident.so
    LoadModule usertrack_module /usr/libexec/apache2/mod_usertrack.so
    LoadModule setenvif_module /usr/libexec/apache2/mod_setenvif.so
    LoadModule version_module /usr/libexec/apache2/mod_version.so
    LoadModule proxy_module /usr/libexec/apache2/mod_proxy.so
    LoadModule proxy_connect_module /usr/libexec/apache2/mod_proxy_connect.so
    LoadModule proxy_ftp_module /usr/libexec/apache2/mod_proxy_ftp.so
    LoadModule proxy_http_module /usr/libexec/apache2/mod_proxy_http.so
    LoadModule proxy_scgi_module /usr/libexec/apache2/mod_proxy_scgi.so
    LoadModule proxy_ajp_module /usr/libexec/apache2/mod_proxy_ajp.so
    LoadModule proxy_balancer_module /usr/libexec/apache2/mod_proxy_balancer.so
    LoadModule ssl_module /usr/libexec/apache2/mod_ssl.so
    LoadModule mime_module /usr/libexec/apache2/mod_mime.so
    LoadModule dav_module /usr/libexec/apache2/mod_dav.so
    LoadModule status_module /usr/libexec/apache2/mod_status.so
    LoadModule autoindex_module /usr/libexec/apache2/mod_autoindex.so
    LoadModule asis_module /usr/libexec/apache2/mod_asis.so
    LoadModule info_module /usr/libexec/apache2/mod_info.so
    LoadModule cgi_module /usr/libexec/apache2/mod_cgi.so
    LoadModule dav_fs_module /usr/libexec/apache2/mod_dav_fs.so
    LoadModule vhost_alias_module /usr/libexec/apache2/mod_vhost_alias.so
    LoadModule negotiation_module /usr/libexec/apache2/mod_negotiation.so
    LoadModule dir_module /usr/libexec/apache2/mod_dir.so
    LoadModule imagemap_module /usr/libexec/apache2/mod_imagemap.so
    LoadModule actions_module /usr/libexec/apache2/mod_actions.so
    LoadModule speling_module /usr/libexec/apache2/mod_speling.so
    LoadModule userdir_module /usr/libexec/apache2/mod_userdir.so
    LoadModule alias_module /usr/libexec/apache2/mod_alias.so
    LoadModule rewrite_module /usr/libexec/apache2/mod_rewrite.so
    LoadModule hfs_apple_module /usr/libexec/apache2/mod_hfs_apple.so
    
    # These can also be turned into an Include. 
    PidFile logs/httpd.pid
    LockFile logs/httpd.lock
    
    # Can be substituted for a variable in an Include.
    Listen 8099
    NameVirtualHost *:8099
    
    # Just put this here to stop the startup error. Can be replaced with something else.
    ServerName test
    
    Include /etc/apache2/extra/httpd-autoindex.conf
    Include /etc/apache2/extra/httpd-default.conf
    Include /etc/apache2/extra/httpd-info.conf
    
    <VirtualHost *:8099>
        DocumentRoot /Users/doe/site/public
        <Directory />
            Options FollowSymLinks
            AllowOverride None
        </Directory>
    
        ErrorLog logs/error.log
    
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
    
    </VirtualHost>
    
    export PATH=/usr/sbin:$PATH
    httpd -f /Users/doe/site/conf/httpd.conf  -d `pwd` -T  -k start
    
    #!/bin/bash
    cat >._apache2_dir_conf << EOF
    Include /etc/apache2/mods-enabled/*.load
    Include /etc/apache2/mods-enabled/*.conf
    ErrorLog $1/._apache2_dir_error.log
    HostnameLookups Off
    NameVirtualHost *:$2
    ServerName joyeruc
    Listen $2
    PidFile $1/._apache2_pid
    <VirtualHost *:$2>
        ServerAdmin joyer@uc
        DocumentRoot $1
        <Directory />
            Options FollowSymLinks
            AllowOverride None
        </Directory>
        <Directory $1/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
        </Directory>
        ErrorLog $1/._apache2_dir_error.log
        LogLevel warn
    </VirtualHost>
    
    EOF
    
    #apache2 -k $3 -X -f $1/._apache2_dir_conf
    apache2 -X -f $1/._apache2_dir_conf