可以将AWS CloudFront用于PHP文件吗?

时间:2019-03-21 09:37:21

标签: php amazon-web-services amazon-cloudfront

我正在尝试使用AWS CloudFront加载诸如index.php之类的PHP文件。

文档说明-

  

如果要创建网络发行版,则:

     

例如,加快静态和动态内容的分发,   .html,.css,.php和图形文件。使用分发媒体文件   HTTP或HTTPS。添加,更新或删除对象,并从中提交数据   网络表单。使用直播流可以实时流式传输事件。

但是,当我将PHP文件上传到相对的CloudFront存储桶时,最终会下载文件并打开它。如何允许我托管PHP文件?

2 个答案:

答案 0 :(得分:2)

  

但是,当我将PHP文件上传到相对的CloudFront存储桶中

没有 CloudFront存储桶这样的东西,因此您可能指的是S3存储桶,该存储桶在CloudFront后面配置为原始服务器。

CloudFront可以处理动态内容,例如可能由PHP生成的内容,但是PHP站点必须托管在支持它的服务器上,而不是S3。

  

您可以在Amazon Simple Storage Service(Amazon S3)上托管静态网站。在静态网站上,单个网页包含静态内容。它们可能还包含客户端脚本。相比之下,动态网站依赖于服务器端处理,包括服务器端脚本,例如PHP ,JSP或ASP.NET。 Amazon S3不支持服务器端脚本。 (添加了重点)

     

https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html

请参见AWS Web Site Solutions,以获取有关托管包含静态或动态内容的网站的选项,请记住,PHP需要一种支持服务器端脚本和动态内容的解决方案,因此并非此处提供的所有解决方案(包括S3)都适合您需要...但是这些都与CloudFront兼容-CloudFront仅负责交付呈现的内容,而不是原始呈现。

答案 1 :(得分:1)

CloudFront旨在为最终用户提供内容,而不执行您的代码。您的PHP文件将位于运行PHP的EC2实例和一个Web服务器(Apache,Nginx)上,然后可以将其放在CloudFront后面以获得好处。然后,这将生成HTML供CloudFront使用。 CloudFront本身不处理处理,仅处理静态HTML。当将CloudFront与S3结合使用时,它将直接向最终用户提供内容。

我不确定您在哪里找到了该代码段,但简介似乎没有为我列出.php。

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html

  

Amazon CloudFront是一项网络服务,可加快您的分发速度   静态和动态Web内容,例如.html,.css,.js和图片   文件发送给您的用户。