代码之家  ›  专栏  ›  技术社区  ›  Kyle Cronin

为本地开发/测试设置Apache?

  •  11
  • Kyle Cronin  · 技术社区  · 16 年前

    Rails的屏幕广播给我留下了深刻的印象,它展示了内置的web服务器和数据库,允许在本地机器上进行开发和测试。如何让Apache实例作为其DocumentRoot执行项目目录,并在端口8080(或类似端口)上提供文件?

    我问这个问题的原因是因为我将要尝试CodeIgniter,我想在多个项目中使用它。我宁愿不要把我机器的文档根都弄乱。还欢迎提供有关如何进行数据库迁移的建议。


    感谢您到目前为止的回复。我应该澄清一下,我使用的是Mac OS X。看起来WAMP仅适用于Windows。此外,XAMPP看起来是安装Apache和许多其他web工具的好方法,但我看不到加载实例以提供项目目录的方法。MacOSX同时安装了Apache和PHP——我只是在寻找一种方法,让它在非标准端口上为项目提供服务。

    我刚找到 MAMP Pro 这正是我想要的,但如果可能的话,一个更简单的方法会更好。是否有人拥有可以编辑并放入项目目录的httpd.conf文件?

    8 回复  |  直到 13 年前
        1
  •  28
  •   Alana Storm    5 年前

    您的Mac同时带有Apache Web服务器和PHP构建。这是该平台深受web开发人员喜爱的一个重要原因。

    因为您使用的是CodeIgniter,所以需要PHP5,这是10.5附带的PHP的默认版本。如果您使用的是以前版本的操作系统,请跳到 entropy.ch

    接下来,您需要打开Apache。在“共享首选项”面板中,启用个人web共享。这将在本地计算机上启动apache。

    接下来,您需要设置一些用于站点的假开发URL。长期以来的传统是,我们会为此使用假TLD.dev(例如stackoverflow.dev)。然而 .dev 现在是一个实际的TLD,所以您可能不想这样做-- .localhost 似乎是一个新兴的事实标准。编辑/etc/hosts文件并添加以下行

    127.0.0.1    www.example.localhost
    127.0.0.1    example.localhost
    

    here . 基本上,您正在取消对将加载PHP模块的行的注释。

    无论何时更改apache配置,都需要重新启动apache才能使更改生效。在终端窗口中,键入以下命令

    sudo apachectl graceful
    

    这将优雅地重新启动apache。如果在配置文件中出现语法错误,apache将不会重新启动。您可以使用突出显示配置问题

    sudo apachectl configtest
    

    #NameVirtualHost *  
    

    最后,您需要告诉apache它应该在哪里查找新虚拟主机的文件。可以通过将以下内容添加到http.conf文件中来实现。注意:我发现最好将这样的配置规则分解成一个单独的文件,并使用include指令包含您的更改。这将阻止任何自动更新擦除您的更改。

    <VirtualHost *>
        DocumentRoot /Users/username/Sites/example.localhost
        ServerName example.localhost
        ServerAlias www.example.localhost
    </VirtualHost>
    

    您可以将任何文件夹指定为DocumentRoot,但我发现使用您的personal Sites文件夹很方便,因为它已经配置了包含文件的正确权限。

        2
  •  6
  •   Jurassic_C    16 年前

    对不起,凯尔,我没有足够的信誉来直接回应你的评论。但是,如果您想让每个项目都在不同的端口上运行,请尝试像上面Kelly的一样设置您的虚拟主机配置(除去dns内容),除了80之外,为每个虚拟主机提供自己的端口号,假设您已将此端口添加到ports.conf文件中。

    NameVirtualHost *
    
    <virtualhost *:80>
    DocumentRoot /site1/documentroot
    </virtualhost>
    
    <virtualhost *:81>
    DocumentRoot /site2/documentroot
    </virtualhost>
    
    <virtualhost *:82>
    DocumentRoot /site3/documentroot
    </virtualhost>
    
    <virtualhost *:83>
    DocumentRoot /site4/documentroot
    </virtualhost>
    

    希望这有助于:/

        3
  •  2
  •   Bazman    16 年前

    我还为每一个下载最新的二进制文件,并手动设置它们。我发现这是一个无痛的过程,只要您对配置Apache稍有了解。

    在我的开发机器上,我已经安装了apache name-based virtual hosting . 我也有一个 dyndns.org 将我的开发域映射到本地计算机的帐户。 DynDNS 提供一个通配符域,因此使用基于名称的虚拟主机,我可以轻松地为任意多个开发域创建任意多个站点(具有单独的文档根),所有这些站点都运行在一个Apache实例上。

    e、 g.虚拟主机的Apache配置可能类似于

    NameVirtualHost *:80
    
    <virtualhost *:80>
    ServerName site1.mydyndns.dyndns.org
    DocumentRoot /site1/documentroot
    </virtualhost>
    
    <virtualhost *:80>
    ServerName site2.mydyndns.dyndns.org
    DocumentRoot /site2/documentroot
    </virtualhost>
    

    我希望这是有道理的。

    干杯 凯利。


        4
  •  1
  •   Jurassic_C    16 年前

    我不使用Macos,但我使用Apache。在我的apache配置文件(linux上通常位于/etc/apache2/apache2.conf)中,查找对名为ports.conf的文件的引用。找到此文件并添加行

    听8080

        5
  •  0
  •   phloopy    16 年前

    您可以使用一个低端前端安装包,例如 XAMPP 并将其作为单独的实例运行。还有许多其他类似的项目。

        6
  •  0
  •   Eran Galperin    16 年前

    对于PHP,您有几个用于部署Apache+Mysql+PHP的高质量包,例如 WAMP XAMPP . 就我个人而言,我下载了每个版本的最新二进制文件,并手动安装,以实现更细粒度的控制。有很多关于如何处理这个问题的在线教程。

    PHPMyAdmin ,并以类似的方式将其导出回(如果您没有使用Mysql命令行的经验,建议使用PHPMyAdmin)。

        7
  •  0
  •   rg88    16 年前

    您可以使用MAMP pro,但免费版本也是一个很好的选择。在这里获取: http://www.mamp.info/en/mamp.html

        8
  •  0
  •   EmmEff    16 年前

    我可能会建议为您希望试验的每个开发环境使用单独的LAMP虚拟设备。在VMware Server或VirtualBox上运行它们。