我正在尝试使用 virtualbox 处理 django 项目。项目目录是一个符号链接,指向驻留在主机上的共享文件夹。django 项目是在没有权限问题的情况下创建的,我成功地在客户机上使用 Apache 托管了该站点。但是,当我运行 collectstatic 时,我得到OSError: [Errno 30] Read-only file system
.
是否有其他用户需要添加到 vboxsf 组?我的用户是班卓琴,而 apache 的用户是 www-data
还是有其他解决方案?我真的很想把我的文件放在我的主机上。
这是我的设置
- 主机:Xubuntu 12.10
- 嘉宾:Xubuntu 13.04
- 姜戈:1.5.1
以下是我的设置步骤中的相关部分。另外,我启用了 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/
,但这并没有改变所有权。