nginx php-fpm與rails並存 - Linux

Jack avatar
By Jack
at 2015-03-22T22:46

Table of Contents

請問一下各位
我想讓php與rails並存於同一個網站上
並且使用path去區分網站
目前我有三個目錄分別是
/var/work/rails 存放rails的
/var/work/php 存放php程式
/var/work/nginx_root 存放404等錯誤的靜態網頁

目前我的設定檔為
worker_processes 1;

events {
worker_connections 1024;
}

http {
passenger_root /usr/local/rvm/gems/ruby-2.1.2/gems/passenger-4.0.53;
passenger_ruby /usr/local/rvm/gems/ruby-2.1.2/wrappers/ruby;

include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;

server {
rewrite_log on;
error_log /opt/nginx/logs/error.log debug;

listen 80;
server_name localhost;

root /var/work/nginx_root;
error_page 403 404 405 406 500 501 502 503 504 /index.html;

# for rails
location /rails/assets {
passenger_base_uri /rails/assets;
passenger_enabled off;
alias /var/work/rails/public/assets;
}

location /rails {
alias /var/work/rails/public;
passenger_base_uri /rails;
passenger_app_root /var/work/rails;
passenger_document_root /var/work/rails/public;
passenger_enabled on;
}
}
}

這個設定檔運作是正常的
rails與錯誤網頁的導向都可以正常運作
但我現在要加入php-fpm的設定
讓連入的網址如果是 http://192.168.1.1/php/test.php
會採用php執行請問該如何做
我加入了以以下的設定
location /php {
alias /var/work/php;
passenger_enabled off;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index test.php;
fastcgi_param DOCUMENT_ROOT /var/work/php;
fastcgi_param SCRIPT_FILENAME /var/work/php/$fastcgi_script_name;
include fastcgi_params;
}
但會得到錯誤
/var/work/nginx_root/test.php failed (2: No such file or directory)
也就是說他還是跑到 nginx_root 下面去了
請問我該如何做調整

以下是我使用的版本
nginx version: nginx/1.6.2
built by gcc 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
TLS SNI support enabled
configure arguments: --prefix=/opt/nginx --with-http_ssl_module
--with-http_gzip_static_module --with-http_stub_status_module
--with-cc-opt=-Wno-error
--add-module=/usr/local/rvm/gems/ruby-2.1.2/gems/passenger-4.0.55/ext/nginx


--
Tags: Linux

All Comments

Suhail Hany avatar
By Suhail Hany
at 2015-03-25T11:09
php_fpm用proxy_pass去做吧,我沒記錯的話
Quintina avatar
By Quintina
at 2015-03-29T23:18
php_fpm是啟動9000 port,導給本地9000就可以了
Margaret avatar
By Margaret
at 2015-04-02T18:59
抱歉我記錯,是fastcgi_pass沒錯,你沒設錯= =
Leila avatar
By Leila
at 2015-04-04T21:15
可以試著更改match條件為對於所有php檔pass到fastcgi:
Lily avatar
By Lily
at 2015-04-06T06:04
如下:location ~ .*.php$ {
Caroline avatar
By Caroline
at 2015-04-10T10:21
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
Steve avatar
By Steve
at 2015-04-14T10:18
fastcgi_param SCRIPT_FILENAME $document_root$fastcg\
i_script_name;
include fastcgi_params; }
Olive avatar
By Olive
at 2015-04-18T12:01
先看看php跑的對不對再來debug你的document_root設定
Elvira avatar
By Elvira
at 2015-04-23T09:43
另外一種可能的解法是設定link:
sudo ln -sv /var/work/php /var/work/nginx_root
ls -la /var/work/nginx_root/php
Jake avatar
By Jake
at 2015-04-23T17:15
Access URL: http://localhost/php/test.php

雙系統硬碟對拷後,無法開機

Suhail Hany avatar
By Suhail Hany
at 2015-03-21T04:49
版上的各位先進好,最近小弟接手學校VSLI實驗室的EDA環境維護,目前遇到了一些問題 ,希望版上的先進能給我些建議 小弟學校的VLSI積體電路實驗室,最近因為維護不易,加上工作站運算速度不夠快,因此 汰換掉用了好幾年的昇陽Unix系統,準備把EDA軟轉移到Linux上 原先的系統維護都是由學校指定合作的工 ...

OS從WIN7換成Fedora的硬碟問題

Daniel avatar
By Daniel
at 2015-03-21T02:27
最近想把Win7桌機灌成Linux 目前有3顆硬碟(SSD+HDD*2) SSD是系統碟,其他兩顆HDD只有放資料而已 我想問的是如果直接把SSD灌成Fedora的話 HDD應該mount之後就可以直接使用吧? 還是說會需要格式化? 因為裡面資料很多,不希望重灌之後資料都無法讀取 - ...

安裝llvm/clang的問題

Donna avatar
By Donna
at 2015-03-21T01:55
大家好,我使用的環境是ubuntu 14.04 32-bit 安裝步驟: (參考這個: http://llvm.org/releases/3.1/docs/CMake.html) 1. 從git上把llvm和clang clone下來 2. 把clang丟到llvm/tools下面 3. 創一個新的d ...

CentOS 硬體選擇

Sierra Rose avatar
By Sierra Rose
at 2015-03-21T01:11
※ 引述《e002311 (鴻)》之銘言: : 版大您們好 : 我跟朋友還有幾個夥伴一起做大數據的新創公司, : 現在面臨到要架一個實體叢集(內網實驗用,未來預計是用雲端服務) : 經費問題,我們不能選擇商用伺服器,於是打算自己組幾台電腦來架叢集 你知道商用伺服器的價位從一台三萬到一台三百萬都有嘛and#3 ...

ImageMagick支援圖片類型問題

Hedda avatar
By Hedda
at 2015-03-20T17:14
yum install freetype libpng libjpeg zlib jasper 後 ./configure --prefix=/usr/local/ImageMagick/--enable-share --enable-static --with-jpeg=yes --with-png=ye ...