質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.45%

  • PHP

    24613questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • WordPress

    9154questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

  • nginx

    1054questions

    nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

  • キャッシュ

    68questions

    キャッシュはドキュメントやデータを一時的に保管するもので、アクセス処理時間を短くするために使用されます。

Nginxのプロキシのキャッシュを有効にしようとした所PHPファイルがダウンロードされてしまいます

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,624

ootaki55

score 10

はじめまして
現在wordpressにてブログを運用しており
キャッシュを活用しサイト表示の高速化をしようと試みております。

WordPress 高速化&スマート運用必携ガイド 

を参考にnginxの設定をしてみたところ
サイトにアクセスすると下記の phpファイルのダウンロードが始まり
サイト自体にアクセスができなくなってしまいました。

間違いがあったら、ヒントだけでもいいので指摘していただきたいです。

■ 環境
sakura vps
PHP-fpm
nginx
mysql
ubuntu 14.04

ダウンロードが始まるPHPファイル

<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );


nginx.confファイル

user nginx;
worker_processes 4;
pid /run/nginx.pid;

events {
  worker_connections 2048;
  multi_accept on;
}

http {
  include /etc/nginx/mime.types;
  default_type application/octet-stream;
  client_max_body_size 50m;

  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;

  gzip on;
  gzip_disable "msie6";

  #include /etc/nginx/naxsi_core.rules;

  include /etc/nginx/conf.d/*.conf;
  include /etc/nginx/sites-enabled/*;

  fastcgi_cache_path  /var/log/nginx/cache levels=1:2 keys_zone=wpcache:10m max_size=50M inactive=30m;
  proxy_temp_path /var/tmp/nginx;
  proxy_cache_key "$scheme://$host$request_uri";
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-Host $host;
  proxy_set_header X-Forwarded-Server $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

wordpress.conf

server {
    listen       80;
    server_name  wordpress.com;
    root /var/www/wordpress.com/;
    index index.html index.php;
    access_log      /var/log/nginx/wordpress.com.access.log;
    error_log       /var/log/nginx/wordpress.error.log;

    set $mobile "";
    if ($http_user_agent ~* '(DoCoMo|J-PHONE|Vodafone|MOT-|UP¥.Browser|DDIPOCKET|ASTEL|PDXGW|Palmscape|Xiino|sharp pda browser|Windows CE|L-mode|WILLCOM|Softbank|Semulator|Vemulator|J-EMULATOR|emobile|mixi-mobile-converter)') {
       set $mobile ".ktai";
     }
    if ($http_user_agent ~* '(iPhone|iPod|Opera Mini|Android.*Mobile|NetFront|PSP|3DS|BlackBerry|Windows Phone)') {
      set $mobile ".smartphone";
    }

   location ~ .*¥.(txt|xml|html?|js|css|gz|ico|jpe?g|gif|png|wmv|flv|mpg)  {
     access_log off;
     expires 30d;
     break;
    }

   location ~ /¥.ht {
     deny all;
    }

   location /wp-admin {
     proxy_pass http://backend;
    }

   location / {
     if ($http_cookie ~* "comment_author_|wordpress_(?!test_coolie)|wp-postpass_" ) {
       set $do_not_cache 1;
      }
   proxy_no_cache $do_not_cache;
   proxy_cache_bypass $do_not_cache;

   proxy_cache_key "$scheme://$host$request_uri$is_args$args$mobile";
   proxy_cache_valid 200 10m;
   proxy_cache_valid 404 5m;
   proxy_pass http://backend;
   }
} #80server

upstream backend{
  server 127.0.0.1:8080;
}

server {
  listen 8080;
  server_name  _;
  index index.html index.htm index.php;

  gzip off;
  gzip_vary off;

  location / {
    index index.php index.html index.htm;
    # static files
    if (-f $request_filename) {
      access_log off;
      break;
    }
    # request to index.php
    if (!-e $request_filename) {
      rewrite ^(.+)$ /index.php?q=$1 last;
    }
 } # 8080location
   location ~ ¥.php$ {
     fastcgi_pass  127.0.0.1:9000;
     fastcgi_index   index.php;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     include        fastcgi_params;
    }
} #sever 8080

よろしくお願いします。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

PHP と認識されていないようですね。

表示の問題かもしれませんが、location ~ ¥.php$ { 箇所の ¥ (echo -e '\xc2\xa5' で表示される記号)は
\ (echo -e '\x5c') にすべきではないでしょうか。
また、8080 の server { } にも root /var/www/wordpress.com/; が必要と思います。
server {
    listen 8080;
    server_name  _;
    root /var/www/wordpress.com/;
    index index.html index.htm index.php;
    
    (略)
    location ~ \.php$ {
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }  
}   

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/11/12 02:49

    TaichiYanagiya 様

    回答ありがとうございます。

    書き換えしてみましたが、症状変わらずでした。
    PHP と認識されていないということをヒントに調べてみます。

    キャンセル

  • 2015/11/12 11:31

    8080 側でデバッグログを出すと、どの location で処理されたかわかります。

    (設定例)
    error_log /var/log/nginx/8080.error_log debug;

    (ログ例)
    [debug] 4556#0: *3 test location: "/"
    [debug] 4556#0: *3 test location: ~ "\.php$"
    [debug] 4556#0: *3 using configuration "\.php$"

    キャンセル

  • 2015/11/12 17:22

    回答ありがとうございます。

    デバッグログはロケーションが出ずに
    epoll add event: fd:12 op:1 ev:00000001

    と出ました。

    質問を文章に書き換えて
    色々と調べていくと
    まだまだ勉強不足だなと感じました。

    このままここで質問していても
    答えのソースコード貼ってくれと言っているのと
    変わらないなと思ったので
    今回はここで解決とさせて頂き、
    もっと勉強してから出直します!

    ありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.45%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • PHP

    24613questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • WordPress

    9154questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

  • nginx

    1054questions

    nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

  • キャッシュ

    68questions

    キャッシュはドキュメントやデータを一時的に保管するもので、アクセス処理時間を短くするために使用されます。

  • トップ
  • PHPに関する質問
  • Nginxのプロキシのキャッシュを有効にしようとした所PHPファイルがダウンロードされてしまいます