シェルスクリプトを使用してApacheドキュメントルートをインポートする

シェルスクリプトを使用してApacheドキュメントルートをインポートする

私はRPMを作成しており、初期段階でWebアプリケーションファイルをそこにコピーできるようにApacheのドキュメントルートを決定したいと思います。

まず、Apacheがインストールされていることを確認してください。 Apacheがインストールされている場合、スクリプトはドキュメントのルートパラメータを含むhttpd.confファイルの場所を見つけます。しかし、コマンドの返却を処理する方法がわかりませんfind / -name httpd.conf。私はシェルスクリプトとRPMを初めて使用します。また、これが可能かどうか疑問に思います。目的は、多くの手動介入なしにすべてのシステムに展開できるRPMを持つことです。以下は私の計画のコードです。まだ機能していません

if [ "$(expr substr $(httpd -v) 17 6)" == "Apache"]; then
    echo "Apache is installed";
    find / -name httpd.conf
    //need to handle the return of find and store to a location var to be used on the next line
    grep -i 'DocumentRoot' $location/httpd.conf
    //need to store the return document root to a var
el
    echo "Apache is not installed";
fi

ベストアンサー1

他のファイルを含む複数の.confファイルがある可能性があるため、作業は思ったよりも難しいです。

出力を確認すると、マイルを取得できます。

httpd -Sまたはapachectl -Sまたはapache2ctl -S(配布板によって異なります)

現在定義されている仮想ホストの名前とそのホストが定義されている場所に関する情報を印刷します。

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
_default_:443          a.example.com (/etc/httpd/conf.d/ssl.conf:74)
*:80                   is a NameVirtualHost
         default server b.example.com (/etc/httpd/conf/httpd.conf:1010)
         port 80 namevhost b.example.com (/etc/httpd/conf/httpd.conf:1010)

これは仮想ホスト/etc/httpd/conf.d/ssl.confです。/etc/httpd/conf/httpd.conf

おすすめ記事