Php 从Apache服务器调用AWS函数

Php 从Apache服务器调用AWS函数,php,apache,amazon-web-services,permissions,Php,Apache,Amazon Web Services,Permissions,我有一个Apache服务器,在某些情况下,我希望它调用AmazonWeb服务(AWS)函数。具体来说,它必须将文件上载到S3存储桶。当我通过终端登录并以root用户身份运行命令时,一切正常,文件上传。但是,当事件由Apache生成时(我使用exec('whoami')检查用户是否为Apache),我会在应用程序日志中收到权限警告。即使在调用任何函数之前,我也会收到这些警告,它在include行失败: 包括“aws/aws autoloader.php” 我已将AWS文件的所有者更改为apache

我有一个Apache服务器,在某些情况下,我希望它调用AmazonWeb服务(AWS)函数。具体来说,它必须将文件上载到S3存储桶。当我通过终端登录并以root用户身份运行命令时,一切正常,文件上传。但是,当事件由Apache生成时(我使用exec('whoami')检查用户是否为Apache),我会在应用程序日志中收到权限警告。即使在调用任何函数之前,我也会收到这些警告,它在include行失败:

包括“aws/aws autoloader.php”

我已将AWS文件的所有者更改为apache,并将文件放置在不同的位置,包括与调用AWS代码的函数相同的目录以及用户的主目录中,但没有成功

具体警告是:

服务器[警告][-@127.0.0.1](7245)*警告:包括():失败 打开“aws/aws autoloader.php”以包含 (include_path='。:/usr/share/pear:/usr/share/php')在上的MyHandlers.php中 第4行

有人知道我该怎么解决这个问题吗?我已经为此挣扎了好几天了,所以任何提示/建议都将不胜感激


谢谢

在脚本的当前工作目录中是否有
aws
子目录?e、 g.如果您的脚本位于
/foo/bar/script.php
,那么您的aws文件必须位于
/foo/bar/aws/aws autoloader.php
(或者至少在php的脚本路径设置中有类似的内容)。是的,这正是当前的情况。我还尝试使用完整路径包含它。出于好奇,为什么不使用Composer来管理项目依赖项/自动加载?第二,如果使用绝对路径,例如include _udir _;怎么办/aws/aws autoloader.php';谢谢Ryan,我将尝试DIR方法。我第一次和作曲家试过,但没用。然后我下载了zip,这就是我现在使用的。我发现使用zip文件更容易,因为我不完全理解Composer在做什么。