アクセスがないのでSEOした
アクセスが増えないどころか無いので、SEOした。果たしてSEOしたという言い回しで正しいかは分からないけど、とにかくした。
nginxでphpをfpmで動かしているのだが、permalinkの設定が1日寝かさないと分からなかった。他の人はこんな感じでできたと言ってるんですけど、アクセスすると404 not foundとかno input ほげほげってなる。
location / { try_files $uri $uri/ index.php?q=$uri&$args; }
nginxのerror.logを見てたら想定のuriがindex.phpに渡っていなさそうで、こんな感じに修正したらちゃんとpermalinkできるようになった。
location /blog/vottie/ { try_files $uri $uri/ /blog/vottie/index.php?q=$uri&$args; }
Related posts
gunicornの設定
djangoで何か作って運用するための準備としてgunicornを使ってみた。 gunicorn トップページには簡単に動きまっせみたいなことを書いているが、3晩はかかった。仕事だとしたらば1日潰れたぐらい時間がかかった。 まずはvagrantで動いてるubuntu 14.04にインストール $ pyenv shell 3.4.3 $ pip install gunicorn つづいてサンプルアプリの写経 ~/src/gunicorn/myapp/myapp.py def app(environ, start_response): data = "Hello World!\n" start_response("200 OK", [ ("Content-Type", "text/plain"), ("Content-Length", str(len(data))) ]) return iter([data]) 動かしてみると、おー動く。 unicorn -w 4 myapp:app [INFO] Listening at: http://127.0.0.1:8000 (13232) でもブラウザからは動作はしない。vagrantのポートフォワードの設定をしてもダメ。webサーバ、うちの場合はnginxの設定も必要らしい。 gunicornのインストール | i2bsの日記 なんとなく真似てgunicornのグループを作成して、vagrantユーザを所属させてみたが、結局confの設定は正しく読めなかった。 nginxの設定もunixドメインソケットのupstreamの設定がキモっぽいがsite-available/defaultに書いてると、/var/log/nginx/error.logに以下のエラーが出てnginxが起動しない。 "upstream" directive is not allowed here ググってみるとどうもバーチャルホストの設定が必要らしくconf.d/になんか書く必要があるとのこと。参考にさせてもらったサイトでもよくみるとそうなってたので、そのようにした。でもconf./dの設定とsites-availableの設定の関係性が分からなくなった。 confの設定がどうも効かないので、CLIから直接起動。アプリを書いたディレクトリで、以下を叩く。 unicorn -b "unix:/tmp/gunicorn.sock" myapp:app 今度はListeningのlogが変わった。 [INFO] Listening at: unix:/tmp/gunicorn.sock (13277) がしかし、http://127.0.0.1:18000/にアクセスすると、gunicornのアプリがエラーする。(18000はvagrantへのhttpアクセスのport forwardの設定port) [ERROR] Error handling request Traceback (most recent call last): File "/opt/pyenv/versions/3.4.3/lib/python3.4/site-packages/gunicorn/workers/sync.py", line 177, in handle_request resp.write(item) File "/opt/pyenv/versions/3.4.3/lib/python3.4/site-packages/gunicorn/http/wsgi.py", line 326, in write raise TypeError(‘%r is not a byte’ % arg) “gunicorn type error not a byte”でググって、stackoverflowで解決。 gunicorn (Python3.4 and 3.3) sends in response only headers without data | stackoverflow 元のアプリがpython 3系だとダメらしい。以下のresponseとおぼしき1行を修正してブラウザからの動作は確認できた。 – return iter([data]) + return [bytes(data, ‘utf-8’)] 残すは設定ファイルからのgunicorn起動。 2015/10/05追記 設定ファイル書けた。たぶんファイルのパーミッションの問題で、daemon化ができていなかった。以下は動作が確認できたファイルで、logファイルは先に作成して、chmod 666した。 import multiprocessing bind = ‘unix:/tmp/gunicorn.sock’ workers = 2 worker_class = ‘sync’ worker_connections = 1000 max_requests = 1000 timeout = 30 keepalive = 2 debug = False spew = False prelood_app = True daemon = True pidfile = ‘/tmp/gunicorn.pid’ umask = 0 #user = ‘vagrant’ #group = ‘gunicorn’ accesslog = ‘/usr/local/gunicorn/logs/access.log’ errorlog = ‘/usr/local/gunicorn/logs/error.log’ loglevel = ‘info’ proc_name = ‘gunicorn’ なお確認したソフトのバージョンは、以下。 python 3.4.3 nginx 1.4.6 gunicorn 19.3.0
macのbrewをupdateした
単語は全部英語というタイトル。もう英語で全部書けよ感がある。macのOSアップデートがあるたびにiTermも再起動して、vpsとvagrantとローカルと開くのが面倒なので、tmuxに頼ろうかと思ったら、まずバージョンを1.9にあげてくれとあった。 便利。tmuxサーバを終了させてもセッションを復元できる tmux-resurrect – 理系学生日記 それでbrew使おうとしたら動かない(; 😉 ググったらすぐ分かった。 Yosemiteでbrewが壊れた – Qiita これで環境を直してbrew update; brew upgradeした。tmuxは2.0になるらしい。
Rubyで学ぶクローラー
久しぶりに技術系の本を買った。 railsとかだとバージョンが上がると本の価値が下がるけど、枯れてるっぽいし良いかなと思いまして。 ぼちぼち写経してるけど、まだデータを蓄積のところまでできてない。 あと手元に持ってきたデータをどう解析するか、っていうところは別に考える必要があるなぁ。
Trackbacks and Pingbacks on this post
No trackbacks.
- TrackBack URL
Comments on this post