我使用Laravel
包连接到支付系统,这个特定的包通过端口80发送和接收数据(当我使用端口8000进行支付时,我会遇到故障)。
如下所示:
How to run laravel 5 on port 80 of localhost?
我决定尝试一下,但会返回此错误:
Failed to listen on 127.0.0.1:80 (reason: Permission denied)
要发现哪个程序正在使用端口80,我输入sudo lsof -i :80
并收到以下输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
apache2 3102 root 4u IPv6 46970 0t0 TCP *:http (LISTEN)
apache2 3103 www-data 4u IPv6 46970 0t0 TCP *:http (LISTEN)
apache2 3104 www-data 4u IPv6 46970 0t0 TCP *:http (LISTEN)
apache2 3105 www-data 4u IPv6 46970 0t0 TCP *:http (LISTEN)
apache2 3106 www-data 4u IPv6 46970 0t0 TCP *:http (LISTEN)
apache2 3107 www-data 4u IPv6 46970 0t0 TCP *:http (LISTEN)
apache2 3108 www-data 4u IPv6 46970 0t0 TCP *:http (LISTEN)
apache2 3115 www-data 4u IPv6 46970 0t0 TCP *:http (LISTEN)
apache2 3116 www-data 4u IPv6 46970 0t0 TCP *:http (LISTEN)
apache2 3117 www-data 4u IPv6 46970 0t0 TCP *:http (LISTEN)
我也尝试了命令:sudo netstat -nltp | grep -iw "80"
,以下是它的输出:
tcp6 0 0 :::80 :::* LISTEN 3102/apache2
要释放端口80,我尝试了sudo kill -9 3102
,然后我跑了:
sudo netstat -nltp | grep -iw "80"
,输出结果为:
tcp6 0 0 :::80 :::* LISTEN 3330/apache2
>
(该港口被重新占用)。
我非常想知道如何使用端口80来开发我的Laravel应用程序(我正在使用Debian 9 Stretch
)。
答案 0 :(得分:0)
让我猜一下。我认为你在服务器中运行artisan server
。不建议在生产服务器上运行它。 artisan server
应仅用于开发环境。
根据您的解释,apache2
服务器已使用端口80。这很正常。您需要做的是将Laravel应用程序放到apache DocumentRoot
目录中。因为apache2
是真正的Web服务器。对于类似Debian的分发,位于DocumentRoot
的{{1}}为apache2
。您可以按照this指南获取更多信息。
希望它有所帮助。