WordPressを問題なくインストールして実行しています。ページにはWPの一部ではない要素がありますが、独自のカスタムPHPスクリプトがあります。フォームのPOSTリクエストを処理し、何らかの方法で処理するためだけにあります。
.phpで終わる拡張子がないという要件があります。私のフォームは次のようなものに送信しています:
/places/signup.html
私のnginx構成には、次のものがあります。
server {
listen 87948; # It's behind a reverse proxy
server_name domain.com www.domain.com;
include /etc/nginx/proxy_params;
index index.php;
root /opt/www/public_html;
location /favicon.ico {
return 404;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
location ~ \.php$ {
add_header Access-Control-Allow-Origin "*";
client_body_buffer_size 4096k;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /opt/www/public_html/$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
# LOOK HERE
location ~ /places/signup.html {
root /opt/www/custom_scripts/;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME /opt/www/custom_scripts/signup-processor.php;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
include fastcgi_params;
}
}
問題は次のとおりです。fastcgiまたはnginx(どちらかはわかりません)がリテラルURLを取得し、ロケーションブロックのルートディレクティブでそれを探しています。エラーログから:
2013/01/16 15:30:42[エラー]20533#0:* 4 FastCGIがstderrで送信されました: "プライマリスクリプトを開くことができません: /opt/www/custom_scripts/places/signup.html(そのようなファイルまたはディレクトリはありません) "アップストリームから応答ヘッダーを読み取っている間、クライアント:66.172.31.153、サーバー:domain.com、リクエスト:" POST /places/signup.html HTTP / 1.1 "、アップストリーム:" fastcgi:// unix:/ tmp / php5-fpm .sock: "、ホスト:" www.domain.com "
「fastcgi_paramSCRIPT_FILENAME/opt/www/custom_scripts/signup-processor.php;」と思いました。その特定のスクリプトを使用するように強制しますか?私はそうは思いませんか?