編集:これで、エラー500エラーを解決できました。ファイル名にアラビア文字が含まれているプライベートファイルに対して、純粋にDrupalの「FileNotFound」が表示されます。file_managedテーブルを確認しましたが、上記のファイルのファイル名をアラビア語のファイルから英語のファイルに変更すると、エラーはなくなりました。Drupalがファイル名にUnicode(アラビア文字)文字を含むプライベートファイルを処理する際に問題が発生する理由を誰かが知っていますか?
ありがとう!
編集:これで、エラー500エラーを解決できました。ファイル名にアラビア文字が含まれているプライベートファイルに対して、純粋にDrupalの「FileNotFound」が表示されます。file_managedテーブルを確認しましたが、上記のファイルのファイル名をアラビア語のファイルから英語のファイルに変更すると、エラーはなくなりました。Drupalがファイル名にUnicode(アラビア文字)文字を含むプライベートファイルを処理する際に問題が発生する理由を誰かが知っていますか?
ありがとう!
問題はおそらく、Web サーバーのユーザーがファイルを読み取れるように許可を設定せずにファイルを保存していることです。そのファイルの内容を提供していないため、.httaccess を完全に無視する解決策を提案します。
[ところで、root ユーザーの uid は 0 です。ユーザー 1 とは誰で、なぜ彼女が関係するのでしょうか?]
Web サーバーが apache であると仮定すると、このコマンドはどのユーザーが apache を実行しているかを示します。
$ ps aux|grep apach[e]
root 19874 1.0 0.6 84008 12736 ? Ss 00:24 0:00 /usr/sbin/apache2 -D (...)
apache 19876 0.0 0.4 48576 8380 ? S 00:24 0:00 /usr/sbin/apache2 -D (...)
(...)
ユーザー apache は、私のシステムでバイナリ apache2 を実行しています。誰が apache2 を開始したかを示す最初の行は無視してください。次に、ファイルを apache で読み取り可能にします。
$ chmod 644 /path/to/whereever/you/put/system/files/docFiles/nameoffile.pdf
これで、誰もがファイルを読み取ることができ、所有者はファイルに書き込むことができます。