在虚拟主机中使用自定义端口的 Laravel 路由在 Apache 中不起作用

Posted

技术标签:

【中文标题】在虚拟主机中使用自定义端口的 Laravel 路由在 Apache 中不起作用【英文标题】:Laravel route not working in Apache using custom port in virtual host 【发布时间】:2014-04-22 13:33:47 【问题描述】:

我有一台运行 Linux 的服务器。它是一个 IP 为 10.61.0.3 的虚拟机。目前用于为我位于/var/www/html 端口80 的网站提供服务。

我想从位于 /var/www/laraapp 的服务器到端口 8080 提供 Laravel 应用程序。

我当前用于虚拟主机的 apache conf 是:

<VirtualHost *:8080>
  ServerName 10.61.0.3:8080
  DocumentRoot /var/www/laraapp/public
</VirtualHost>

当我访问10.61.0.3:8080 时,什么都没有显示。以下是 apache error_logs 上显示的内容:

[Mon Mar 17 17:28:43 2014] [notice] caught SIGTERM, shutting down
[Mon Mar 17 17:28:48 2014] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0
[Mon Mar 17 17:28:48 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Mon Mar 17 17:28:48 2014] [notice] Digest: generating secret for digest authentication ...
[Mon Mar 17 17:28:48 2014] [notice] Digest: done
[Mon Mar 17 17:28:48 2014] [notice] Apache/2.2.15 (Unix) DAV/2 php/5.4.7 configured -- resuming normal operations
[Mon Mar 17 17:28:48 2014] [error] avahi_entry_group_add_service_strlst("10.61.0.3") failed: Invalid host name

我该怎么办?

注意:

我可以使用内置 PHP Web 服务器运行我的 larapp。 LoadModule rewrite_module modules/mod_rewrite.so/etc/httpd/conf/httpd.conf 中未注释 Listen 8080 已在 /etc/httpd/conf/httpd.conf 中声明

【问题讨论】:

【参考方案1】:

在 Apache 文档中,ServerName 应该类似于域名 http://httpd.apache.org/docs/2.2/mod/core.html#servername

尝试将ServerName 10.61.0.3 更改为ServerName example.com

不要忘记将127.0.0.1 example.com 添加到您的/etc/hosts

如果你想让 VirtualHost 在 8080 端口上运行,你必须定义 NameVirtualHost http://httpd.apache.org/docs/2.2/vhosts/examples.html#port

例如:

Listen 8080

NameVirtualHost 10.61.0.3:8080

<VirtualHost 10.61.0.3:8080>
    ServerName example.com  
    DocumentRoot /var/www/laraapp/public  
</VirtualHost>

【讨论】:

System32中的文件你改了吗?

以上是关于在虚拟主机中使用自定义端口的 Laravel 路由在 Apache 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用虚拟主机 XAMPP 查看路由 Laravel 时出错

Laravel - 使用 json 字段自定义路由模型绑定中的键

Lumen/Laravel - 使用自定义路由器

自定义路由在 Laravel 中无法解析

Laravel 8 自定义路由在使用资源时返回 404

Laravel 8 Jetstream如何在重置密码后将用户重定向到自定义路由