- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
问题的简短版本:
有什么区别get_current_user();
和 exec('whoami');
?
问题的长版:
我得到了这个错误:
file_put_contents(PDOErrors.txt): failed to open stream: Permissiondenied...
所以我做了一些调查,似乎要解决这个问题,我需要将文件 PDOErrors.txt 的 CHMOD
设置更改为 777。
但是,我的问题是关于别的东西。在这个过程中,我意识到我对Apache、PHP 和MySQL 中user
的概念理解不清楚。
get_current_user()
“获取当前PHP 脚本所有者的名称” Link exec('whoami')
返回“拥有正在运行的php/httpd 进程的用户名” Link get_current_user()
时,我得到了我的 firstnamelastname
,这是我在 Mac 上的帐户名。exec('whoami')
时,我得到了 daemon
。所以...
firstnamelastname
和 daemon
之间有什么关系?firstnamelastname
还是 daemon
?root
帐户的概念是否考虑到了这里的任何地方?编辑:我更新了它以反射(reflect)它不是我必须更改 CHMOD 设置的 folderxyz。我必须更改文件 PDOErrors.txt
的设置OP 在这里:为了将来引用,我在这里提出了一个关于 Linux 平台的平行问题(伴随着对正在发生的事情的直观解释):https://stackoverflow.com/questions/31389892/why-is-the-output-www-data-in-one-case-and-root-in-another
更新:那个问题被删除了,因为它被认为是这个问题的重复(尽管那是针对 Linux 平台的,而不是 daemon
我得到的是 www-data
在执行 echo exec('whoami');
之后。
这是我在 Linux 论坛上提出这个问题后学到的:
the running process is different than the script. Yes, the process emerges from the script, but it's not the same thing. The script is owned by root, but the process is taken over by Apache and is run as www-data.
总体结论:我从这个过程中了解到,user 应该是 Apache daemon(Mac 本地主机)或 www-data(互联网服务器上的 Linux)并且我应该使用 exec('whoami')
来确定这一点,我不应该太在意 get_current_user()
(可能应该命名为 get_current_owner()
)。
最佳答案
get_current_user()
(应该)返回文件的所有者,在本例中为 firstnamelastname
。然而,已报告此功能在平台之间不一致的问题。因此,我不会相信它的输出。 daemon
是 Apache 运行的用户。ls -la
以查找文件所属的用户和组。firstnamelastname
(+rw
)。daemon
和 PHP 文件设置 +rx
(执行和读取)+r
(读)。在我安装 XAMMP 时,他们通过将 htdocs
中的所有内容设置为公共(public)可读来完成此操作,因此 daemon
可以读取它,但不能写入它。htdocs
或 www
目录。它填补了传统 unix root 用户的角色。以下是有关文件所有者/组和进程所有者的一些信息:
host:~$ ls -l /Applications/XAMPP/xamppfiles/htdocs
drwxr-xr-x 3 root admin 4096 2015-01-01 00:01 .
drwxr-xr-x 3 root admin 4096 2015-01-01 00:01 ..
-rw-r--r-- 1 firstnamelastname admin 189 2015-01-31 20:45 index.php
host:~$ ps aux | grep httpd | head -n1
daemon 45204 0.0 0.1 2510176 10328 ?? S Tue11AM 0:01.38 /Applications/XAMPP/xamppfiles/bin/httpd -k start -E /Applications/XAMPP/xamppfiles/logs/error_log -DSSL -DPHP
如果你想让守护进程用户可以写入一个文件,你可以创建一个新文件夹并将其命名为拥有组 admin
的所有者(这样你也可以使用它),然后给+rwx
用于用户和组,+rx
用于公共(public):
host:~$ cd /Applications/XAMPP/xamppfiles/htdocs
host:htdocs$ mkdir some_dir
host:htdocs$ chmod 775 some_dir
关于PHP:get_current_user() 与 exec ('whoami' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28548743/
我正在尝试设置 rbenv: https://github.com/sstephenson/rbenv#section_2 我有一个问题:我必须在一切之前使用 rbenv exec 所以现在我要做 b
我已经使用我们的应用程序创建了图像,运行该图像后,我可以看到还创建了 docker 容器,当我尝试进入 docker 容器时,出现以下错误,请您在这里帮助我。 """"OCI runtime exec
这post on javapapers.com显示如何运行 JMH通过键入 mvn exec:exec 在 Maven 中进行基准测试。在 Maven 中运行 JMH 非常方便,因为您可以轻松地从 E
因为我是 shell 脚本的新手,exec命令总是让我感到困惑,同时用 while 探索这个话题循环触发了以下 4 个问题: 下面的语法 1 和 2 有什么区别 语法 1: while read LI
湖一看这两条线 案例 1 set cvsUpdStr [exec cvs -qn upd] 案例 2 set cvsUpdStr [exec cvs -qn upd >&@stdout] 对于第一种情
我有一个配置为使用 Maven 构建和运行的项目。该项目取决于平台特定的 native 库,我正在使用发现的策略 here管理这些依赖项。 本质上,特定平台的 .dll 或 .so 文件被打包到 ja
我发现 tcl exec 命令首先从标准输出返回字符串,然后是标准错误。例如,我下面的“测试脚本”按以下顺序生成消息: puts "test started" puts stderr "some no
我有 rpc error: code = 13 desc = invalid header field value "oci runtime error: exec failed: cannot ex
过去 2 天我遇到了一个问题。 我正在运行一个 tcl 脚本(用于 eggdrop),该脚本在被触发时执行本地 shell 命令(子进程),如果命令成功,它会输出结果。但是,如果命令不成功,我会收到错
假设我有一个像这样的 TCL 脚本: exec ls -l 现在这将打印出当前目录的内容。我需要将该输出作为字符串并解析它。我怎么能做到这一点? 最佳答案 exec返回输出,因此只需为其设置一个变量:
我正在尝试在 PHP 中使用 GNUPLOT 绘制正弦图,但是当我使用 exec 绘制该图时出现此错误: Warning: exec() [function.exec]: Cannot execute
我正在尝试 mvn exec:exec (或 mvn exec:java )使用类路径中的本地 jar 运行我的程序。但是 jar 无法加载: Exception in thread "main" j
我在最新的 Docker CLI 文档中注意到 Docker CLI 命令列表已经扩展。 如果我使用 码头执行 早些时候在容器内启动可执行文件现在我也可以使用 docker 容器执行 命令。 dock
这个问题在这里已经有了答案: Call to a member function exec() on a non-object error in PHP [duplicate] (1 个回答) 关闭
手册页说“exec() 系列函数用新的过程镜像替换当前的过程镜像。”但我不太明白“用新过程图像替换当前过程图像”的含义。比如exec成功,perror就达不到 execl("/bin/ls", /*
手册页说“exec() 系列函数用新的过程镜像替换当前的过程镜像。”但我不太明白“用新过程图像替换当前过程图像”的含义。比如exec成功,perror就达不到 execl("/bin/ls", /*
我正在 UrbanCode Deploy Shell 步骤中执行以下命令。我想要的是针对找到的所有文件运行 Util.sh。 find . -type f -exec ls -al {} \; fin
仅当将“-p”添加到 org.codehaus.mojo:exec-maven-plugin:1.6.0:exec 插件时,以下 pom.xml 执行才会失败,删除此参数后它运行正常,但我需要争论,有
我正在尝试进入 Maven 并开始编写一个小型库。作为库代码的一部分,我想要一个小型演示 Java 应用程序,可以用来查看库在做什么以及如何使用它。现在真正让我烦恼的一件事是,为了执行该演示,我必须执
我是 maven 的新手,在通过 maven 运行类文件时遇到问题 它运行良好 mvn exec:java -Dexec.mainClass="com.test.Test" 但不是 mvn exec:
我是一名优秀的程序员,十分优秀!