Rails的屏幕显示了内置的web服务器和数据库,使开发和测试能够在本地机器上进行,这给我留下了深刻的印象。我如何获得一个Apache实例来执行一个项目目录作为它的DocumentRoot,并可能在端口8080 (或类似的东西)上提供文件?
我之所以问这个问题,是因为我将尝试CodeIgniter,并且我想将它用于多个项目。我不想把我的机器的DocumentRoot和每一个都乱七八糟的。关于如何进行数据库迁移的建议也受到欢迎。
到目前为止,感谢您的答复。我应该澄清一下,我在Mac上。看起来WAMP是Windows专用的。此外,XAMPP看起来是安装Apache和许多其他web工具的一种很好的方式,但我没有看到加载实例以服务于项目目录的方法。Mac同时安装了Apache和PHP --我只是想找一种方法让它在一个非标准端口上服务一个项目。
我刚刚找到了MAMP Pro,它可以做我想做的事情,但是如果可能的话,一种更简约的方法会更好。有谁有可以编辑并放到项目目录中的httpd.conf文件吗?
另外,很抱歉,我刚刚提出了数据库迁移的问题。我希望找到的是一些能够使我在不丢失现有数据的情况下将模式更改推送到活动服务器上的内容。我怀疑这是困难的,并高度依赖环境因素。
发布于 2008-09-23 01:44:29
Mac附带了一个和一个PHP构建。这是这个平台受到web开发人员喜爱的主要原因之一。
因为您使用的是代码点火器,所以需要PHP 5,这是10.5附带的PHP的默认版本。如果您使用的是以前版本的操作系统,请跳到entropy.ch并安装所提供的PHP5包。
接下来,您需要打开Apache。在“共享首选项”面板中,打开“个人网站共享”。这将在本地计算机上启动apache。
接下来,您需要设置一些假的开发URL以供您的站点使用。长期以来的传统是,我们会使用假的TLD .dev (前)。stackoverflow.dev)。然而,.dev现在是一个实际的TLD,所以您可能不想这样做-- .localhost似乎是一个新兴的事实标准。编辑/etc/host文件并添加以下行
127.0.0.1 www.example.localhost
127.0.0.1 example.localhost这将上面的URL指向本地计算机。最后一步是配置apache。具体而言,启用命名虚拟主机、启用PHP和设置一些虚拟主机。如果您使用熵PHP包,那么启用PHP就已经完成了。如果不是,您将需要按照描述的http.conf文件编辑这里文件。基本上,您正在取消对加载PHP模块的行的注释。
无论何时对apache配置进行更改,都需要重新启动apache才能使更改生效。在终端窗口,键入以下命令
sudo apachectl graceful这将优雅地重新启动apache。如果您在配置文件中犯了语法错误,apache将不会重新启动。可以突出显示配置问题。
sudo apachectl configtest因此,在启用PHP之后,您将需要打开NamedVirtualHosts。这将使apache能够响应多个URL。在http.conf文件中查找下面(或类似的)行并取消注释。
#NameVirtualHost * 最后,您需要告诉apache它应该在哪里查找新虚拟主机的文件。您可以通过在http.conf文件中添加以下内容来完成此操作。注意:我发现最好的做法是将这样的配置规则分解到一个单独的文件中,并使用include指令来包含您的更改。这将阻止任何自动更新删除您的更改。
<VirtualHost *>
DocumentRoot /Users/username/Sites/example.localhost
ServerName example.localhost
ServerAlias www.example.localhost
</VirtualHost>您可以将任何文件夹指定为DocumentRoot,但我发现使用您的个人站点文件夹很方便,因为它已经配置了包含文件的正确权限。
发布于 2008-09-23 01:23:40
对不起,凯尔,我没有足够的信誉直接回应你的评论。但是,如果您希望在不同的端口上为每个项目提供服务,请尝试设置您的虚拟主机配置,与凯利的配置完全相同(减去DNS内容),除非为每个虚拟主机提供自己的端口号,前提是您已经将该端口添加到您的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>希望这有帮助
发布于 2008-09-23 00:59:37
我还下载了每个二进制文件,并手动设置它们。我发现这是一个无痛的过程,只要您对配置Apache有一点了解就可以了。
在我的开发机器上,我用基于名称的虚拟主机安装了apache。我还有一个dyndns.org帐户,它将我的开发域映射到我的本地机器。DynDNS提供了一个通配符域,因此使用基于名称的虚拟主机,我可以轻松地为任意多个开发域创建任意数量的站点(具有独立的文档根),所有这些站点都运行在一个Apache实例上。
例如,用于虚拟主机的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>对于我来说,这是最快捷、最简单的方法,可以轻松维护本地机器上的许多开发站点。
我希望这是有意义的。
https://stackoverflow.com/questions/118423
复制相似问题