2012-04-25 11 views
4

私は、Wordpressのブログをレール上のルビーで構築されたサイトに追加しようとしています。私はそれがサブディレクトリにある必要があります。私はパブリックディレクトリにフォルダを作成し、Wordpressファイルをそこに置いて、今はルーティングエラーが発生していて、レールに慣れていないのです。誰かが私にこれをする方法を理解するのを助けることができますか?レールに組み込まれたサイトにwordpressを追加する

+2

あなたは正確に何をしようとしていますか? Apacheで直接リダイレクトすることはできますが、サブディレクトリに直接置くのではなく – eveevans

答えて

0

サーバー構成にアクセスできる場合は、PHPとレールを同じプロジェクトで使用できます。私は数分でテストVPSで作業することができました。私はwordpressで簡単なphpinfo()呼び出しを試しませんでしたが、失敗する理由はありません。

私のインストールでは、Unicorn for RailsのWebサーバーでNGINXを使用し、PHP処理ではspawn-fcgiとphp-cgiを使用します。

すでにレールアプリが動作していたので、PHPを追加しました。レールアプリはNGINXを使ってUnicornへのリクエストをプロキシしているので、すでにパブリックディレクトリとして静的なサービスを提供していました。私はあなたの仮想ホストファイルを以下のように投稿して、それがどのように行われたかを見ることができます。

これはすべてArchLinux VPSで行われましたが、他のディストリビューションは似ているはずです。

私のバーチャルホストのファイル:

upstream unicorn { 
    server unix:/tmp/unicorn.jrosw.sock fail_timeout=0; 
} 

server { 
    listen 80 default deferred; 
    server_name example.com www.example.com; 
    root /home/example/app/current/public; 

    location ^~ /assets/ { 
    gzip_static on; 
    expires max; 
    add_header Cache-Control public; 
    } 

    try_files $uri/index.html $uri @unicorn; 
    location @unicorn { 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $http_host; 
    proxy_redirect off; 
    proxy_pass http://unicorn; 
    } 

    error_page 500 502 503 504 /500.html; 
    client_max_body_size 4G; 
    keepalive_timeout 10; 

    location ~ \.php$ { 
    try_files $uri =404; 
    include /etc/nginx/conf/fastcgi_params; 
    fastcgi_pass 127.0.0.1:9000; 
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME /home/example/app/current/public$fastcgi_script$ 
    } 
} 

そしてPHP-CGIを起動するための小さなスクリプト:

#!/bin/sh 

# You may want to just set this to run as your app user 
# if you upload files to the php app, just to avoid 
# permissions problems 

if [ `grep -c "nginx" /etc/passwd` = "1" ]; then 
    FASTCGI_USER=nginx 
elif [ `grep -c "www-data" /etc/passwd` = "1" ]; then 
    FASTCGI_USER=www-data 
elif [ `grep -c "http" /etc/passwd` = "1" ]; then 
    FASTCGI_USER=http 
else 
# Set the FASTCGI_USER variable below to the user that 
# you want to run the php-fastcgi processes as 

FASTCGI_USER= 
fi 

# Change 3 to the number of cgi instances you want. 

/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 3 -u $FASTCGI_USER -f /usr/bin/php-cgi 

私はfastcgi_indexオプションが動作するようになっていたていた唯一の問題なので、あなたおそらくnginx's url rewritingの機能を調べて、ワードプレスのパーマリンク機能を動作させる必要があります。

私はこの方法が理想的ではないことを知っていますが、うまくいけば正しい軌道に乗ります。

関連する問題