如何在普通 Apache 上 运行 Laravel 项目?
How to run Laravel project on normal Apache?
我有 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 forbidden。这可能是因为这个目录没有 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>
现在您已将服务器名称设置为 exampledomain.com,您还需要在 windows 中设置主机 (DNS) 文件,以便您可以在 exampledomain.com 中输入浏览器并访问您的 laravel 项目。
正在编辑主机文件:
请按照以下步骤操作:
- 按 Windows 键。
- 在搜索字段中键入记事本。
- 在搜索结果中,右键单击记事本,然后 select 运行 作为
管理员。
从记事本打开以下文件:
c:\Windows\System32\Drivers\etc\hosts
对该文件进行以下更改。
在文件末尾添加以下行:
127.0.0.1 exampledomain.com www.exampledomain.com
单击“文件”>“保存”以保存您的更改。
我们在这里所做的是告诉 windows 当我们尝试访问 exampledomain.com 或 www.exampledomain.com 时,不要尝试通过互联网查找服务器,而是接受请求到本地机器本身 (127.0.0.1),它将在 return 为您的 laravel 项目提供服务。
您还可以在 wikihow 上找到另一种方法 -> http://www.wikihow.com/Install-Laravel-Framework-in-Windows
是的,绝对可以使用 Apache 为 Laravel 应用程序提供服务。要调试您的链接产生 404 错误的原因,您必须提供有关这些链接指向的 URL 的更多信息。打印 URL 时最好始终使用 Laravel 的 url()
、secure_url()
或 route()
辅助函数。还要确认 Apache 模块 mod_rewrite
已启用 (Laravel Installation: Web Server Configuration)
如果在配置虚拟主机后您仍然无法访问您的 laravel 应用程序,但它与 artisan serve 一起工作正常,请检查您的 apache php 版本:
检查/etc/apache2/mods-enabled,如果php模块低于laravel规范要求的模块,更新它。就我而言:
$ a2dismod php7.0
$ a2enmod php7.2
$ service apache2 reload
解决方案位于:https://laracasts.com/discuss/channels/laravel/unexpected-illuminatesupportarrphp-on-line-388
我有 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 forbidden。这可能是因为这个目录没有 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>
现在您已将服务器名称设置为 exampledomain.com,您还需要在 windows 中设置主机 (DNS) 文件,以便您可以在 exampledomain.com 中输入浏览器并访问您的 laravel 项目。
正在编辑主机文件:
请按照以下步骤操作:
- 按 Windows 键。
- 在搜索字段中键入记事本。
- 在搜索结果中,右键单击记事本,然后 select 运行 作为 管理员。
从记事本打开以下文件:
c:\Windows\System32\Drivers\etc\hosts
对该文件进行以下更改。
在文件末尾添加以下行:
127.0.0.1 exampledomain.com www.exampledomain.com
单击“文件”>“保存”以保存您的更改。
我们在这里所做的是告诉 windows 当我们尝试访问 exampledomain.com 或 www.exampledomain.com 时,不要尝试通过互联网查找服务器,而是接受请求到本地机器本身 (127.0.0.1),它将在 return 为您的 laravel 项目提供服务。
您还可以在 wikihow 上找到另一种方法 -> http://www.wikihow.com/Install-Laravel-Framework-in-Windows
是的,绝对可以使用 Apache 为 Laravel 应用程序提供服务。要调试您的链接产生 404 错误的原因,您必须提供有关这些链接指向的 URL 的更多信息。打印 URL 时最好始终使用 Laravel 的 url()
、secure_url()
或 route()
辅助函数。还要确认 Apache 模块 mod_rewrite
已启用 (Laravel Installation: Web Server Configuration)
如果在配置虚拟主机后您仍然无法访问您的 laravel 应用程序,但它与 artisan serve 一起工作正常,请检查您的 apache php 版本:
检查/etc/apache2/mods-enabled,如果php模块低于laravel规范要求的模块,更新它。就我而言:
$ a2dismod php7.0
$ a2enmod php7.2
$ service apache2 reload
解决方案位于:https://laracasts.com/discuss/channels/laravel/unexpected-illuminatesupportarrphp-on-line-388