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

Php 如何在普通Apache上运行Laravel项目?,php,apache,laravel,laravel-artisan,Php,Apache,Laravel,Laravel Artisan,我有一个Laravel项目,可以用它运行 php artisan serve 我正在D:\Users\Dims\Design\MyApplication目录中执行此命令。之后,我可以看到网站上,并可以浏览它,虽然速度慢 现在,我正在配置由apache提供服务的相同位置: <VirtualHost *:80> ServerAdmin webmaster@myapplication.app DocumentRoot "D:\Users\Dims\Design\MyApp

我有一个Laravel项目,可以用它运行

php artisan serve
我正在
D:\Users\Dims\Design\MyApplication
目录中执行此命令。之后,我可以看到网站上,并可以浏览它,虽然速度慢

现在,我正在配置由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>
对于Apache,我根本看不到主页,说403禁止。这可能是因为此目录没有
index.php


那么,是否可以使用Apache为Laravel项目提供服务?

设置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>
单击文件>保存以保存更改

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


您还可以在wikihow找到另一种方法->

是的,使用Apache为Laravel应用程序提供服务是绝对可能的。要调试链接产生404错误的原因,您必须提供有关这些链接指向的URL的更多信息。打印url时,最好始终使用Laravel的
url()
secure\u url()
route()
帮助函数。还要确认Apache模块
mod_rewrite
已启用()

如果在配置virtualhost后,您仍然无法访问您的laravel应用程序,但它可以与artisan serve配合使用,请检查您的Apache php版本:

选中/etc/apache2/mods enabled,如果php模块低于laravel规范中要求的模块,则更新它。就我而言:

$ a2dismod php7.0
$ a2enmod php7.2
$ service apache2 reload

在以下位置找到解决方案:

已禁用
mod\u rewrite
127.0.0.1        exampledomain.com www.exampledomain.com
$ a2dismod php7.0
$ a2enmod php7.2
$ service apache2 reload