web-dev-qa-db-ja.com

Apacheは「javascript」ディレクトリのファイルを提供しません。どうして?

突然、私は_http://example.localhost/javascript/jquery.min.js_のようなファイルに対して404を取得し始めました

以前はすべてうまくいきました。少なくとも手動ではなく、構成を変更しませんでした。

しかし、_/javascript_ディレクトリ自体にアクセスしようとすると、Apacheエラーログに"Cannot serve directory /usr/share/javascript/: No matching DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm) found, and server-generated directory index forbidden by Options directiveが表示されます。

15
uKolka

スタックオーバーフローでこれに対する解決策を見つけようとしましたが、できませんでした。したがって、誰かが同じ問題に遭遇した場合、私はこれをここに残します。

それでは、なぜVirtualHostで構成したのではなく、/ usr/share/javascriptで地獄を探すのでしょうか。それを理解するために、私は次のようなことをしました:

$ cd /etc/Apache2
$ grep -R Alias * | grep share

...
conf-enabled/javascript-common.conf:Alias /javascript /usr/share/javascript/
...

その構成ファイル名をグーグル検索した後、私は いくつかの説明 を見つけました。

理由はわかりませんが、 javascript-common パッケージをインストールしました。それを取り除くことは害がないように見えるので、$ Sudo apt-get purge javascript-common問題を解決しました。

23
uKolka

issue

JavaScriptを使用するWebアプリケーションは、HTTP経由でJavaScriptを配布する必要があります。すべてのスクリプトに共通のパスを使用すると、すべてのパッケージのHTTPサーバーでこのパスを有効にする必要がなくなります。

これは、/usr/share/javascriptエイリアスを作成し、Apache Webサーバーで有効にするパッケージです。

推奨される修正

以上です。あなたはjavascriptディレクトリで他の問題を抱えることはないでしょう。もう1つの修正は、/usr/share/javascript//usr/share/javascript-common/に名前を変更し、名前を変更したディレクトリを指すようにjavascript-common.confのエイリアスを調整することです。これが将来のアップデートに影響するかどうかはまだわかりません。

別の修正:

/etc/Apache2/conf-available/javascript-common.confにアクセスします。あなたはこれを見つけるでしょう:

Alias /javascript /usr/share/javascript/
<Directory "/usr/share/javascript/">
     Options FollowSymLinks MultiViews
</Directory>

したがって、禁止されているエラーを回避するには、これらの行にコメントを付ける必要があります(# charを使用)(conf対応のファイルを直接編集することはお勧めしません)。その後、これを行います:

a2disconf javascript-common
a2enconf javascript-common
7
Tom Sarduy

Confファイルを編集したり、パッケージをパージしたりする必要はありません。無効にするだけです。

a2disconf javascript-common
service Apache2 reload

何らかの理由でその設定を使用したい場合:

a2enconf javascript-common
service Apache2 reload
6
gregjor

Debian マシンを使用していて、a2disconfコマンドがありません。 /etc/Apache2/conf.dディレクトリは/etc/javascript-common/javascript-common.confへのリンクであることがわかりました。

私はそのファイルを(rootとして)編集して、先頭行を次のように変更することにより、/javascript-commonではなくエイリアス/javascriptに変更しました

Alias /javascript-common /usr/share/javascript/

保存してApacheを再起動します。

1

Ubuntuシステムでも同様の問題が発生しました。どうやらjavascript-commonパッケージはある時点でホースされ、configureスクリプトが正しく実行されなかったようです。 javascript-commonを削除してapt-getで再インストールしても修正されません。そうしなければならなかった:

dpkg --purge javascript-common

apt-get install javascript-common

そして、それで問題が解決したようです。これは buntu 16.04 LTS(Xenial Xerus)システムで、 buntu 14.04 LTS(Trusty Tahr)からアップグレードされています。

1
GeorgeB