【问题标题】:Unable to start laravel development server on linux无法在 linux 上启动 laravel 开发服务器
【发布时间】:2016-02-14 23:13:34
【问题描述】:

我在我的项目中使用 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端口,所以我杀死了进程并启动了服务器,它工作了。停止并重新启动后,我得到了同样的错误。可能是什么问题(正如我所说的,除了现在一切正常,我还没有进行任何重大更新)?

【问题讨论】:

    标签: php linux laravel laravel-artisan


    【解决方案1】:

    您之前在本地的部署已经在运行,这就是您无法运行 php artisan serve 的原因。您可以通过在终端中执行以下命令来解决您的问题:

    1. ps -ef | grep php你会看到这个列表:

      古吉拉特邦 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
      古吉拉特邦 7436 3500 0 06:26 pts/1 00:00:00 grep --color=auto php

    2. 现在使用:sudo kill 6690 将其杀死,如果仍然存在,则使用此 sudo kill -9 6690,您将看到以下结果:

      [1]+ 杀死 php artisan serve

    现在您可以再次使用php artisan serve 为您的本地人提供服务

    【讨论】:

      【解决方案2】:

      请重启apache服务器

      sudo apache restart
      

      再次在另一个端口运行您的项目

      php artisan serve --port=2020
      

      【讨论】:

        【解决方案3】:

        这正是我为这个问题所做的。

        1. 我退出 PHPStorm
        2. sudo netstat -plnt
        3. kill 7563 (Process using port 8888)
        4. kill 6931 (Process using port 8000)
        5. sudo /opt/lampp/lampp restart(重新启动我的服务器)
        6. php artisan serve
        7. 启动 PhpStorm

        现在一切正常。到底是什么导致了这个问题?

        【讨论】:

          【解决方案4】:

          使用 lsof,你可以看到端口上正在监听什么。

          sudo lsof -i :80
          

          将 80 更改为您感兴趣的任何端口。您需要是 root 或 sudo。

          【讨论】:

            【解决方案5】:

            运行此评论

            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】:

              问题可能是它之前没有停止预期的方式,例如通过 CTRL+C 所以你可以做的是检查正在运行的 php 进程并一一杀死它们。

              i) 从终端运行 ps -A 然后识别 php 进程 ID(大多数时候它们是两个)

              ii) 运行sudo kill -9 pid#对应的php pid。

              iii) 运行 php artisan serve 即可。

              【讨论】:

                【解决方案7】:

                当 127.0.0.1:8000 上已有应用程序运行时,可能会发生这种情况

                您可以关闭该应用程序,然后它会在当前主机上运行或不可用。

                或者,如果您想运行多个应用程序,请使用以下方式:

                您可以使用此命令在 Linux 上运行 sudo php artisan serve --port=8082

                                        php artisan serve --port=8082 for window
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2021-09-11
                  • 1970-01-01
                  • 1970-01-01
                  • 2016-06-09
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多