5

私は Mac OSX 10.6 を使用しており、その上で Web 開発を行っています。シェルスクリプトの書き方については少し知っていますが、まだあまり詳しくありません。

私がやりたいことは、単純にローカル サイト エイリアスとドキュメント ディレクトリを要求するシェル スクリプトを作成し、ホストに新しいエイリアスを "127.0.0.1 mysite.local" のような新しい行に追加することです。 etc/hosts の一番下にあります。

次に、スクリプトは Apache の httpd-vhosts.conf ファイルに次のような内容を追加します。

<VirtualHost *:80>
    DocumentRoot "/Repositories/myproject/mysite.com/trunk/htdocs"
    ServerName mysite.local
    ServerAlias mysite.localhost
</VirtualHost>

次に、最終的にコマンドを実行して Apache サーバーを再起動します。これで、Apache を再起動するための端末コマンドがわかったので、これは非常に簡単です。また、スクリプトを実行しているユーザーからサイト名とパスを読み取る方法も知っています。以下のように:

#!/bin/bash
read -p "New local site name: " site
read -p "Site path (ex:/Repositories/myproject/mysite.com/trunk/htdocs): " sitepath

どうすればよいかわからないのは、端末からファイルにテキストを追加することです。

考えや役立つアイデアはありますか?

ありがとう、パトリック

4

2 に答える 2

10

テストされていませんが、動作するはずです:

#!/bin/bash
read -p "New local site name: " SITE
read -p "Site path (ex:/Repositories/myproject/mysite.com/trunk/htdocs): " SITEPATH

#/etc/hosts
cp /etc/hosts /etc/hosts.original
echo -e "127.0.0.1\t${SITE}.local" >> /etc/hosts

#httpd-vhosts.conf
VHOSTSFILE="/etc/apache2/httpd-vhosts.conf"
cp $VHOSTSFILE ${VHOSTSFILE}.original
echo "<VirtualHost *:80>" >> $VHOSTSFILE
echo -e "\tDocumentRoot \"${SITEPATH}\"" >> $VHOSTSFILE
echo -e "\tServerName ${SITE}.local" >> $VHOSTSFILE
echo -e "\tServerAlias ${SITE}.localhost" >> $VHOSTSFILE
echo '</VirtualHost>' >> $VHOSTSFILE

#restart apache

>>出力を指定されたファイルにリダイレクトし、コンテンツをファイルに追加します。タブ文字に展開-eできるようにするためにも使用しています。\t

でこのスクリプトを実行する必要があることに注意してくださいsudo。念のため、元のファイルを変更する前にバックアップするコマンドも含めました。

于 2011-05-06T22:45:55.573 に答える