簡體   English   中英

'rails server'命令返回錯誤:`mkdir':權限被拒絕@ dir_s_mkdir

[英]'rails server' command returns error: `mkdir': Permission denied @ dir_s_mkdir

我正在嘗試運行我下載的Rails服務器示例。 但是,我收到一個權限錯誤:

我跑:

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時,如何解決權限問題?

編輯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:

我的網絡應用程序目錄中沒有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

首先,必須創建tmp目錄,然后為其賦予必要的權限。 可以使用以下代碼完成此操作:

sudo mkdir tmp
sudo chmod 777 tmp

因為每次運行Rails Server時,它都會在tmp/pids文件夾中創建一個名為server.pid新文件。 在您運行服務器的情況下,它會嘗試創建pid,但您無權在此文件夾下創建任何文件。 您需要提供對tmp目錄的寫許可權。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM