我正在使用laravel 5进行我的项目,一切都运行正常,但最近我遇到了这个问题,我明白了。
devboy@devboy-hp ~/sonel_ims_project/ims_eneo $ php artisan serve
Laravel development server started on http://localhost:8000/
[Fri Nov 13 12:00:56 2015] Failed to listen on localhost:8000 (reason: Address already in use)
我尝试了devboy@devboy-hp ~ $ sudo netstat -plnt
并获得了
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1840/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1985/cupsd
tcp 0 0 127.0.0.1:8888 0.0.0.0:* LISTEN 7563/php-5.6.3
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1656/master
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 6966/httpd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 740/smbd
tcp 0 0 127.0.0.1:6942 0.0.0.0:* LISTEN 7442/java
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN 6931/php-5.6.3
tcp 0 0 0.0.0.0:6667 0.0.0.0:* LISTEN 1539/ircd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 740/smbd
tcp 0 0 127.0.0.1:63342 0.0.0.0:* LISTEN 7442/java
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6966/httpd
tcp6 0 0 :::21 :::* LISTEN 7337/proftpd: (acce
tcp6 0 0 ::1:631 :::* LISTEN 1985/cupsd
tcp6 0 0 :::3128 :::* LISTEN 1416/squid3
tcp6 0 0 :::25 :::* LISTEN 1656/master
tcp6 0 0 :::445 :::* LISTEN 740/smbd
tcp6 0 0 :::3306 :::* LISTEN 7343/mysqld
tcp6 0 0 :::139 :::* LISTEN 740/smbd
然后我更改端口php artisan serve --port="8888"
但是在一段时间后得到类似的错误:
Laravel development server started on http://localhost:8888/
[Fri Nov 13 12:01:02 2015] Failed to listen on localhost:8888 (reason: Address already in use)
它第一次发生时,是java使用端口8000,所以我杀死了进程并启动了服务器并且它工作正常。停止并重新启动后,我收到同样的错误。可能是什么问题(正如我所说的一切都工作正常,除了现在我还没有做过任何重大更新)?
答案 0 :(得分:9)
您在本地的先前部署已在运行,这就是您无法运行php artisan serve
的原因。您可以在终端中按照以下命令解决问题:
ps -ef | grep php
您会看到此列表:
gujarat 6690 3500 0 05:55 pts / 1 00:00:00 php artisan serve
古吉拉特邦6694 6690 0 05:55 pts / 1 00:00:00 sh -c'/ usr / bin / php5' -S localhost:8000'/home/gujarat/WebDevelopment/quickstart-basic'/server.php
gujarat 6695 6694 0 05:55 pts / 1 00:00:00 / usr / bin / php5 -S localhost: 8000 /home/gujarat/WebDevelopment/quickstart-basic/server.php
gujarat 7436 3500 0 06:26 pts / 1 00:00:00 grep --color = auto php
现在使用sudo kill 6690
杀死它,如果仍然存在则使用此sudo kill -9 6690
您将看到此结果:
[1] + Killed php artisan serve
现在,您可以再次使用php artisan serve
为本地人服务
答案 1 :(得分:3)
这正是我为这个问题所做的。
sudo netstat -plnt
kill 7563 (Process using port 8888)
kill 6931 (Process using port 8000)
sudo /opt/lampp/lampp restart
(重启我的服务器altogther)php artisan serve
现在一切正常。是什么导致了这个问题?
答案 2 :(得分:2)
请重启apache服务器
sudo apache restart
再次在另一个端口运行您的项目
php artisan serve --port=2020
答案 3 :(得分:1)
使用lsof,您可以看到端口上正在侦听的内容。
sudo lsof -i :80
将80更改为您感兴趣的任何端口。你需要是root或sudo。
答案 4 :(得分:0)
问题可能是它没有阻止以前的预期方式,例如通过 CTRL + C 所以你可以做的是检查运行php进程并逐个杀死它们。
i)从终端运行ps -A
然后识别php进程ID(大多数情况下它们是两个)
ii)运行与php pids相对应的sudo kill -9 pid#
。
iii)运行php artisan serve
,它将起作用。
答案 5 :(得分:0)
运行此评论
sudo netstat -plnt
输出将显示如下
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 14 0 127.0.0.1:8000 0.0.0.0:* LISTEN 3648/php7.3
然后使用此注释杀死端口:8000
kill -9 3648
答案 6 :(得分:0)
当已经有一个运行在127.0.0.1:8000上的应用程序发生这种情况
您可以关闭该应用,然后该应用才能运行或在当前主机上不可用。
或者,如果您想运行多个应用程序,则使用以下方式:
您可以使用此命令为Linux运行 sudo php artisan serve --port=8082
php artisan serve --port=8082 for window