Я использую 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 работает с другим пользователем и не имеет права изменять эти файлы.
Что я могу сделать? Я застрял!
Я пытался сделать то же самое с хостом 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, поэтому я не мог просто изменить код, не нарушая их системы.
Других решений пока нет …