在虚拟主机中使用自定义端口的 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 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章