Ubuntu12.04にnginxをインストールしました。ただし、nginxはシンボリックリンクをたどっていないようです。これには構成の変更が必要であることを理解していますが、変更を加える場所が見つかりません。助けていただければ幸いです。
3 に答える
nginxドキュメントの次の構成オプションをご覧ください。
構文:
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
最後のオプションのコマンドは、PHPスクリプトがデータを書き込む必要がある場合に書き込み権限を与えます。セキュリティ上の理由から、書き込み権限を必要なディレクトリのみに制限するようにしてください。
テスト
再起動する必要はありません。ブラウザで+をngnix
押すだけです。CtrlF5
注意:読み取り/書き込みアクセスの間違いや間違ったシンボリックリンクがデジタルデータを公開する可能性があるため、ホームディレクトリを指すシンボリックリンクを作成することはお勧めしません...
参照: nginxのArch wiki
olibreの回答がファイル/etc/ nginx / sites-available / defaultの編集に役立たない場合は、サーバーのルートディレクトリを指定した場所にこの行を追加します。
autoindex on;
ファイルを保存してサーバーを再起動します
/etc/init.d/nginx restart