2015-11-17 124 views
2

我正在嘗試運行我下載的rails服務器示例。但是,我得到一個權限錯誤:'rails server'命令返回錯誤:`mkdir':權限被拒絕@ dir_s_mkdir

我運行:

rails server 

我得到:

=> Booting Puma 
=> Rails 4.2.4 application starting in development on http://localhost:3000 
=> Run `rails server -h` for more startup options 
=> Ctrl-C to shutdown server 
Exiting 
/usr/share/rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/fileutils.rb:250:in `mkdir': Permission denied @ dir_s_mkdir - /home/username/web-app/tmp (Errno::EACCES) 
    from /usr/share/rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/fileutils.rb:250:in `fu_mkdir' 
    from /usr/share/rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/fileutils.rb:224:in `block (2 levels) in mkdir_p' 
    from /usr/share/rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/fileutils.rb:222:in `reverse_each' 
    from /usr/share/rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/fileutils.rb:222:in `block in mkdir_p' 
    from /usr/share/rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/fileutils.rb:208:in `each' 
    from /usr/share/rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/fileutils.rb:208:in `mkdir_p' 
    from /home/username/.rvm/gems/ruby-2.1.7/gems/railties-4.2.4/lib/rails/commands/server.rb:134:in `block in create_tmp_directories' 
    from /home/username/.rvm/gems/ruby-2.1.7/gems/railties-4.2.4/lib/rails/commands/server.rb:133:in `each' 
    from /home/username/.rvm/gems/ruby-2.1.7/gems/railties-4.2.4/lib/rails/commands/server.rb:133:in `create_tmp_directories' 
    from /home/username/.rvm/gems/ruby-2.1.7/gems/railties-4.2.4/lib/rails/commands/server.rb:77:in `start' 
    from /home/username/.rvm/gems/ruby-2.1.7/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:80:in `block in server' 
    from /home/username/.rvm/gems/ruby-2.1.7/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:75:in `tap' 
    from /home/username/.rvm/gems/ruby-2.1.7/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:75:in `server' 
    from /home/username/.rvm/gems/ruby-2.1.7/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:39:in `run_command!' 
    from /home/username/.rvm/gems/ruby-2.1.7/gems/railties-4.2.4/lib/rails/commands.rb:17:in `<top (required)>' 
    from bin/rails:4:in `require' 
    from bin/rails:4:in `<main>' 

看到這是一個權限錯誤我想:

sudo rails server 

但我只收到這個錯誤

Your Ruby version is 1.9.3, but your Gemfile specified 2.1.7 

當root用戶似乎使用不同版本的ruby時,如何克服權限問題?

EDIT 1:

ruby --version 

回報:

ruby 2.1.7p400 (2015-08-18 revision 51632) [i686-linux] 

編輯2:

sudo ruby --version 

回報:

ruby 1.9.3p484 (2013-11-22 revision 43786) [i686-linux] 

編輯3:

我的web-app目錄中沒有tmp文件。當我輸入ls -la我得到:

drwxr-xr-x 12 root root  4096 Nov 15 10:32 . 
drwxr-xr-x 31 username username 4096 Nov 17 04:23 .. 
drwxr-xr-x 10 root root  4096 Nov 15 10:32 app 
drwxr-xr-x 2 root root  4096 Nov 15 10:32 bin 
-rw-r--r-- 1 root root  126 Nov 15 10:32 browserslist 
-rw-r--r-- 1 root root  363 Nov 15 10:32 Capfile 
drwxr-xr-x 6 root root  4096 Nov 15 10:32 config 
-rw-r--r-- 1 root root  153 Nov 15 10:32 config.ru 
drwxr-xr-x 3 root root  4096 Nov 15 10:32 db 
-rw-r--r-- 1 root root  1301 Nov 15 10:32 Gemfile 
-rw-r--r-- 1 root root 10953 Nov 15 10:32 Gemfile.lock 
drwxr-xr-x 8 root root  4096 Nov 15 10:32 .git 
-rw-r--r-- 1 root root  470 Nov 15 10:32 .gitignore 
drwxr-xr-x 4 root root  4096 Nov 15 10:32 lib 
drwxr-xr-x 2 root root  4096 Nov 15 10:32 log 
drwxr-xr-x 2 root root  4096 Nov 15 10:32 public 
-rw-r--r-- 1 root root  249 Nov 15 10:32 Rakefile 
-rw-r--r-- 1 root root  478 Nov 15 10:32 README.rdoc 
-rw-r--r-- 1 root root  8 Nov 15 10:32 .rspec 
drwxr-xr-x 3 root root  4096 Nov 15 10:32 spec 
drwxr-xr-x 3 root root  4096 Nov 15 10:32 vendor 
+0

更新您的ruby版本或在您的gemfile中將ruby版本更改爲1.9.3版本。 –

+0

'/ home/matthew/gomrkit-web-app/tmp'設置了什麼權限?在我的本地應用程序,它是775,但我想它應該是755。 –

+0

當我做ls -la @japed時tmp不存在 – Rorschach

回答

4

第一個必須創建tmp目錄,然後給它必要的權限。這可以通過以下代碼完成:

sudo mkdir tmp 
sudo chmod 777 tmp 
0

因爲每次運行時軌道服務器它建立在你的​​文件夾,名爲server.pid新文件。在你運行服務器的情況下,它會嘗試創建pid,但是你沒有權限在該文件夾下創建任何文件。您需要爲tmp目錄提供寫入權限。

+0

我無法在〜/ home/username/web-app/ – Rorschach

+0

找到tmp,Rails自動創建tmp文件夾。只需爲您的應用程序提供寫入權限,即從應用程序之外提供'〜/ home/username $ chmod -R 0755 username/web-app' –