如何在亚马逊AWS上使用FTP

7
今天是我尝试使用亚马逊的第二天,但我已经开始抓狂了。我想在亚马逊上设置FTP。我已经注册了他们的服务并创建了一个Amazon EC2实例。我已经下载了密钥,并能够通过Mac终端用SSH登录。我可以通过终端在实例中创建文件。实例看起来像以下内容: 公共DNS:ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com
我已经通过终端在这个位置创建了一个index.html文件,但当我使用以下URL在浏览器中查看时,它无法显示: ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com/index.html 我只想在这里创建Web服务,并在iPhone上使用它们。
同时,我不确定该怎么办。我如何获取我的本地文件并上传到服务器。在其他FTP中,我可以使用lcd、get、put等命令完成,但这些命令在这里不起作用。请问有人能帮我一下吗?因为此刻我只是在撞墙。谢谢。 Pankaj

我假设您已经在相关安全组中打开了正确的服务器端口? - JonLovett
请您能否详细说明一下?我需要哪些内容才能将其用作FTP。我还没有使用过任何端口。 - pankaj
当您创建实例时,您会指定一个安全组。在 AWS 管理门户的 ec2 选项卡下,您需要打开入站端口以访问您的实例(在适当的安全组内)。如果必要,您可以通过命令行完成此操作,但如果您不熟悉,请使用控制台。 - JonLovett
3个回答

8
使用scp通过ssh复制文件: scp -i 密钥对文件 要上传的文件 ec2-user@实例公共DNS: 注意末尾的冒号! 对于普通的EC2实例,您还需要安装某种Web服务器软件来为您的Web服务提供动力,并在防火墙中打开HTTP端口。 以防您计划用Java编写Web服务,我已经整理了一系列文章(第I部分第II部分第III部分),指导在Amazon Linux EC2实例上安装Apache Tomcat的基础知识。

昨天它还正常工作,但今天当我试图以类似的方式使用私钥连接亚马逊时,我发现连接超时了。你能帮我解决一下吗? - pankaj
我想你一定重新启动了你的实例。如果是这样,它的IP地址及其公共DNS已经发生了改变。为了避免这种问题,给你的实例分配一个弹性IP地址吧。 - Dmitry Leskov
这适用于我的密钥对文件的 .ppk 版本,而不是 .pem。 - TomDestry
@TomDestry 你不是在使用 PuTTY 自带的 pscp 吗? - Dmitry Leskov

3

编辑 2014/11/20

Dmitry Leskov的方法更好,建议使用他的方法。

回答于2012年

您首先需要在EC2实例上设置LAMP(Linux,Apache,mySQL,PHP)堆栈以运行任何类型的Web服务。

这意味着您必须经过以下步骤:

  • 创建EC2实例
  • 为mySQL数据设置EBS存储
  • 安装mySQL
  • 配置mySQL
  • 安装Apache
  • 配置Apache
  • 安装PHP
  • 配置PHP

如果您需要详细的说明,建议您参考这个链接:使用LAMP构建EC2

要将文件传输到您的EC2实例,您可以使用支持SFTP和密钥对的任何FTP客户端(您也可以启用PasswordAuthentication以使用凭据进行登录)。我使用Transmit没有问题。


4
运行Web服务时不需要LAMP。你只需要一个操作系统和一个Web服务器。Linux、Apache、MySQL和PHP都是可选的。我很高兴使用nginx、Python和PostgreSQL。 - airstrike
@micapam:这个回答已经超过两年了。在我写下这个回答的时候,它是针对当时提出的问题的答案,并且被pankaj接受了。 - dom

-1

顺便提一下,我遇到了一个奇怪的问题,即在apache下运行的PHP脚本中无法进行FTP操作,但如果我以root身份从命令行运行PHP脚本,则可以。经过一天的谷歌搜索,我找到了解决方法。

禁用SELinux(安全增强型Linux) 临时解决方案是:

echo 0 >/selinux/enforce

这将证明概念,但不会在重启后生效。有很多资源描述如何永久禁用SELinux。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接