39

Ubuntu12.04にnginxをインストールしました。ただし、nginxはシンボリックリンクをたどっていないようです。これには構成の変更が必要であることを理解していますが、変更を加える場所が見つかりません。助けていただければ幸いです。

4

3 に答える 3

33

nginxドキュメントの次の構成オプションをご覧ください。

構文:

disable_symlinks off;
disable_symlinks on |
if_not_owner [from=part];

デフォルト:disable_symlinks off;

コンテキスト:http、サーバー、場所

このディレクティブはバージョン1.1.15で登場しました。

于 2012-09-27T15:16:55.420 に答える
33

私の場合、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

ノート:

  1. パーミッションのx名前はexecuteです。ただし、この権限をディレクトリに適用すると、ディレクトリツリーを再帰的に実行できます(Unixモードを参照)。

  2. このコマンドfind ... -exec chmod ...は、権限を再帰的に変更します。このコマンドを使用することもできますchmod -R +rx /home/myuser/htmlが、この最後のコマンドはすべての通常のファイルに実行権限を与えるため、これは望ましくありません。このオプションは、ディレクトリに対してのみ-type d実行されます。chmod

  3. 最後のオプションのコマンドは、PHPスクリプトがデータを書き込む必要がある場合に書き込み権限を与えます。セキュリティ上の理由から、書き込み権限を必要なディレクトリのみに制限するようにしてください。

テスト

再起動する必要はありません。ブラウザで+をngnix押すだけです。CtrlF5

注意:読み取り/書き込みアクセスの間違いや間違ったシンボリックリンクがデジタルデータを公開する可能性があるため、ホームディレクトリを指すシンボリックリンクを作成することはお勧めしません...

参照: nginxのArch wiki

于 2013-03-07T05:40:20.623 に答える
1

olibreの回答がファイル/etc/ nginx / sites-available / defaultの編集に役立たない場合は、サーバーのルートディレクトリを指定した場所にこの行を追加します。

autoindex on;

ファイルを保存してサーバーを再起動します

/etc/init.d/nginx restart
于 2013-02-20T13:30:32.897 に答える