Railsをローカル開発環境でproduction環境を動かしてみる

Railsをローカル開発環境でproduction環境を動かしてみました

database.ymlを書いてなければ追記

$ vim config/database.yml

production:
    adapter: postgresql
    encoding: utf8
    reconnect: false
    database: production
    pool: 5
    username: user
    password: password
    host: localhost

各自の環境に合わせてください

$ rake db:create RAILS_ENV=production
$ rake db:migrate RAILS_ENV=production

データベースができあがり

$ config/environments/production.rb

config.serve_static_assets = true

にしておいて、JSとCSSを読み込めるようにします

secret_key_baseを確認

$ vim config/secrets.yml

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

SECRET_KEY_BASEの環境変数が必要でした

rails起動

$ SECRET_KEY_BASE=abcdefg rails s -b 0.0.0.0 -e production

これで確認できました

EC-CUBEでモジュールのダウンロードに失敗する

EC-CUBE v2.13.3 にEC-CUBEペイメント決済モジュール(2.13系)のダウンロードに失敗しました

エラーログをみるとこんな感じ
$ data/logs/ownersstore_batch_update.log

2016/03/25 08:24:40 [/upgrade/index.php] ハッシュ値が一致しないため, コピー先が取得できません: /var/www/html/sample/data/downloads/tmp/1458861880/mdl_pg_mulpay/config.php from xx.xx.xx.xx
2016/03/25 08:24:40 [/upgrade/index.php] distinfoファイルの作成に成功しました: /var/www/html/sample/data/downloads/backup/update_1458861880/distinfo.php from xx.xx.xx.xx

以前一度できたのに、なぜ今回はできない..とソースコードを追ってましたが原因は海外(インドネシアのバリ)からアクセスしているからでした。。
Proxyを通すとあっさりできました

まさかこんなことではまるとは

参考:
海外から見れない日本のサイトがあるとき

海外から見れない日本のサイトがあるとき

海外から日本のサイトにアクセスすると見れないものがありました
ネットワークが弱いせいかと思ったら、弾かれてる様子

日本のプロキシサーバー(中継させる)を通せば見れるようになったのでメモ

Japan proxy list. Free Japan proxy servers. Free Japan proxies.

で日本のプロキシサーバーを探しました
よさそうなのをピックアップ(危険なのもあるかもなので、自己責任で)

IPアドレスとポート番号をメモして、パソコンのプロキシ設定をしてやればOKです
Ubuntuのパソコンを使っていたので、ネットワーク設定を開いてプロキシを入れてやります

network-proxyt

こんな感じです

で、見れなかったサイトをみて確認します
バリから技評のサイトがみれませんでした
あとはいくつかブログが見れなかったです(みんなあえて弾いてるのかな..)

Nginxでphpを使うと403エラー

Nginx + php_fpm環境を設定してて問題なかったのに

http://(サーバードメイン)/sample
にアクセスするとエラーが..

2016/05/14 16:37:55 [error] 7942#0: *621 directory index of "/usr/share/nginx/html/sample/" is forbidden

http://(サーバードメイン)/sample/index.php

だと問題ない..ちょっと考えたらわかるのにはまりました..
nginxの設定ファイルを確認

server {                                                                           
    listen       80;                                                                                                                                                                                         
    server_name  sample.co.jp;                                       
    root   /usr/share/nginx/html;                                               

    access_log  /var/log/nginx/base-access.log  main;                           
    error_log  /var/log/nginx/base-error.log warn;                              

    location / {                                                                
        index  index.html index.htm;                                            
    }                                                                           

    #error_page  404              /404.html;                                    

    # redirect server error pages to the static page /50x.html                  
    #                                                                           
    error_page   500 502 503 504  /50x.html;                                    
    location = /50x.html {                                                      
        root   /usr/share/nginx/html;                                           
    }                                                                           

    # pass the PHP scripts to FastCGI server                                    
    #                                                                           
    location ~ \.php$ {                                                         
        fastcgi_pass   unix:/var/run/php5-fpm.sock;                             
        fastcgi_index  index.php;                                               
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;        
        include        fastcgi_params;                                          
    }                                                                           
} 

location /
の下に index.php がないですね..ファイルがないのでエラーになってたようです
追加して解決しました