带有nginx,php和Rails的CentOS服务器

我目前正试图让我的服务器与rails和php一起工作。 目前我已经安装了Apache2的PHP(默认从提供商)

但我试图让轨道也工作。 我们在我们的主域使用PHP,并将有一个rails应用程序将从哪里运行的子域。

Apache2没有必要,但是我怎样才能让rails和php在同一台服务器上工作呢?

更新无法使用Apache,现在正试图用我之前使用过的nginx来完成。 但我的问题是让PHP工作。 我有我的导轨应用程序工作,但我不能让PHP工作。 目前我在我的configuration文件中有这个。

server { listen 80; server_name www.domain.no domain.no; location = / { root /var/www/vhosts/domain.com/httpdocs; index index.php index.html index.htm; } location / { root /var/www/vhosts/domain.com/httpdocs; index index.php index.html index.htm; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root /var/www/vhosts/domain.com/httpdocs; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_FILENAME /var/www/vhosts/domain.com/httpdocs/$fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; } } 

但是,当我尝试访问一个PHP文件,我只是被redirect到www.domain.com//service

任何想法?

我正在运行两个生产服务器,既服务于PHP和Rails网站。 最简单的解决scheme是在端口80上运行nginx。Nginxpipe理对Rails页面和静态资源的请求,然后将任何php请求代理到Apache,在Apache上监听私有端口。 这比pipe理FCGIstream程更容易,而且它可以解决人们build议的无数重写规则和PROXY_PASS设置的麻烦。

只需将其设置为指向使用您的子域的虚拟主机。 说明在这里 ,死简单。

 <VirtualHost *:80> ServerName subdomain.domain.com DocumentRoot /railsapps/subapp/public </VirtualHost> 

要让nginx乘客使用rails,只需将另一台服务器添加到您的configuration中:

 passenger_root /usr/lib64/ruby/gems/1.8/gems/passenger-2.2.5; passenger_ruby /usr/bin/ruby; server { listen 80; server_name SUBDOMAIN.DOMAIN.NO; #access_log logs/host.access.log main; passenger_enabled on; rails_spawn_method smart-lv2; rails_env production; root /PATH/TO/YOUR/PROJECTS/PUBLIC; location ~* \.(ico|jpg|jpeg|gif|png|css|js)$ { root /PATH/TO/YOUR/PROJECTS/PUBLIC; expires 30d; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.html\.erb$ { deny all; } location ~ /\.ht { deny all; } } 

UPD:关于你的PHP问题,请尝试下面的参数设置:

  fastcgi_param DOCUMENT_ROOT /var/www/vhosts/domain.com/httpdocs; fastcgi_param SCRIPT_FILENAME /var/www/vhosts/domain.com/httpdocs$fastcgi_script_name; fastcgi_param PATH_TRANSLATED /var/www/vhosts/domain.com/httpdocs$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param REDIRECT_STATUS 200; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param SERVER_NAME $server_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param REMOTE_USER $remote_user; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port;