QQ扫一扫联系
最新的系统使用了是否使用 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 运行用户:
www、www-data、nginx、apache等
第二步:切换到 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:work、migrate 等在宝塔环境下,完整的命令示例:
sudo -u www /www/server/php/56/bin/php /www/wwwroot/example.com/artisan queue:work