如何在普通的Apache上运行Laravel项目?

时间:2017-03-25 19:14:11

标签: php apache laravel artisan

我有Laravel项目,可以用

运行它
php artisan serve

我在D:\Users\Dims\Design\MyApplication目录中执行此命令。之后我可以在http://localhost:8000上看到网站,并且可以导航它,虽然很慢。

现在我正在配置apache服务的相同位置:

<VirtualHost *:80>
    ServerAdmin webmaster@myapplication.app
    DocumentRoot "D:\Users\Dims\Design\MyApplication\public"
    ServerName myapplication.app
    ErrorLog "logs/myapplication-error.log"
    CustomLog "logs/myapplication-access.log" common
    <Directory />
        AllowOverride none
        Require all granted
        DirectoryIndex index.php
    </Directory>
</VirtualHost>

不是,我将应用程序指向的不是项目的根目录,而是指向public目录。这使我能够打开网站的主页,但点击任何链接会导致错误404。

如果我服务

DocumentRoot "D:\Users\Dims\Design\MyApplication"

使用Apache,我根本看不到主页,说403禁止。这可能是因为该目录没有index.php

那么,是否可以用Apache服务Laravel项目?

3 个答案:

答案 0 :(得分:3)

设置apache服务器主机文件,如下所示:

<VirtualHost *:80>
    ServerAdmin user@email.com
    DocumentRoot D:\Users\Dims\Design\MyApplication\public
    ServerName  exampledomain.com
    ServerAlias  www.exampledomain.com
    ErrorLog "C:/some_dir/example.error.log"
    CustomLog "C:/some_dir/example.access.log" combined
    <Directory "D:\Users\Dims\Design\MyApplication\public">
        Options -Indexes
        DirectoryIndex index.php index.html
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

现在您已将服务器名称设置为exampledomain.com,您还需要在Windows中设置主机(DNS)文件,以便您可以在浏览器中键入exampledomain.com并访问您的laravel项目。

编辑主机文件:

请按照以下步骤操作:

  • 按Windows键。
  • 在搜索字段中键入记事本。
  • 在搜索结果中,右键单击“记事本”,然后选择“运行方式” 管理员。
  • 在记事本中,打开以下文件:

    C:\ Windows \ System32下\驱动程序\等\主机

  • 对文件进行以下更改。

在文件末尾添加以下行:

127.0.0.1        exampledomain.com www.exampledomain.com

点击文件&gt;保存以保存更改。

我们在这里做的是告诉Windows,当我们尝试访问exampledomain.com或www.exampledomain.com时,不要尝试通过互联网查找服务器,而是将请求发送到本地计算机本身(127.0.0.1)这将反过来为您的laravel项目服务。

你也可以在wikihow找到另一种方法 - &gt; http://www.wikihow.com/Install-Laravel-Framework-in-Windows

答案 1 :(得分:2)

是的,使用Apache提供Laravel应用程序是绝对可能的。要调试链接产生404错误的原因,您必须提供有关这些链接指向的URL的更多信息。打印网址时,最好始终使用Laravel的url()secure_url()route()辅助函数。同时确认已启用Apache模块mod_rewriteLaravel Installation: Web Server Configuration

答案 2 :(得分:0)

如果在配置了虚拟主机之后,您仍然无法访问laravel应用,但与手工艺服务兼容,请检查您的apache php版本:

检查/ etc / apache2 / mods-enabled,如果php模块低于laravel规范中要求的模块,请对其进行更新。就我而言:

override var preferredFocusEnvironments: [UIFocusEnvironment] { return [childViewController] }

解决方案位于:https://laracasts.com/discuss/channels/laravel/unexpected-illuminatesupportarrphp-on-line-388