我正在尝试使用virtualbox处理django项目。项目目录是指向驻留在主机上的共享文件夹的符号链接。django项目是在没有权限问题的情况下创建的,我成功地在来宾机器上使用Apache托管站点。然而,当我运行收集器时,我得到了OSError: [Errno 30] Read-only file system。
是否还有其他用户需要添加vboxsf组?我的用户是班卓琴,而apache的是www-data
还是有别的解决办法?我真的很想把我的文件放在我的主机上。
这是我的装置
以下是我的设置步骤中的相关部分。另外,我还启用了django管理员。需要收集的正是这些静态文件。
# add banjo user and apache user to shared folder owernship group
sudo gpasswd -a banjo vboxsf
sudo gpasswd -a www-data vboxsf
ln -s /media/sf_foobar foobar.com
mkdir -p foobar.com/dev
cd foobar.com/dev
mkvirtualenv foobar --no-site-packages
workon foobar
pip install django
django-admin.py startproject foobar
# settings.py
STATIC_ROOT = '/home/banjo/foobar.com/dev/foobar/static/'
python manage.py collectstatic -l我得到以下错误
(foobar)virtual-machine|foobar: python manage.py collectstatic -l
You have requested to collect static files at the destination
location as specified in your settings.
This will overwrite existing files!
Are you sure you want to do this?
Type 'yes' to continue, or 'no' to cancel: yes
Linking '/home/banjo/.virtualenvs/foobar/local/lib/python2.7/site-packages/django/contrib/admin/static/admin/css/rtl.css'
OSError: [Errno 30] Read-only file system这是显示所有者和组的文件系统的树。
virtual-machine|foobar.com: tree -L 3 -ug
.
└── [root vboxsf] prod
├── [root vboxsf] foobar
│ ├── [root vboxsf] foobar
│ ├── [root vboxsf] manage.py
│ └── [root vboxsf] static
├── [root vboxsf] logs
└── [root vboxsf] requirements.txt我运行了sudo chown -R banjo prod/,但这并没有改变所有权。
发布于 2013-06-02 03:51:11
问题不在于收藏本身。我使用的是-l标志,它创建静态文件的符号链接。
实际问题是virtualbox 4.1.18不允许在主机上创建符号链接。
我在服务器故障这里上找到了答案。有关更多信息,请参见这张virtualbox票
我在这里重新发布解决方案,以供快速参考。
在主机上运行以下命令:
VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1或在Windows上
VBoxManage.exe setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1其中VM_NAME是虚拟机的名称(例如Ubuntu),SHARE_NAME是共享目录的名称(没有"sf_“前缀)。
这将重新启用以前的符号友好行为。
完成此操作后,我不得不重新启动,然后共享文件夹上的符号链接就开始工作了!
https://stackoverflow.com/questions/16724543
复制相似问题