27

コマンドラインからapacheサーバーを起動できるようにしたいのですが、次のように入力しますapache site-folderapache . --port=2000

これはファイルを読み取って使用する必要があり.htaccessます。

私は知っていてpython -m SimpleHTTPServer、それは私が必要としているものに近いですが、完全ではありません。

理想的なソリューション:

  1. apache自体に優れたコマンドラインインターフェイスを提供する
  2. apache(または何か)をラップ/含む簡単なコマンドラインツールを作成する
  3. apacheの既存のCLIのドキュメントへのリンク

入力したいだけですcommand <Directory> --port=8000 --other-options

コマンド名は次のようにもなりますpache

ある時点で、これを本番環境で使用したいと思うかもしれません。プロセスをバックグラウンドに送信してから、そのインスタンスまたはすべてのインスタンスを永久に停止するのは簡単です。

関連リンク: http: //httpd.apache.org/docs/2.4/programs/httpd.html

また

すぐに使用できるようにスクリプトをインストールするのは、誰にとっても1つのコマンドだけである必要があります

4

7 に答える 7

17

apacheデバッグモード(-X)はどうですか?

apache2 -X -d. -f.htaccess -C"PidFile `mktemp`"  -C"Listen 1025" 
-C"ErrorLog /dev/stdout" -C"DocumentRoot `pwd`"

起動後にバックグラウンドに配置するには、Ctrl^Zを使用して「bg」と入力します。

FOREGROUNDフラグを使用して、シェルスクリプトでラップします。

#!/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

それを「pache」、chmod + xと呼ぶと、実行できます

./pache 1026 /tmp/webroot
于 2013-04-05T11:46:27.317 に答える
7

http-serverpacheよりもはるかに優れたシンプルなhttpサーバーであり、私が現在使用しているものです。:)

[pache][1]を使用する

npmでインストール-ここにノードが付属しています:http://nodejs.org/

sudo npm install pache -g

現在のディレクトリ、ポート3000で実行します。

pache

または、ディレクトリとポートを指定します。

pache site-directory 2000

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

于 2013-04-11T11:20:35.207 に答える
4

これは機能します:

あなたのapache設定は/var/wwwを指すことができます

次に、以下を使用します。

sudo mount -o bind /home/webcreatorperson/mywebsite /var/www

使用のバインドを解除するには:

sudo umount /var/www

複数のポートが必要な場合は、/ var / www/8000などのディレクトリを指すようにapacheのポートを事前設定できます。

于 2013-04-11T14:01:19.360 に答える
1

自分のやりたいことが正確にできるガトリングを使ってみませんか?

http://www.fefe.de/gatling/

于 2013-04-04T19:13:02.680 に答える
1

同じ質問でこれに遭遇した人のために、私は前述のpacheパッケージと同じくらい単純なものが欲しかったのですが、node.jsがインストールされていることに依存していませんでした。

私のユースケースは、 Jekyllで使用されているwebrickサーバーの代替品を探すことでした。Webrickは、ほとんどの軽量などこでも実行できるhttpサーバーと同様に、.htaccessファイルをサポートしていません。

それで、私はgpilotinoの答えを受け取り、それを少しパッケージ化しました。私はそれを数週間使用していますが、仕事をすることで改善できると確信しています。これは、スクリプトと最小限のhttpd.confファイルとして提供され、PHPなどをサポートするように簡単に拡張できます。

あなたはそれを見つけることができます:https ://github.com/julianbrowne/apache-anywhere

基本的に、インストール(オプションで構成を微調整)したら、次のコマンドを実行するだけです。

apache -d document_root_directory -p {port}

と:

apache stop {port}

終わったら。

于 2014-05-23T14:31:58.330 に答える
1

あなたがあなたの解決策を見つけることを願っています。私は.htaccessが嫌いです。だから私はこれを書いた:

#!/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
于 2014-06-12T06:13:08.307 に答える
0

うーん...面白い。

オンデマンドで、別のポートなどで、別のapacheインスタンスを生成できるようにしたい理由がわかります。

つまり、1つのインスタンスの構成を変更したい場合や、ユーザーがセルフサービスできるようにしたい場合などがあります。

しかし、もっと重要なことは、他のすべての人にとってApacheを壊すことなく、ユーザーにApacheの柔軟性を提供できるようにすることです。これは、大規模な仮想ホスト構成ファイルでは処理できないものです。

私は自分の環境で似たような設定をしています。

いずれの場合も、カスタム設定を使用してMacでApacheを起動するために、これを実行しました。

フォルダ/ファイル:

〜/ site / conf / httpd.conf〜/ site / logs /〜/ site / public /

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>

これは、Apacheのシステム全体のインストールを利用します。

インスタンスを起動するには:

export PATH=/usr/sbin:$PATH
httpd -f /Users/doe/site/conf/httpd.conf  -d `pwd` -T  -k start

モジュール、リッスンされたポート、php、pid、ロックファイルの場所などの構成は、ユーザーではなく管理者によって制御される外部のインクルードに移動できます。次に、ベースラインテンプレートhttpd.confファイル、単純な開始/停止/再読み込みなどをユーザーに提供できます。ラッパーを作成し、すべてのユーザーが自分のWebサイトを起動できるようにします。

Mac OS環境であることを考えると、インストールする必要が少ないほど、管理が簡単になります。

于 2013-04-11T18:13:59.583 に答える