использование / dev / shm для vagrant — ОШИБКА РАЗРЕШЕНИЯ / MacOSX

Я использую Vagrant для разработки в среде Linux Ubuntu на моем MacOSX.

Работа с Symfony2. Все хорошо с БД и кодированием.

Когда я пытаюсь очистить кеш и установить активы, это выглядит так, как будто все готово, но я не могу использовать кеш, я думаю, потому что мои активы не изменены.

Итак, я попытался изменить каталог кэша на /dev/shm,

Обновил мою страницу и посмотрел на этот каталог, чтобы увидеть любой созданный каталог, я увидел каталог, успешно созданный пользователем и группой www-data. Так что php-fpm должен создать этот каталог, чтобы он работал?

Я попытался создать активы снова, но я получаю ошибку разрешения …

Каталог кеша кеша:

public function getCacheDir()
{
if (in_array($this->environment, array('dev', 'test'))) {
return '/dev/shm/appname/cache/' .  $this->environment;
}

return parent::getCacheDir();
}

public function getLogDir()
{
if (in_array($this->environment, array('dev', 'test'))) {
return '/dev/shm/appname/logs';
}

return parent::getLogDir();
}

Мой сценарий:

Файлы созданы www-data. Когда я пытаюсь установить активы на консоли (терминале);

php app/console assets:install web --symlink

php-cli или php-cgi работает с другим пользователем и не имеет права изменять эти файлы.

Что я могу сделать? Я застрял!

1

Решение

Я пытался сделать то же самое с хостом Ubuntu. В конце концов, в конце концов я создал app / cache в качестве ссылки на каталог / run / shm / sf-cache.

Это из сценария установки Bash, который я запускаю во время подготовки ….

# create the cache path
sudo mkdir -p /run/shm/sf-cache/
sudo chmod 777 /run/shm/sf-cache

# Copy over the rest of the files (from /vagrant to /var/www/sf-project/)
/vagrant/provision/resync_files.sh

# Setup the log folder
sudo chmod 777 /var/www/sf-project/app/logs

cd /var/www/sf-project

# Link the Cache folder to the folder in the ram drive.
sudo ln -s /run/shm/sf-cache/ app/cache

Но вы заметите, что единственный способ сделать это (по крайней мере, для меня) — создать копию файлов, которые находятся в / vagrant в / var / www /, так как / var / www находится в локальной файловой системе, / vagrant isn Т, его на хозяине.

С PHPStorm это не проблема, так как я просто делю папку / var / www / sf-project через samba, а затем сопоставляю ее как папку. На моем хосте Ubuntu (я нахожусь в процессе миграции с Windows на Ubuntu), я монтирую общий ресурс samba, затем создаю ссылку на каталог на точку монтирования, а затем в PHPStorm настраиваю сервер развертывания, чтобы развернуть его в локальной папке, которая потому что это общий ресурс samba, он копируется прямо в папку / var / www / sf-project.

Я ценю его большую работу, если вы не используете PHPStorm, но именно так я решил эту конкретную проблему. Я обнаружил, что это проще, чем пытаться переместить папку кеша, что осложняется тем, что не каждый разработчик использует ящик Vagrant, поэтому я не мог просто изменить код, не нарушая их системы.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]