在另一个端口上运行laravel

时间:2014-03-10 22:01:10

标签: php apache laravel laravel-4

我在OS X 10.9上使用Bitnami MampStack。因为这是一台继承的笔记本电脑,我不得不在MAMP下设置Apache来监听端口8888.我调整了它以便在8889上监听并在我的httpd.conf文件中添加以下内容作为VirtualHost:

<VirtualHost *:8889>
    DocumentRoot "/Applications/mampstack-5.4.26-0/apache2/htdocs/codebright/public"
    ServerName localhost
    <Directory "/Applications/mampstack-5.4.26-0/apache2/htdocs/codebright/public">
        Require all granted
    </Directory>
</VirtualHost>

我按照示例here(所以我的所有源代码都与他匹配)。索引刀片可以使用,但editcreatedelete刀片会返回404。

在测试时,我发现http://localhost:8889/create返回了404,但http://localhost:8889/index.php/create返回了正确的视图。此外,浏览http://localhost:8888/codebright/public/create按预期工作。

所以......我对Laravel和MVC框架一般都是新手,有什么方法可以让这个安装在8889端口正常运行?

2 个答案:

答案 0 :(得分:1)

您的虚拟主机正常工作,您现在必须确保您的公共/ .htaccess文件已到位:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

这是重写您的网址的文件,从中移除/index.php

修改

另外,检查你是否安装并启用了mod_rewrite,因为你的.htaccess在Ubuntu / Debian中使用它来启用它,你必须执行:

sudo a2enmod rewrite

答案 1 :(得分:0)

通过this计算出来。我在AllowOverride All部分中遗漏了<Directory>。更新了httpd.conf

<VirtualHost *:8889>
    DocumentRoot "/Applications/mampstack-5.4.26-0/apache2/htdocs/codebright/public"
    ServerName localhost
    <Directory "/Applications/mampstack-5.4.26-0/apache2/htdocs/codebright/public">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

我以为我可能在RewriteEngine On定义中遗失了VirtualHost,但它似乎对我的问题没有影响。