提问人:Felix 提问时间:10/31/2023 最后编辑:Don't PanicFelix 更新时间:10/31/2023 访问量:57
“php artisan serve” 返回 “Operation not permitted”
"php artisan serve" returns "Operation not permitted"
问:
我目前正在尝试在云中的 linux 服务器(通过 ssh)上托管一个 Laravel 项目(在本地运行良好)。我已经上传了所有项目文件,并认为我可以像在本地一样在服务器上运行。这不起作用,并返回以下输出:php artisan serve
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解决方案,但没有一个有效:
- 无法在 linux 上启动 laravel 开发服务器(建议重新启动“php artisan serve”进程)
- Artisan 错误:无法侦听 localhost:8000(建议检查指定的端口是否可用)
- php 工匠服务失败(建议更改 php.ini 文件)
- 我无法在 linux 上执行 php artisan serve(建议更新 composer 以运行 artisan – 这个解决方案似乎很有前途,但我在服务器上没有 root 访问权限)
结果详细说明:
- 重新启动“php artisan serve”进程: 没有这样的进程在运行。
- 检查指定的端口是否可用:
该解决方案返回一个错误(),除此之外,我尝试了 8000 以上和以下的数十个端口,因此我认为该端口没有问题。
netstat: lnt: unknown or uninstrumented protocol
- 更改 php.ini 文件: 关于更改的内容(variables_order、扩展等)有很多建议,但没有一个适合我。
- 更新 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
)
另一个问题是,当搜索我的确切错误时,我在 Google 上没有得到任何结果,因此似乎没有在线解决方案,因为“原因:不允许操作”。
我是否可以尝试其他可能的解决方案,或者Root Access是必须的,我应该移动到另一个主机?
更多信息:
- 作曲家版本:1.10.26
- PHP版本:8.1.21
- Laravel框架:8.83.27(当我运行
php artisan -V
时它打印的内容)
答:
1赞
Cristian Livella
10/31/2023
#1
首先,它应该只在本地用于开发目的,因为它使用 PHP 内置的 Web 服务器,它不适合生产。php artisan serve
警告此 Web 服务器旨在帮助应用程序开发。它还可用于测试目的或在受控环境中运行的应用程序演示。它不打算成为一个功能齐全的 Web 服务器。它不应该在公共网络上使用。
尽管如此,您说您在服务器上没有root访问权限,所以我想您正在使用共享托管服务器。在这种情况下,提供商可能不允许您启动自己的 Web 服务器,但您必须使用提供商提供的控制面板来部署应用程序。
评论