2016-07-30 3 views
0

私はWordPressウェブサイトのレールアプリケーションへの移行を開始しています。今後数カ月の間に徐々にマイグレーションを行う必要があるため、両方のサイトを並行して実行できるようにする必要があります。私は以下の構成を使用して、Railsのアプリケーションに転送するためにワードプレスによって返された404エラーを取得するために管理してきたテスト環境でfastcgi_intercept_errorsを使用して:ときレールのアプリが参照する任意の/資産リンクWordpressの背後にあるRailsアプリケーションfastcgi_intercept_errorsを使用して

server { 
     listen 80 default_server; 
     listen [::]:80 default_server ipv6only=on; 

     server_name mydomain.com; 
     root   /var/www/html/wordpress; 
    index index.php index.html 

     error_page 500 502 503 504 404 @rails; 

    location/{ 
     try_files $uri $uri/ /index.php?$args; 
     recursive_error_pages on; 
     error_page 404 = @rails; 
    } 

    location ~ \.php$ { 
       fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
       fastcgi_index index.php; 
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     fastcgi_intercept_errors on; 
       include fastcgi_params; 
     error_page 404 = @rails; 

     } 

    location @rails{ 
     passenger_enabled on; 
     passenger_user user; 
     rails_env development; 
     root /home/user/rails_app/app/public; 
    } 
} 

問題が今来て彼らは常にレールアプリに戻り、常にアプリケーションのルート位置をロードします。

資産をレールアプリケーションの一部として扱うためにこれを修正する方法はありますか?

答えて

0

このnginxコンフィグレーションは、私が必要とすることを実行できました。エラーページディレクティブがphpの場所に移動され、資産の場所が追加されて、PHPアプリケーションからルビアプリケーションのパブリックフォルダにデフォルトルートの場所がリダイレクトされました。

server { 
    listen 80 default_server; 
    listen [::]:80 default_server ipv6only=on; 

    server_name mydomain.com; 
    root   /var/www/html/wordpress; 
    index index.php index.html; 

    location/{ 
     try_files $uri $uri/ /index.php?$args; 
     recursive_error_pages on; 
     error_page 404 = @rails; 
    } 

    location ~ \.php$ { 
     fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     fastcgi_intercept_errors on; 
     include fastcgi_params; 
     error_page 404 = @rails; 
    } 

    location ^~ /assets/ { 
     root /home/user/rails_app/app/public; 
    } 

    location @rails{ 
     passenger_enabled on; 
     passenger_user user; 
     rails_env production; 
     root /home/user/rails_app/app/public; 
    } 
} 
関連する問題