Rails的屏幕录像给我留下了深刻的印象,它展示了内置的Web服务器,以及允许在本地计算机上进行开发和测试的数据库。如何获取Apache的实例作为DocumentRoot执行项目目录,并可能在端口8080(或类似的东西)上提供文件?

我问的原因是因为我要尝试CodeIgniter,我想将它用于多个项目。我宁愿不要弄乱我的机器的DocumentRoot。关于如何进行数据库迁移的建议也是受欢迎的。


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

我刚刚找到了 MAMP Pro ,它可以满足我的需求,但更加简约如果可能的话,方法会更好。有没有人有一个可以编辑并放入项目目录的httpd.conf文件?

另外,抱歉我刚刚提到了数据库迁移问题。我希望找到的东西能够让我将架构更改推送到实时服务器而不会丢失现有数据。我怀疑这很难,而且高度依赖于环境因素。

有帮助吗?

解决方案

您的Mac附带Apache Web Server和PHP版本。这是该平台深受网络开发者喜爱的重要原因之一。

由于您使用的是Code Igniter,因此您需要PHP 5,这是10.5附带的PHP的默认版本。如果您使用的是以前版本的操作系统,请跳至 entropy.ch 并安装提供PHP5包。

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

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

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,但我发现使用您的个人“站点”文件夹很方便,因为它已经配置了包含文件的正确权限。

其他提示

抱歉,凯尔,我没有足够的信心直接回复你的评论。但是如果你想让每个项目都在不同的端口上提供服务,那么尝试设置你的虚拟主机配置就像上面的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>

希望有所帮助:/

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

在我的开发机器上,我使用基于名称进行apache设置虚拟主机。我还有一个 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>

这是我在本地计算机上轻松维护许多开发站点的最快捷,最简单的方法。

我希望这是有道理的。

干杯, 凯利。


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

听8080

然后重启apache进程。在那之后你应该做生意。如果这不适用于mac,我会事先道歉:)

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

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

数据库迁移应该很简单 - 在服务器上将数据库转储到命令行或通过接口,例如 PHPMyAdmin ,并以类似的方式将其导出(如果您没有使用Mysql命令行的经验,建议使用PHPMyAdmin。)

您可以使用MAMP专业版,但免费版也是一个非常好的选择。在此处获取: http://www.mamp.info/en/mamp.html

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top