web-dev-qa-db-ja.com

ubuntu 13.10およびApache 2.4.6の仮想ホスト

次の問題があります
ホストファイルは次のとおりです。

127.0.0.1       localhost
127.0.1.1       barbala4o-HP-ProBook-4530s
127.0.1.1       mysite.localhost

/etc/Apache2/sites-available/mysite.localhost.conf内のファイルは次のとおりです。

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName mysite.localhost

        DocumentRoot /var/www/mysite

        <Directory /var/www/mysite/>
                Options Indexes FollowSymLinks
                AllowOverride All
                Require all granted
        </Directory>
        ErrorLog /var/log/Apache2/mysite-error.log
        CustomLog /var/log/Apache2/mysite-access.log common
</VirtualHost>

Sudo a2ensite mysite.localhost.confを実行し、mysite.localhost /でApacheを再起動すると、localhostでのみ次のようになります(インデックスファイルのないディレクトリをリストするなど)。

Index of /

[ICO]   Name    Last modified   Size    Description
[DIR]   Apache_logs/    2013-09-24 10:15     -   
[DIR]   mysql/  2013-10-22 10:05     -   
[DIR]   tools/  2013-10-22 10:05

そして、/var/www/ファイルをロードする代わりにlocalhost/testと入力すると、testのようなindex.phpディレクトリ内の他のフォルダーに次のように表示されます。

Not Found

The requested URL /adlantic was not found on this server.

Apache/2.4.6 (Ubuntu) Server at localhost Port 80   

Sudo a2dissite mysite.confを実行してApacheを再起動すると、すべてが正常にロードされます。問題はmysite.localhost.confのどこかにあると思いますが、どこにあるかわかりません。何か案は? 10倍

39

Ubuntu 13.10およびそのバリアントはApache 2.4に移行しました。 Apache 2.4は、デフォルトで有効な仮想ホスト設定ファイルが.confで終わることを望んでいます。

ソリューション

この問題を解決するには、同じ結果を得るために使用できる2つの方法があります。

  1. 最初の解決策および簡単な解決策は、すべての仮想ホストに.conf拡張子を追加することです。新しいApache 2.4は、新しいApache 2.4構成ファイルで概説されている.conf拡張子を持つsites-availableディレクトリ内の各仮想ホストを読み取ります。

  2. 2番目の解決策は、/ etc/Apache2/Apache2.confにあるApache 2.4構成ファイルの.conf拡張子を削除することです

古いApache 2.2ファイルでは、.confファイルにはInclude sites-enabled /がありましたが、新しい.confファイルには

# Include the virtual Host configurations:
IncludeOptional sites-enabled/*.conf

その行を次のように変更します。

# Include the virtual Host configurations:
IncludeOptional sites-enabled/

結果:コマンドa2ensite yourdomainが期待どおりに実行されるようになりました。 2番目の方法を使用している場合;仮想ホストファイルに.conf拡張子を付ける必要はありません。

Note: Configuration file is "/etc/Apache2/Apache2.conf" in new Apache, so please copy document root path and other configurations from "/etc/Apache2/sites-available/000-default.conf" to  "/etc/Apache2/Apache2.conf"
56
Anjith K P

3時間の実験の後、問題が見つかりました。どうやら新しいUbuntu 13.10では、何らかの愚かな理由で、仮想ホストのconfファイルは次のように見える必要があります。

<VirtualHost mysite.localhost>
        ServerAdmin [email protected]
        ServerName  mysite.localhost
        ServerAlias mysite.localhost

        # Indexes + Directory Root.
        DocumentRoot /var/www/mysite/public_html

         <Directory /var/www/mysite/public_html/>
                DirectoryIndex index.php
                Options Indexes FollowSymLinks
                AllowOverride All
                Require all granted
        </Directory>

        # Logfiles
        ErrorLog /var/log/Apache2/mysite-error.log
        CustomLog /var/log/Apache2/mysite-access.log common
</VirtualHost>

どうやらUbuntu 13.10を開発した人たちは、使用する価値がなくなったと判断したようです。

<VirtualHost *:80> 

仮想ホストを作成するとき、代わりに

<VirtualHost mysite.localhost>

directoryIndexを具体的に指定することと混合します。これにより、私が抱えていた問題が修正され、現在は問題なく動作しています(うまくいけばうまくいけば、最終的に何かが出てくるかもしれません)。

13

私は同じ問題を抱えていましたが、これらの上記の投稿はどれもうまくいきませんでした。後で、ApacheとPHPのすべての構成ファイルを読んで確認しました。

Apache2.conf(ubuntu 13.10)には、というフラグがあることがわかりました

HostnameLookups off

デフォルトではこれはオフに設定されますが、これを

HostnameLookups on

そうすることで、Apacheはホストエントリとvhost configをうまく起動し始めました。

また、以下は私の実際のVhostファイルです。私はそれを機能させていた

オフコースVhostディレクティブにRequire all grantedを追加することもお勧めします。

<VirtualHost *:80>
    ServerName test.yoursite.domain.in
    DocumentRoot path_to_code_base/public
    <Directory path_to_code_base/public>
        Options -Indexes
        Require all granted
        DirectoryIndex index.php
        AllowOverride All
    </Directory>
    ErrorLog  /path_to_code_base/logs/error.log
    LogLevel warn
    CustomLog /path_to_code_base/logs/access.log  combined
</VirtualHost> 

Ubuntuを13.10から13.04にダウングレードするのに時間を無駄にしたくない人のために、これを投稿しています。

私はこれをブログで見ません。また、hostnameLookupsの実際の意味を理解できませんでした。

お役に立てれば 。

Apache 2.4.6Ubuntu 13.10の場合、

あなたが持っています

/etc/Apache2/Apache2.conf
/etc/Apache2/sites-available/000-default.conf

そして

/etc/Apache2/sites-enabled/000-default.conf指す/etc/Apache2/sites-available/000-default.conf

次に、Apache2.confを編集して追加します

<Directory /home/my_site/public_html/>
    #YOUR SETTINGS
</Directory>

sites-available/000-default.confを編集し、<VirtualHost *:80><VirtualHost localhost:80>に変更して、デフォルト設定をApacheが(ポート80で)待機するようにします。

mysite.localhostを機能させるには、これをsites-available/000-default.confに追加します

<VirtualHost mysite.localhost:80>
    ServerName mysite.localhost

    ServerAdmin [email protected]

    DocumentRoot /home/my_new_site_public_html

    ErrorLog ${Apache_LOG_DIR}/error.log
    CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>

/etc/hosts/ファイルを編集して、mysite.localhostIP127.0.1.1から127.0.0.1に変更します

http://mysite.localhosthttp://localhostにアクセスしてください

:)

2
Harsh Vakharia
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName mysite.localhost

        DocumentRoot /var/www/mysite

        <Directory /var/www/mysite/>
                Options Indexes FollowSymLinks
                AllowOverride All
                Require all granted
        </Directory>
        ErrorLog /var/log/Apache2/mysite-error.log
        CustomLog /var/log/Apache2/mysite-access.log common
</VirtualHost>

私の場合、<VirtualHost *:80>から<VirtualHost mysite.localhost:80>多くの試行錯誤の後

これがお役に立てば幸いです。

よろしく、

1
Junaid Qadir

このトピックについて髪を引っ張っている人への注意点として、AWSインスタンスを使用している場合は、これらすべての設定にSudoを使用する必要があります。

Sudo a2ensite example.com

Apacheを再起動する場合でも、これを行う必要があることに注意してください。変更が行われていない場合、これが原因である可能性があります。

Sudo service Apache2 restart
0
steve

実行:
vimは、nano、picoなどのお気に入りのテキストエディターで変更できます。

vim /etc/Apache2/Apache2.conf

元のファイル:

# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual Host.
<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share/>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

なしをすべてに変更

ファイルを編集:

# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual Host.
<Directory />
        Options FollowSymLinks
        AllowOverride All
        Require all denied
</Directory>

<Directory /usr/share/>
        AllowOverride All
        Require all granted
</Directory>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
0
user3419164

Kubuntu 14.04およびApache 2.4.7の場合

上記の提案を試しても、アクセス許可の問題が解決しないうちに、「chmod 755 $ HOME」が機能しました。マルチユーザーシステムでは使用しないでください。

0
Mak