web-dev-qa-db-ja.com

Apache vhostsとubuntu hostsファイルを編集していますか?

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がありません
5
Hailwood

ファイル:/ 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を再起動して楽しんでください:)

8
vbert

これを簡単にするスクリプトがあります- 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」を削除して、サイトディレクトリへの絶対パスを渡すこともできます。

0
Nitish Dhar