Ubuntu(11.04)をインストールしました。
Apache/mysql/phpなどをインストールしました。
いくつかのサイトがあります
/var/www/site1
/var/www/site2
/var/www/site3
これらにアクセスできるようにしたい
http://site1.local
http://site2.local
http://site3.local
私のホストファイルには
127.0.0.1 site1.local
127.0.0.1 site2.local
127.0.0.1 site3.local
その後、/etc/Apache2/sites-available/default
を3回コピーしました。
だから今私は持っています:
/etc/Apache2/sites-available/site1
/etc/Apache2/sites-available/site2
/etc/Apache2/sites-available/site3
これらはすべて(適切なsitex名で)見える
<VirtualHost site1.local>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/site1
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/site1/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${Apache_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${Apache_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
ターミナルで次に呼び出します
Sudo a2ensite site1 site2 site3 && Sudo /etc/init.d/Apache2 reload
Vhostsの1つだけが同時に動作することを除いて、動作するようです(デフォルトを含む)、私は何を間違っていますか?
- Webサーバー設定Apache2の再読み込み
Apache2:サーバーの完全修飾ドメイン名を確実に判断できませんでした。
ServerNameに127.0.1.1を使用
[2011年4月15日金曜日10:45:27] [警告] NameVirtualHost *:80にはVirtualHostsがありません
ファイル:/ etc/hosts
127.0.0.1 site1.local
127.0.0.1 site2.local
127.0.0.1 site3.local
ファイル:/ etc/Apache2/Apache2.conf
[...]
NameVirtualHost *:80
[...]
ファイル:/ etc/Apache2/sites-available/site {i} .local.conf({i}の代わりに番号を挿入:1または2または3)
<VirtualHost *:80>
ServerName site{i}.local
ServerAdmin webmaster@localhost
DocumentRoot /var/www/site{i}
[...]
</VirtualHost>
ディレクトリ/ etc/Apache2/sites-enabled /シンボリックリンクを作成します。
@site{i}.local.conf
Apacheを再起動して楽しんでください:)
これを簡単にするスクリプトがあります- https://github.com/RoverWire/virtualhost
これは最終的に、与えられた答えによって説明されたものと同じシンを行いますが、たった1つのコマンドでそれを行います。 -
Sudo virtualhost create mysite.local my_site
また、作成したホストを削除することもできます
Sudo virtualhost delete mysite.local my_site
「my_dir」は、/ var/wwwの後に開始すると想定していることに注意してください。
したがって、サイトフォルダーが/ var/www/my_siteにある場合
これを実行する必要があります(/ var/wwwなしでディレクトリパスを渡す)-
Sudo virtualhost create mysite.local my_site
また、スクリプトファイルを変更し、デフォルトパス「/ var/www」を削除して、サイトディレクトリへの絶対パスを渡すこともできます。