愚蠢的问题-提前道歉。
我有一个Windows和Linux混合开发环境,服务器是Linux (Ubuntu)。假设服务器名为'myserver‘。
我在Windows和*nix (Ubuntu和OS )上开发,在*nix上将myserver引用为'myserver.local‘,在Windows上引用为'myserver’。
有什么想法吗?
非常感谢,奈德
发布于 2009-11-15 23:20:32
在/system32中的某个地方有一个名为hosts的文件,您可以在其中随意输入主机名,这些名称将被解析器考虑。应该能解决你的问题。
发布于 2009-11-15 23:31:53
Windows有一个hosts文件,您可以更改它,使myserver.local解析为127.0.0.1,就像Linux一样。它只是隐藏在Windows\System32\drivers\etc\HOSTS中。但是,如果您总是希望使用本地服务器进行引用,为什么不简单地编写localhost
不过,一般来说,您应该将部署设置与应用程序分开,而不是共享它们。当然,这取决于您正在讨论的语言/平台,但在我使用Python的情况下,我使用了一个脚本来调用应用程序,如下所示:
hostname= socket.gethostname()
if hostname=='devbox':
def dbfactory():
return MySQLdb.connect(db= 'myapp', user= 'foo', passwd= 'bar')
myapp= mymodule.Application(dbfactory, debug= True)
elif hostname=='www':
def dbfactory():
return MySQLdb.connect(db= 'myapplive', unix_socket= '/usr/local/var/mysql/socket', user= 'baz')
myapp= mymodule.Application(dbfactory, debug= False)
else:
raise NotImplementedError('No known deployment config for machine %r' % hostname)
myapp.run()发布于 2009-11-16 03:10:21
备选答案:
我曾经遇到过类似的问题,并厌倦了必须一直重新配置我的应用程序。我的解决方案与伯恩斯的建议类似:
这个想法是让你的应用程序根据它所在的位置进行不同的配置。不过,我不推荐使用“嗅探”。我更喜欢更“正式”和“具体”的东西。也就是说,应该在两台机器上的相同位置找到一些内容不同的数据。脑海中浮现出两种可能性:
https://stackoverflow.com/questions/1737787
复制相似问题