Apache/PHP从目录中服务(类似于rails服务器)


Apache / PHP Serve from directory (like rails server)

我在一家网店工作,在那里我们做了很多WordPress网站,但在过去的几年里,我一直在开发一些rails应用程序,学习本地开发的方法等等。切换到目录并运行rails server的便利性让我想要为Apache/PHP开发工作流程提供类似的解决方案。有人知道从工作目录快速轻松地启动Apache(或nginx,或lighttpd)/PHP服务器的解决方案吗?或者我自己配置了一些东西来监视某个目录吗?我过去使用过MAMP,但这不是我想要的。我也调查过《流浪者》,但它似乎比它的价值更麻烦。

很抱歉,如果我在这里说不通,我甚至不知道这在技术上是否可行,只是想知道是否有人在寻找类似的东西。

有几个解决方案:

  1. 您可以编辑httpd.conf(或apache.conf)文件并添加一个VirtualHost(下面的示例),然后重新启动apache。(这是您的最佳选择,因为它使用Apache(设计为服务器的东西)来托管您的网站,而不必一遍又一遍地运行命令)
  2. 您也可以在conf文件中使用ScriptAliasScriptAliasMatch。这不会转换目录,但可以让您进行更详细的重定向
  3. Simlink将您的目录链接到您的网站应该加载的任何位置。对我来说,这似乎很草率,也不太理想
  4. 使用内置的Web服务器。好处是,这几乎可以运行一个命令并拥有一个即时服务器,但不利的是,这实际上只应用于开发,而且它并不完全符合Apache的能力

虚拟主机示例(请确保将127.0.0.1 myserver.local添加到/etc/hosts):

 <VirtualHost *:80>
    DocumentRoot "/path/you/like"
    ServerName myserver.local
    # This should be omitted in the production environment
    SetEnv APPLICATION_ENV development
    <Directory "/path/you/like">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride All 
        Order allow,deny
        Allow from all 
    </Directory>
 </VirtualHost>

您正在寻找mod_rewrite或http://wiki.nginx.org/NginxHttpRewriteModule.

作为另一个更新且有用的选项,PHP.net上的指南展示了如何使用PHP:运行命令行Web服务器

"从PHP 5.4.0开始,CLI SAPI提供了一个内置的web服务器"

从项目根目录运行php -S

$ cd ~/public_html
$ php -S localhost:8000