设置Apache进行本地开发/测试?
Rails的截屏视频给我留下了深刻的印象,这些视频演示了内置的Web服务器以及允许在本地计算机上进行开发和测试的数据库。如何获得Apache实例以执行项目目录作为其DocumentRoot,并可能在端口8080(或者类似端口)上提供文件?
我问的原因是因为我要试用CodeIgniter,并且我想将其用于多个项目。我宁愿不要让每个机器都弄乱我机器的DocumentRoot。也欢迎有关如何进行数据库迁移的建议。
到目前为止,感谢回复。我需要澄清一下,我使用的是Mac OSX。WAMP似乎仅适用于Windows。同样,XAMPP看起来是安装Apache和许多其他Web工具的好方法,但是我看不到一种加载实例以提供项目目录的方法。 Mac OS X既安装了Apache又安装了PHP,我只是在寻找一种方法来使其在非标准端口上为项目服务。
我刚刚发现MAMP Pro可以满足我的要求,但如果可能的话,采用更简约的方法会更好。是否有人可以编辑httpd.conf文件并将其放入项目目录?
另外,对不起,我只是提出了这个数据库迁移问题。我希望找到的是使我能够将架构更改推送到活动服务器上而又不会丢失现有数据的东西。我怀疑这很困难,并且高度依赖于环境因素。
解决方案
我们可以使用低端的安装程序包(例如XAMPP)并将其作为单独的实例运行。也有许多其他类似的项目。
对于PHP,我们有几个用于部署Apache + Mysql + PHP的高质量软件包,例如WAMP和XAMPP。我个人下载了每个二进制文件的最新二进制文件,并手动进行安装,以进行更精细的控制。有很多在线教程介绍如何处理。
数据库迁移应该很简单,可以通过命令行或者通过诸如PHPMyAdmin之类的界面将数据库转储到服务器上,然后以类似的方式将其导出(如果我们没有使用Mysql命令行的经验,建议使用PHPMyAdmin)。
我还将为每个下载最新的二进制文件并手动设置它们。只要我们对配置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>
对于我而言,这是在本地计算机上轻松维护许多开发站点的最快,最简单的方法。
我希望这是有道理的。
干杯,
凯莉
我不使用Macos,但是我使用Apache。在我的apache配置文件中(在Linux上,通常在/etc/apache2/apache2.conf中),查找对名为ports.conf的文件的引用。找到此文件并添加行
听8080
然后重新启动apache进程。在那之后,你应该做生意。如果在Mac上无法正常使用,我事先表示歉意:)
抱歉,凯尔,我没有足够的信誉来直接回应评论。但是,如果我们希望每个项目都在不同的端口上进行服务,请尝试完全按照上述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>
希望对我们有所帮助://
Mac随附Apache Web服务器和PHP版本。这是该平台深受Web开发人员喜爱的主要原因之一。
由于使用的是Code Igniter,因此需要PHP 5,这是10.5附带的PHP的默认版本。如果我们使用的是旧版操作系统,请跳至entropy.ch并安装提供的PHP5软件包。
接下来,我们将要打开Apache。在共享首选项面板中,打开个人Web共享。这将在本地计算机上启动apache。
接下来,我们将需要设置一些虚假的开发URL来用于网站。我为此使用了伪造的TLD .dev(例如stackoverflow.dev)。编辑/ etc / hosts文件并添加以下行
127.0.0.1 www.example.dev 127.0.0.1 example.dev
这会将上述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.dev ServerName example.dev ServerAlias www.example.dev </VirtualHost>
我们可以将任何文件夹指定为DocumentRoot,但是我发现使用个人Sites文件夹很方便,因为该文件夹已经配置了包含文件的正确权限。
我们可以使用MAMP pro,但免费版本也是一个很好的选择。在这里获取:http://www.mamp.info/en/mamp.html
我可能建议为要尝试的每个开发环境使用单独的LAMP虚拟设备。在VMware Server或者VirtualBox上运行它们。