Подтвердить что ты не робот

Разрешение отклонено в tmp

Я только что развернул приложение Rails 3 с Ruby 1.9.2. Я получаю несколько ошибок.

  • application.css не был скомпилирован. поэтому я устанавливаю предварительную компиляцию в production.rb на false;
  • Тогда я получил: cannot generate tempfile, поэтому я сделал rake tmp:clear;
  • И теперь я получаю ActionView::Template::Error (Permission denied - /srv/www/appname/tmp/cache/assets):, и я не смог исправить это.

Пожалуйста, помогите.

4b9b3361

Ответ 1

Если user:group работает ваш веб-сервер http:http и он работает на * nix, сделайте следующее:

sudo chown -R http:http /srv/www/appname/

Кроме того, глупый вопрос, но существуют ли /tmp/cache/assets?

И если это так, как указано @leonel, вам также может потребоваться изменить разрешения:

chmod 777 /srv/www/appname/tmp/cache

Будьте осторожны при настройке разрешений 777 на что угодно. Только сделайте это, чтобы проверить проблему с разрешениями, а затем reset до минимально необходимых разрешений.

Ответ 2

Скорее всего, вы запускаете приложение под Apache Пассажир.

Вы должны сменить владельца config/environment.rb на кого-то, у кого есть права доступа к папке вашего приложения.

chown -R www-data:www-data /path/to/app

Ответ 3

  • Сделайте папку tmp для вашего проекта доступной для записи:

    chown -R group:user /path/to/rails/app/tmp
    chmod -R 777 /path/to/rails/app/tmp
    
  • В вашей консоли запустите rake tmp:cache:clear

  • Перезагрузите приложение.

Ответ 4

Вероятно, вы не создали свое приложение Rails с пользователем, на котором запущен сервер. Можете ли вы вставить вывод ls -alh /srv/www/appname/tmp/cache/assets и сообщить нам пользователя, на котором запущен веб-сервер?

Ответ 5

Недавно я столкнулся с этой ошибкой. Apache не смог записать в каталог tmp

не может генерировать tempfile /tmp/RackRewindableInput2xxxxxxxxxxxxxxxxx' /app-lib/lib/ruby/1.8/tempfile.rb:52:in инициализировать"     app-dir/vendor/gems/rack-1.0.1/lib/rack/rewindable_input.rb: 73: in new' app-dir/vendor/gems/rack-1.0.1/lib/rack/rewindable_input.rb:73:in make_rewindable '     app-dir/vendor/gems/rack-1.0.1/lib/rack/rewindable_input.rb: 26: in read' app-dir/vendor/gems/rack-1.0.1/lib/rack/request.rb:134:in POST '

Я проверил разрешение tmp-каталога и получил разрешение всем группам писать на него. Я изменил владельца каталога tmp, и он также не разрешил ошибку.

Преступник был tmp-каталогом, заполненным слишком большим количеством больших файлов, и выглядит как-то apache не хватило места для записи этого нового файла. Удалены все временные и старые файлы. Это разобрало эту проблему.

Ответ 6

Теперь для тех из нас, которые используют окна - Если вы являетесь администратором и видите эту ошибку

ActionView::Template::Error (Permission denied @ utime_failed) C:/User/..../tmp/cache/assets/sprochets/v3.0/E5/E5PZx-mq8.cache

Тогда это проблема разрешения и владения в Windows. Вы можете перейти в папку tmp вашего приложения и предоставить себе (Пользователь) разрешение на ** Чтение, запись и выполнение ** в папке. Нажмите [здесь] [1], чтобы просмотреть, как предоставить разрешения.

Быстрое исправление. Откройте терминал и выполните следующую команду в качестве администратора

    takeown /f <location of your app tmp folder> /r /d y

Затем перезагрузите сервер.

Ответ 7

Нам необходимо предоставить разрешения для доступа к нужному каталогу для пользователя root системы.

sudo chmod 777 -R your_project_directory_to_be_access

В вашем случае вы можете использовать:

sudo chmod 777 -R /srv/www/appname/tmp/

Из соображений безопасности просто помните:

chmod 777 дает всем права на чтение, запись и выполнение, что для большинства проблем явно слишком много.

Ответ 8

В моем локальном хосте он дал эту ошибку, и команда chmod 777 C:/Sites/project_name/tmp/cache/ решила мою проблему.

Ответ 9

Скорее всего, вы дали разрешение на доступ к основной папке вашего приложения для чтения и выполнения. Однако для создания новых файлов из вашего приложения вам также необходимо предоставить разрешение на запись для требуемой папки. Например: yUML использует tmp-папку для генерации файлов. Я дал разрешение на запись в папку tmp:

chmod -R 777/usr/share/nginx/html/yuml_product/tmp

решил мою проблему.