首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >混合Windows和*nix环境- 'local‘后缀问题

混合Windows和*nix环境- 'local‘后缀问题
EN

Stack Overflow用户
提问于 2009-11-15 23:16:04
回答 3查看 334关注 0票数 0

愚蠢的问题-提前道歉。

我有一个Windows和Linux混合开发环境,服务器是Linux (Ubuntu)。假设服务器名为'myserver‘。

我在Windows和*nix (Ubuntu和OS )上开发,在*nix上将myserver引用为'myserver.local‘,在Windows上引用为'myserver’。

有什么想法吗?

非常感谢,奈德

EN

回答 3

Stack Overflow用户

发布于 2009-11-15 23:20:32

在/system32中的某个地方有一个名为hosts的文件,您可以在其中随意输入主机名,这些名称将被解析器考虑。应该能解决你的问题。

票数 1
EN

Stack Overflow用户

发布于 2009-11-15 23:31:53

Windows有一个hosts文件,您可以更改它,使myserver.local解析为127.0.0.1,就像Linux一样。它只是隐藏在Windows\System32\drivers\etc\HOSTS中。但是,如果您总是希望使用本地服务器进行引用,为什么不简单地编写localhost

不过,一般来说,您应该将部署设置与应用程序分开,而不是共享它们。当然,这取决于您正在讨论的语言/平台,但在我使用Python的情况下,我使用了一个脚本来调用应用程序,如下所示:

代码语言:javascript
复制
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()
票数 0
EN

Stack Overflow用户

发布于 2009-11-16 03:10:21

备选答案:

我曾经遇到过类似的问题,并厌倦了必须一直重新配置我的应用程序。我的解决方案与伯恩斯的建议类似:

这个想法是让你的应用程序根据它所在的位置进行不同的配置。不过,我不推荐使用“嗅探”。我更喜欢更“正式”和“具体”的东西。也就是说,应该在两台机器上的相同位置找到一些内容不同的数据。脑海中浮现出两种可能性:

  • 环境变量。它们在Java中被弃用,但它们在Linux和Windows上工作得很好。如果您有权访问启动脚本,则可以随意设置,并从项目本身外部的Java.
  • Properties/configuration文件中查询值。我使用了一个名为/local (linux)和C:\Local (Windows)的目录来包含我希望特定于主机的零碎配置。主目录也可以很好地处理这类事情;每个主机都有一个主目录,Java通常知道如何/在哪里找到它。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1737787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档