You can't run this command as root ( uid = 0 ).

魔众考试系统 / 文档中心
文档中心
开发教程
安装常见问题

最新的系统使用了是否使用 root 运行 php artisan 命令的检测,如果是 root 用户运行会提示 You can't run this command as root ( uid = 0 ). 错误。

例如:

[root@VM-0-16-centos example]# php artisan
You can't run this command as root ( uid = 0 ).

问题原因

系统出于安全考虑,禁止使用 root 用户运行 artisan 命令。需要使用运行 PHP 的实际用户来执行该命令。

解决方法

第一步:查找 PHP 的运行用户

使用以下命令查看网站的 PHP 进程运行用户:

ps aux | grep php

输出示例:

www      12345  0.0  0.5 123456 54321 ?  S    10:00   0:01 php-fpm: pool www
www      12346  0.0  0.5 123456 54321 ?  S    10:00   0:01 php-fpm: pool www

从输出可以看出 PHP 运行用户为 www(第一列显示的用户名)。

常见的 PHP 运行用户:wwwwww-datanginxapache

第二步:切换到 PHP 运行用户并执行命令

使用以下命令切换到 PHP 运行用户并执行 artisan 命令:

sudo -u www /xxx/bin/php /www/example.com/artisan xxx

或者直接切换到该用户:

su - www
/xxx/bin/php /www/example.com/artisan xxx

参数说明

  • www 为运行用户,根据实际情况替换
    • 宝塔环境下,默认用户是 www
    • 可通过 ps aux | grep php 命令查看
  • /xxx/bin/php 为 PHP 的运行路径
    • 宝塔环境下,通常为 /www/server/php/56/bin/php/www/server/php/70/bin/php
  • /www/example.com/artisan 为 artisan 命令的路径
    • 宝塔环境下,通常为 /www/wwwroot/example.com/artisan
  • xxx 为具体的 artisan 命令,如 queue:workmigrate

宝塔环境示例

在宝塔环境下,完整的命令示例:

sudo -u www /www/server/php/56/bin/php /www/wwwroot/example.com/artisan queue:work
QQ
微信
公众号
客服