次の問題があります
ホストファイルは次のとおりです。
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倍
Ubuntu 13.10およびそのバリアントはApache 2.4に移行しました。 Apache 2.4は、デフォルトで有効な仮想ホスト設定ファイルが.confで終わることを望んでいます。
ソリューション
この問題を解決するには、同じ結果を得るために使用できる2つの方法があります。
最初の解決策および簡単な解決策は、すべての仮想ホストに.conf拡張子を追加することです。新しいApache 2.4は、新しいApache 2.4構成ファイルで概説されている.conf拡張子を持つsites-availableディレクトリ内の各仮想ホストを読み取ります。
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"
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を具体的に指定することと混合します。これにより、私が抱えていた問題が修正され、現在は問題なく動作しています(うまくいけばうまくいけば、最終的に何かが出てくるかもしれません)。
私は同じ問題を抱えていましたが、これらの上記の投稿はどれもうまくいきませんでした。後で、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.6
のUbuntu 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.localhost
のIP
を127.0.1.1
から127.0.0.1
に変更します
http://mysite.localhost
とhttp://localhost
にアクセスしてください
:)
<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>
多くの試行錯誤の後
これがお役に立てば幸いです。
よろしく、
このトピックについて髪を引っ張っている人への注意点として、AWSインスタンスを使用している場合は、これらすべての設定にSudoを使用する必要があります。
Sudo a2ensite example.com
Apacheを再起動する場合でも、これを行う必要があることに注意してください。変更が行われていない場合、これが原因である可能性があります。
Sudo service Apache2 restart
実行:
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>
Kubuntu 14.04およびApache 2.4.7の場合
上記の提案を試しても、アクセス許可の問題が解決しないうちに、「chmod 755 $ HOME」が機能しました。マルチユーザーシステムでは使用しないでください。