“php artisanserve”返回“不允许操作”

问题描述 投票:0回答:1

我目前正在尝试在云中的 Linux 服务器(通过 ssh)上托管一个 Laravel 项目(在本地运行得非常好)。我已经上传了所有项目文件,并认为我可以在服务器上运行“php artisanserve”,就像在本地一样。这不起作用并返回以下输出:

Starting Laravel development server: http://127.0.0.1:8000
[Tue Oct 31 ... 2023] Failed to listen on 127.0.0.1:8000 (reason: Operation not permitted)
Starting Laravel development server: http://127.0.0.1:8001
[Tue Oct ... 2023] Failed to listen on 127.0.0.1:8001 (reason: Operation not permitted)
Starting Laravel development server: http://127.0.0.1:8002
[Tue Oct ... 2023] Failed to listen on 127.0.0.1:8002 (reason: Operation not permitted)
Starting Laravel development server: http://127.0.0.1:8003
[Tue Oct ... 2023] Failed to listen on 127.0.0.1:8003 (reason: Operation not permitted)
Starting Laravel development server: http://127.0.0.1:8004
[Tue Oct 31 ... 2023] Failed to listen on 127.0.0.1:8004 (reason: Operation not permitted)
...

我已经尝试过以下 stackoverflow 解决方案,但没有一个起作用:

  • stackoverflow.com/questions/33691609/unable-to-start-laravel-development-server-on-linux/(建议重新启动“php artisanserve”进程)
  • stackoverflow.com/questions/27900174/artisan-error-failed-to-listen-on-localhost8000#33560446(建议检查指定端口是否可用)
  • stackoverflow.com/questions/64356428/php-artisan-serve-failing(建议更改php.ini文件)
  • stackoverflow.com/questions/54983528/i-cant-execute-php-artisan-serve-on-linux(建议更新composer以运行artisan - 这个解决方案似乎很有前途,但是我在服务器上没有root访问权限

结果详细描述:

  • 重新启动“php artisanserve”进程: 没有这样的进程正在运行。
  • 检查指定端口是否可用: 该解决方案返回一个错误(
    netstat: lnt: unknown or uninstrumented protocol
    ),除此之外我尝试了8000以上和以下的数十个端口,所以我不认为该端口有问题。
  • 更改 php.ini 文件: 关于更改内容有很多建议(变量顺序、扩展等),但没有一个对我有用。
  • 更新composer以运行artisan: 权限被拒绝,因为我没有 root 权限,无法运行 sudo 命令。 (
    Composer update failed: "/usr/local/bin/composer.phar" could not be written.     rename(/usr/local/bin/composer.phar): Failed to open stream: Permission denied
    )

另一个问题是,当搜索我的确切错误时,我在谷歌上没有得到任何结果,所以网上似乎没有“原因:不允许操作”的解决方案。

是否有其他可能的解决方案我可以尝试,或者根访问权限是必须的,我应该转移到另一台主机?

更多信息:

  • 作曲家版本:1.10.26
  • PHP 版本:8.1.21
  • Laravel 框架:8.83.27(我运行时打印的内容
    php artisan -V
php linux laravel composer-php laravel-artisan
1个回答
0
投票

首先,

php artisan serve
只能在本地用于开发目的,因为它使用 PHP 内置 Web 服务器,而不是用于生产。

警告 该 Web 服务器旨在帮助应用程序开发。它还可用于测试目的或在受控环境中运行的应用程序演示。它并不是一个功能齐全的 Web 服务器。它不应该在公共网络上使用。

尽管如此,您说您在服务器上没有根访问权限,所以我猜您正在使用共享托管服务器。在这种情况下,您的提供商可能不允许您启动自己的 Web 服务器,但您必须使用提供商提供的控制面板来部署您的应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.