我目前正在尝试在云中的Linux服务器上托管一个Laravel项目(在本地运行时非常好)(通过ssh)。我已经上传了所有项目文件,并认为我可以在服务器上运行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解决方案,但没有一个工作:
- Unable to start laravel development server on linux(建议重新启动“php artisan serve”进程)
- Artisan错误:无法侦听localhost:8000(建议检查指定的端口是否可用)
- php artisan serve failing(建议修改php.ini文件)
- I can't execute php artisan serve on linux(建议更新composer以运行artisan -此解决方案似乎很有希望,但我在服务器上没有root访问权限)
结果的详细描述:
- 重新启动“php artisan serve”进程:没有这样的进程正在运行。
- 检查指定的端口是否可用:该解决方案返回一个错误(
netstat: lnt: unknown or uninstrumented protocol
),除此之外,我尝试了几十个高于和低于8000的端口,所以我不认为端口是一个问题。 - 修改php.ini文件:关于修改什么(variables_order,extensions,等等)有很多建议,但没有一个适合我。
- 更新composer以运行artisan:Permission denied,因为我没有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
)
另一个问题是,当搜索我的确切错误时,我在谷歌上没有得到任何结果,所以似乎没有在线解决方案,因为“原因:不允许操作”。
有没有其他可能的解决方案,我可以尝试或根访问是一个必须有,我应该移动到另一个主机?
- 更多信息:*
- Composer版本:1.10.26
- PHP版本:8.1.21
- Laravel Framework:8.83.27(运行
php artisan -V
时打印的内容)
1条答案
按热度按时间ivqmmu1c1#
首先,
php artisan serve
应该只在本地用于开发目的,因为它使用PHP built-in web server,而不是用于生产。警告此Web服务器旨在帮助应用程序开发。它也可能用于测试目的或在受控环境中运行的应用程序演示。它不是功能齐全的Web服务器。不应在公共网络上使用。
然而,你说你没有root访问服务器,所以我猜你使用的是共享主机服务器.在这种情况下,你可能不允许您的提供商启动自己的Web服务器,但你必须使用提供商提供的控制面板来部署您的应用程序.