需要开发设置建议 - Django +阿帕奇2 + mod_wsgi - 在 Mac 和 Ubuntu 开发服务器上
如果这个设置没问题,我需要建议。我有一个运行 Ubuntu 的个人开发服务器。我已经完全设置了 Ubuntu,并运行了 git、django、mod_wsgi 和 apache2。我将使用我的 Macbook Pro 进行开发。
我的想法是在两台计算机上的 Web 根目录下拥有相同的目录结构。
说:
Mac: /path/to/webroot/
...project1/
...project2/
Ubu: /home/me/webroot/
...project1/
...project2/
并使用 git 在 Ubu 服务器上启动存储库并将其克隆到我的 Mac 上并开始开发。这样我将实现:
- 多个代码实例。这样,如果 Ubuntu 崩溃,我在 Mac 上有代码,
- 我将在我的 Mac 上本地保存代码,如果我在旅途中,这将有所帮助。
如果这是一个好的想法或需要任何改进,请提出建议。
I need advice if this setup is ok. I have a personal dev server which runs Ubuntu. I have setup Ubuntu completely with git, django, mod_wsgi and apache2 running. I will be developing using my Macbook Pro.
My idea was to have identical directory structure on both machines off of web root.
Say:
Mac: /path/to/webroot/
...project1/
...project2/
Ubu: /home/me/webroot/
...project1/
...project2/
And use git to initiate the repo on Ubu server and clone it on my mac and start developing. This way I will achieve:
- Multiple code instances. So that if Ubuntu crashes, I have the code on Mac
- I will have the code locally on my Mac and that will help if I am on the move.
Please advice if this is a good thinking or needs any improvement.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用 Django,为什么还要安装 Apache。 Django 带有一个
优秀的开发环境。我只是使用:
manage.py runserver
你可以通过在服务器和你的服务器上进行 git 克隆来实现你的 2 点。
笔记本电脑用于工作。不需要阿帕奇。
两个注意事项:
由于我遇到了 MySQL 上发生的错误,但 sqlite 上没有,所以我测试了
部署之前在同一个 dbbackend 上进行项目。但为了发展
笔记本电脑,我只需要 Python、Django 和 sqlite。
我尝试使用与部署服务器上相同的Python。我已经部署在
“企业”发行版意味着古老(“稳定”)版本,错过了新版本
特征。 virtualenv 有助于保持事物分离。
这两个问题可以通过添加额外的“测试”部署来解决
服务器上的项目,以便在您之前在同一平台上进行最后一次测试运行
更新。
PS:如果您不介意安装和配置额外的软件,为什么不全力以赴在 virtualbox 中安装 Ubuntu VM 。您甚至可以将主服务器设为虚拟机,然后时不时地在路上拍摄图像快照...
编辑: runserver 将侦听本地主机上的端口 8000。如果您想从其他主机连接到它,请使用
manage.py runserver 0.0.0.0:8000
来监听所有 ip-addresser 上的 8000,或者,如果您担心将信息泄露给窥探者,请使用ssh -L8000:127.0.0.1:8000
通过 ssh 将本地主机(您的客户端)上的 8000 隧道连接到本地主机(您的服务器)上的 8000。无论哪个适合您的需求。If your using Django, why bother installing Apache. Django comes with an
excellent dev environment. I just use:
manage.py runserver
You achieve your 2 points, by just having git clones on the server and on your
laptop for work. No need for Apache.
Two notes:
Since I ran into a bug that occurred on MySQL, but didn't on sqlite, I test
projects on the same dbbackend before deploying. But for development on the
laptop, all I need is Python, Django and sqlite.
I try to use the same Python as on the deployment server. I've deployed on
"Enterprise" distro's which means ancient ("stable") versions, that miss new
features. virtualenv helps keeping things seperated.
These two can be solved by just adding an extra 'test' deployment of your
project on the server for a last testrun on the same platform just before your
updates.
PS: If you don't mind installing and configuring the extra software why not go all out and install an Ubuntu VM in a virtualbox. You could even make your main server a VM and every now and then take a snapshot of the image on the road...
edit: runserver will listen on port 8000 on localhost. If you want to connect to it from other hosts use
manage.py runserver 0.0.0.0:8000
to listen on 8000 on all ip-addresser or, if you're worried on leaking info to snoopers, usessh -L8000:127.0.0.1:8000 <ubuntu-server>
to tunnel 8000 on localhost (your client) to 8000 on localhost (your server) through ssh. Whichever fits your needs.对我来说听起来不错。
如果你想更加偏执(像我一样),你应该考虑第三个地方可以使用你的代码。一个 git 解决方案,例如 github 加上类似 Dropbox 可能值得考虑。
Sounds OK to me.
If you want to be extra paranoid (like I am) you should think of a third place where your code is available. A git solution like github plus something like Dropbox might be worth pondering.