Ubuntu 12.04にnginxをインストールしました。ただし、nginxはシンボリックリンクをたどらないようです。これには設定の変更が必要であることを理解していますが、変更する場所を見つけることができません。任意の助けに感謝します。
nginx docs の次の設定オプションをご覧ください。
構文:
disable_symlinks off; disable_symlinks on | if_not_owner [from=part];
デフォルト:disable_symlinks off;
コンテキスト:http、サーバー、場所
このディレクティブはバージョン1.1.15で登場しました。
私の場合、nginx
はすでにシンボリックリンクをたどるように設定されています。しかし、問題は、ユーザーnginx
がホームファイルにアクセスできなかったため、ホームディレクトリへのシンボリックリンクが機能していなかったことです。
シンボリックリンク/usr/share/nginx/www/mylink
-> /home/u/html
があるとします
cd /usr/share/nginx/www
mkdir -p /home/u/html
Sudo ln -sv /home/u/html mylink # creates mylink -> /home/u/html
を使用してreadおよびexecuteパーミッションを付与しますchmod
および find
:
chmod +rx /home/u
chmod +rw /home/u/html
find /home/u/html/php -type d -exec chmod +rx {} +
find /home/u/html/php -type d -exec chmod +w {} + # optional
注:
パーミッションx
の名前はexecuteです。しかし、ディレクトリに適用されると、この許可によりディレクトリツリーの再帰が許可されます( Unixモード を参照)。
コマンドfind ... -exec chmod ...
は、アクセス許可を再帰的に変更します。コマンドchmod -R +rx /home/myuser/html
を使用することもできますが、この最後のコマンドはすべての通常ファイルに実行許可を与えるため、これは望ましくありません。オプション-type d
は、ディレクトリのみに対してchmod
を実行します。
最後のオプションのコマンドは、write permissionを指定します。PHPスクリプトがデータの書き込みを必要とする場合。セキュリティ上の理由から、書き込み権限を必要なディレクトリのみに制限してください。
ngnix
を再起動する必要はありません。 Ctrl+F5 ブラウザで。
注意:読み取り/書き込みアクセスの誤りまたは間違ったシンボリックリンクがデジタルを公開する可能性があるため、ホームディレクトリを指すシンボリックリンクを作成することはお勧めしませんデータ...
リファレンス:Arch wiki onnginx
olibreの答えがファイル/ etc/nginx/sites-available/defaultの編集に役立たず、サーバーのルートディレクトリを指定した場所にこの行を追加した場合。
autoindex on;
ファイルを保存してサーバーを再起動します
/etc/init.d/nginx restart