私はPHP nginxで、私は このチュートリアル 前に成功しましたが、何らかの理由で新しいサーバーで成功しました:
nginx: [emerg] open() "/etc/nginx/snippets/fastcgi-php.conf" failed (2: No such file or directory)
実際、nginxインストールのsnippets
ディレクトリ全体が欠落しています。
次のコマンドでPHPをインストールしました:
-Sudo apt-get install -y php7.0-cli php7.0-cgi php-fpm php-mysql
-Sudo systemctl restart php7.0-fpm
利用可能な最新のnginxをインストールしましたが、ディレクトリとファイルはまだ存在していません。
どうすれば修正できますか?
ボーナス:これは何が原因でしたか?
使用しているNginxのバージョンに依存すると思います。
ネイトの回答については、nginx-full
は1.10.3をインストールします。
Ubuntu 16.04でNginx 1.12.2を使用していますが、このバージョンではsites-enabled
およびsites-available
それと;また、異なるPHP CGIセットアップ。
Ulad Kasachのソリューションを使用するか、新しい方法の使用を開始できます。
これを行うための公式ドキュメントは次のとおりです。 https://www.nginx.com/resources/wiki/start/topics/recipes/wordpress/
ところで、上記の投稿では、fastcgi.conf
with fastcgi_params
。
そして、元々デフォルトであるもう1行を追加します。
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
これらはすべてNginx 1.12.2の新しい変更です:(
最終バージョン:
location ~ \.php$ {
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
以前の作業中の構成ファイルを確認し、手動で複製する必要が生じました。単にsnippets
ディレクトリを作成し、fastcgi-php.conf
次の内容のファイル:
# regex to split $uri to $fastcgi_script_name and $fastcgi_path
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# Check that the PHP script exists before passing it
try_files $fastcgi_script_name =404;
# Bypass the fact that try_files resets $fastcgi_path_info
# see: http://trac.nginx.org/nginx/ticket/321
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
fastcgi_index index.php;
include fastcgi.conf;
また、最後の行を置き換える必要があります、include fastcgi.conf;
with include fastcgi_params;
。
ファイルを作成することをお勧めしますfastcgi.conf;
付加的な行を持つ文字通り同じファイルではなかった場合fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
の場合 fastcgi.conf
私もしばらく困惑していました。 nginx
ではなく、nginx-full
パッケージをubuntuにインストールします。 nginx-full
には、欠落していたビットが含まれています。
私は使っている
私のサイト構成は次のようになります
server {
listen 3010;
root /usr/share/nginx/docs;
# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;
server_name phpSetup;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
そしてうまく働きます。だから、設定を更新することをお勧めしますinclude snippets/fastcgi-php.conf;to
fastcgi_paramsを含める;
そのため、ロケーションブロックは
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
それが役に立てば幸い
続きを読む: https://www.nginx.com/resources/wiki/start/topics/recipes/wordpress/
おかげで、