Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在linux ubuntu上配置PHP CLI以作为www-data运行?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_262_1@

概述

我的ubuntu上有一个Symfony2应用程序. Symfony有很多有用的控制台命令(如php app / console cache:clear或php app / console assets:install web). 问题是如果我以root用户身份运行它们,新生成的文件将具有root:root用户/组,如果我访问我的网站,我会收到错误(因为apache无法读取/修改这些文件 – >他们
我的ubuntu上有一个symfony2应用程序. Symfony有很多有用的控制台命令(如PHP app / console cache:clear或PHP app / console assets:install web).

问题是如果我以root用户身份运行它们,新生成文件将具有root:root用户/组,如果我访问我的网站,我会收到错误(因为apache无法读取/修改这些文件 – >他们应该有www-data :WWW的数据).

运行chown www-datawww-data解决了这个问题,但每次清除缓存时运行它都不是解决方案.

如何配置PHP CLI以始终作为www-data用户/组运行?

要么

如何以不同的用户身份运行命令(作为root用户,将其作为www-data运行)?

解决方法

以另一个用户身份运行一次命令:
sudo -u www-data PHP script.PHP

如果你是root用户,这应该有效.

至于总是运行PHP作为www-data,有几种可能性.您可以创建一个简单的包装器sHellcript.如果/usr/bin/PHP只是/usr/bin/PHP5或类似软件的软链接,那就更简单了.只需用这样的脚本替换软链接(不是文件PHP5):

#!/bin/sh

sudo -u www-data PHP5 $*

return $?

然没有经过测试.另请注意,这将始终尝试以用户www-data运行PHP5,即使用户可能不是root用户,也可能没有权限这样做.它也可能不是你真正想要的.尝试执行PHP时,某些已安装的服务可能会遇到问题.

一个(可能更好)的解决方案只是将它应用于root可能是单独留下软链接/usr/bin/PHP并将脚本放在/ root / bin中.然后通过.bashrc,.profile或类似文件将该文件添加到PATH.如果您有/etc/skel/.profile,那可能会指出如何完成:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

一旦它出现在你的.bashrc,.profile或类似内容中,你打开的每个新sHell都允许你直接执行$HOME / bin中的任何可执行文件(X)(root用/ root / bin).

提示:您可能希望将包装脚本命名为PHPwww,因此您明确指定PHP script.PHPPHPwww script.PHP来决定是否需要常规或sudo’ed PHP.

一个解决方案是一个简单的别名.将它放在.bashrc,.profile或类似的地方:

alias PHPwww='sudo -u www-data PHP'

大佬总结

以上是大佬教程为你收集整理的如何在linux ubuntu上配置PHP CLI以作为www-data运行?全部内容,希望文章能够帮你解决如何在linux ubuntu上配置PHP CLI以作为www-data运行?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。