WebサーバーオートメーションFreeBSD8 Apache2 + Mysql5パート1

たまたま私はひどく怠け者です。 2年前、VDSを購入し、FreeBSD 7.1に初めて会ったとき、必要なすべてを設定するために2週間を費やしました。 現在、2 * Pentium III 1GHz / RAM 1GB / 2 * SCSI 17GBがあり、これは私のタスクに非常に適しています。

  1. ホスト作成
  2. Apache2ログローテーション
  3. Apache2ログのアーカイブと古いログの削除。
  4. データベースを作成し、新しいパスワードを生成して、1つのデータベースのみに対する権限を持つ新しいユーザーを追加します。


私のお気に入りのviエディター。 誰かがそれを扱う方法を知らない場合は、私が私のee、mceditなどに置き換えるためにviを示したどこにでも行くことができます

ホストを作成するスクリプト。
サーバーの構造は次のとおりです。各ユーザーはhomedirにwwwフォルダーを持っています。これは次のようになります。
/ホーム/ユーザー/ www。
wwwフォルダー内のスクリプトは、ホスト名でディレクトリを作成します。

mk_host.sh domain.comユーザーの例
ディレクトリを含むディレクトリdomen.ruは、ディレクトリ/ home / user / wwwに作成されます



ホストもApache2ディレクトリに作成されます。 私のスキームによれば、仮想ホストごとに個別の構成が作成されます。

スクリプト自体を見ます。

vi /root/bin/mk_host.sh
.

if [ $# -eq 2 ] ; then # , <br/>
<br/>
path = / usr / local / etc / apache2 / Includes # . <br/>
domen =$ 1 # <br/>
user =$ 2 # <br/>
pathhome = / home / $user / www # - <br/>
mkdir -p $pathhome / $ 1 / html<br/>
mkdir -p $pathhome / $ 1 / shadow<br/>
mkdir -p $pathhome / $ 1 / cgi-bin<br/>
mkdir -p $pathhome / $ 1 / logs<br/>
chown -R $user : $user $pathhome / $ 1 / # . <br/>
# <br/>
echo "<br/>
#Config for $domen <br/>
<VirtualHost *:80><br/>
DocumentRoot $pathhome / $domen /html/<br/>
ServerName $domen <br/>
ServerAlias www. $domen <br/>
ScriptAlias /cgi-bin/ $pathhome / $domen /cgi-bin/<br/>
CustomLog $pathhome / $domen /logs/web.log common<br/>
ErrorLog $pathhome / $domen /logs/error.log<br/>
</VirtualHost><br/>
#end of $domen "
>> $path / $domen .conf<br/>
else <br/>
# , . <br/>
echo "ERROR" <br/>
echo "$0 domen name_user" <br/>
exit 1 <br/>
fi

vi /root/bin/mk_host.sh
.

if [ $# -eq 2 ] ; then # , <br/>
<br/>
path = / usr / local / etc / apache2 / Includes # . <br/>
domen =$ 1 # <br/>
user =$ 2 # <br/>
pathhome = / home / $user / www # - <br/>
mkdir -p $pathhome / $ 1 / html<br/>
mkdir -p $pathhome / $ 1 / shadow<br/>
mkdir -p $pathhome / $ 1 / cgi-bin<br/>
mkdir -p $pathhome / $ 1 / logs<br/>
chown -R $user : $user $pathhome / $ 1 / # . <br/>
# <br/>
echo "<br/>
#Config for $domen <br/>
<VirtualHost *:80><br/>
DocumentRoot $pathhome / $domen /html/<br/>
ServerName $domen <br/>
ServerAlias www. $domen <br/>
ScriptAlias /cgi-bin/ $pathhome / $domen /cgi-bin/<br/>
CustomLog $pathhome / $domen /logs/web.log common<br/>
ErrorLog $pathhome / $domen /logs/error.log<br/>
</VirtualHost><br/>
#end of $domen "
>> $path / $domen .conf<br/>
else <br/>
# , . <br/>
echo "ERROR" <br/>
echo "$0 domen name_user" <br/>
exit 1 <br/>
fi

vi /root/bin/mk_host.sh
.

if [ $# -eq 2 ] ; then # , <br/>
<br/>
path = / usr / local / etc / apache2 / Includes # . <br/>
domen =$ 1 # <br/>
user =$ 2 # <br/>
pathhome = / home / $user / www # - <br/>
mkdir -p $pathhome / $ 1 / html<br/>
mkdir -p $pathhome / $ 1 / shadow<br/>
mkdir -p $pathhome / $ 1 / cgi-bin<br/>
mkdir -p $pathhome / $ 1 / logs<br/>
chown -R $user : $user $pathhome / $ 1 / # . <br/>
# <br/>
echo "<br/>
#Config for $domen <br/>
<VirtualHost *:80><br/>
DocumentRoot $pathhome / $domen /html/<br/>
ServerName $domen <br/>
ServerAlias www. $domen <br/>
ScriptAlias /cgi-bin/ $pathhome / $domen /cgi-bin/<br/>
CustomLog $pathhome / $domen /logs/web.log common<br/>
ErrorLog $pathhome / $domen /logs/error.log<br/>
</VirtualHost><br/>
#end of $domen "
>> $path / $domen .conf<br/>
else <br/>
# , . <br/>
echo "ERROR" <br/>
echo "$0 domen name_user" <br/>
exit 1 <br/>
fi


そして最後に:
  1. スクリプトはルート権限で実行する必要があります。または、少なくともディレクトリへのアクセス権が必要です。
  2. たとえば、/ root / bin / mk_host.shディレクトリなどのディレクトリにスクリプトを置き、.profileにディレクトリを追加すると、スクリプトへの直接パスを指定せずにどこからでもスクリプトを実行できます。
  3. スクリプトの2つのパラメーターの入力のチェックのみがあります。残念ながら、経験のある人がスクリプトを使用することを期待して、残念ながらもう何もチェックされません。


念のため、スクリプトはオリジナルにあります。

そして、すべてがその場所にあり、棚に置かれているときも大好きです。残りのスクリプトの説明は次の記事にあります。

Source: https://habr.com/ru/post/J96933/


All Articles