Codeigniterにdompdfプラグインを使用しています: http://codeigniter.com/wiki/PDF_generation_using_dompdf/
フォームからPDFを生成します。これはローカルホストで機能しますが、ライブサーバーではエラーログにこれが表示されます:
Directory index forbidden by Options directive: /var/www/vhosts/domain.co.uk/httpdocs/mm/userdata/account1/invoices/
これが何を意味するか考えていますか?回答を検索し、httpd.confの編集を提案するものをいくつか見つけましたが、これにアクセスできません。
また、空のindex.htmlファイルをルートおよびドキュメントディレクトリに追加しようとしました(他にも提案されていますが、利用できません)。
どんな助けも大歓迎です。
ありがとう!
このディレクトリまたは近くの親ディレクトリのメインhttpd.conf
または.htaccess
ファイルのいずれかに、おそらく次のものが含まれます。
Options -Indexes
ホストは、+Indexes
へのアクセス権がなく、ディレクトリの内容を一覧表示および参照したい場合、デフォルトの.htaccess
などがない場合は、index.html, index.php
に設定する必要があります。デフォルトのファイルを使用せず、Indexes
を有効にしないでください。その中のコンテンツのファイル名のみを直接ターゲットにできます。
Indexes
オプションは、多くのApacheインストールでデフォルトで一般的に無効になっています。
詳細は Options
のApacheコアドキュメント にあります。
これは、そのディレクトリにデフォルトのドキュメントがないことを意味します(index.html、index.phpなど)。ほとんどのWebサーバーでは、ディレクトリのコンテンツのリストが表示されることを意味します。ただし、そのディレクトリの表示はサーバー構成によって禁止されています(Options -Indexes
)
Index.htmlまたはindex.phpファイルを含まないディレクトリのWebブラウザに表示されるインデックス。
Scientific Linuxのhttpd Webサーバーの設定で、これらのインデックスの表示を停止するのに苦労しました。
httpd.conf仮想ホストディレクトリディレクティブ:
<Directory /home/mydomain.com/htdocs>
Options FollowSymLinks
AllowOverride all
Require all granted
</Directory>
.htaccessに次の行を追加します。
Options -Indexes
ディレクトリインデックスはまだ表示されていました。 .htaccess設定が機能していませんでした!
.htaccessの他の設定が機能していたので、どうしてこれが機能しないのでしょうか?どうしたの?動作するはずです! %#$&^ $%@#!!
Httpd.confのオプション行を次のように変更します。
Options +FollowSymLinks
そして、ウェブサーバーを再起動します。
Apacheのコアmodページから:( https://httpd.Apache.org/docs/2.4/mod/core.html#options )
+または-のオプションとオプションの混在は有効な構文ではないため、サーバーの起動中に中止を伴う構文チェックによって拒否されます。
Voilàディレクトリインデックスは、index.htmlまたはindex.phpファイルを含まないディレクトリでは表示されなくなりました。
このようなディレクトリアクセスが試行されたときに、「error_log」に新しいエントリが表示され始めました。
[Fri Aug 19 02:57:39.922872 2016] [autoindex:error] [pid 12479] [client aaa.bbb.ccc.ddd:xxxxx] AH01276: Cannot serve directory /home/mydomain.com/htdocs/dir-without-index-file/: No matching DirectoryIndex (index.html,index.php) found, and server-generated directory index forbidden by Options directive
このエントリは、エラーメッセージの[autoindex:error]で示されるLogレベルが 'error'のApacheモジュール 'autoindex'からのものです。形式は[module_name:loglevel]です。
これらの新しいエントリのログを停止するには、LogLevelをより高いレベル(「crit」など)に変更して、より少ないログを記録する必要があります(より重大なエラーメッセージのみ)。
LogLevel のApache 2.4のコアディレクティブを参照してください。
emerg、alert、crit、error、warn、notice、info、debug、trace1、trace2、trace3、tracr4、trace5、trace6、trace7、trace8
リスト内の各レベルでは、以前のレベルのすべてのメッセージが記録されます。
Apache 2.4のデフォルトレベルは「警告」です。したがって、emerg、alert、crit、error、およびwarnとして分類されたすべてのメッセージは、error_logに書き込まれます。
Httpd.confの<Directory> .. </ Directory>セクション内に次の行を追加しました。
LogLevel crit
私の仮想ホストのhttpd.conf <Directory> .. </ Directory>構成:
<Directory /home/mydomain.com/htdocs>
Options +FollowSymLinks
AllowOverride all
Require all granted
LogLevel crit
</Directory>
そして、/ home /mydomain.com/ htdocs/.htaccessに追加します。これは、Webサイトの.htaccessファイルのルートディレクトリです。
Options -Indexes
「エラー」レベルのメッセージを気にしない場合は、省略します
LogLevel crit
Webスペース内のディレクトリの自動インデックス作成はもう必要ありません。 .htaccessへの変更はありません。ただし、/ etc/httpdのhttpd設定ファイルにアクセスする必要があります
/etc/httpd/conf.modules.d/00-base.confを編集し、次の行をコメント化します。
LoadModule autoindex_module modules/mod_autoindex.so
その前に#を追加して、ファイルを保存します。
ディレクトリー/etc/httpd/conf.d rename(mv)
Sudo mv autoindex.conf autoindex.conf.<something_else>
Httpdを再起動します。
Sudo httpd -k restart
または
Sudo apachectl restart
Autoindex_modは無効になりました。
自動インデックスモジュールを無効にしてコマンドを入力します
Sudo a2dismod autoindex
自動インデックスモジュールを有効にするには
Sudo a2enmod autoindex
RHELを実行している場合に遭遇する可能性のある別の問題(私はそれに遭遇しました)は、オプションインデックスを配置した場合でも、設定をオーバーライドするhttpdパッケージで構成された既定のウェルカムページがあることです。ファイルは/etc/httpd/conf.d/welcome.confにあります。詳細については、次のリンクを参照してください。 http://wpapi.com/solved-issue-directory-index-forbidden-by-options-directive/
次の行を挿入します。
<Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs">
Options +Indexes
</Directory>
C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf
ファイル内。開発に仮想ホストを使用していると思います。
そして、もちろん、Apacheを再起動するだけです。
これをconf.dに追加すると、この問題は修正されました。
Options +Indexes +FollowSymLinks
私は同じエラーで立ち往生しました、問題は私のコードのMySqlステートメントの構文エラーに起因していました、特に私の$ _session変数にはがありませんでした」 '。エラーログではステートメントが誤解を招くため、それを把握するのに何時間もかかりました。