我有一个EC2实例托管我的网站。我正在尝试使用AWS SES PHP API,它已经安装在我的主目录(/home/ec2-user/)
我的web服务器(/var/www/html/)需要引用一个凭证文件和API本身,它们都存储在主文件夹中。
问题是用户'apache'是PHP默认运行的,没有访问主文件夹的权限。
我应该添加'apache'到某种可以访问主文件夹的组,或者我应该在我的'ec2-user'下运行PHP ?
这些类型的服务器限制是故意设置的。在一个完美的场景中,运行web服务器的用户(在您的实例中是apache)应该只能访问web根目录下的文件。这样做是为了提供安全保证,确保恶意脚本无法利用您的服务器,例如,如果您已经将apache访问权限授予ec2-user主目录,则可以利用该权限访问/home/ec2-user/.ssh
及其内容(例如)。
最好的选择是在你的web根目录下安装PHP SDK。您可以使用composer轻松地做到这一点。
将web文件保存在web根目录中。不要绕过默认的安全限制,除非您知道自己在做什么,并且有很好的理由这么做!