我有一个运行 Apache 的 EC2 实例,我的网站(php 文件)也位于该 EC2 实例上。网站用户将能够上传和下载文件,我想将(用户上传的)文件存储在单独的 EBS 卷上。我是否需要授予 Apache 特殊权限才能写入单独的 EBS 卷?
答案1
将 EBS 卷视为另一个磁盘。创建卷后,您需要将其安装到 Linux 实例上。要从 AWS 控制台执行此操作,请右键单击 EBS 卷,然后选择“附加卷”。选择要将卷附加到的实例,它应该会建议一个设备名称(例如 /dev/sdg,假设您使用的是 Linux)。然后单击“附加”以附加卷。
此时,您需要登录到您的 EC2 实例。同样,假设您正在运行 Linux,您可以使用 lsblk 命令查看新磁盘。某些版本的 Linux 会将设备从 /dev/sdg 映射到 /dev/xvdg:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvdf 202:80 0 150G 0 disk
└─xvdf1 202:81 0 150G 0 part /data
xvdg 202:96 0 100G 0 disk
xvda1 202:1 0 16G 0 disk /
现在您需要对新磁盘进行分区(fdisk /dev/xvdg)、格式化它(mkfs /dev/xvdg1),然后将其挂载到文件系统上的某个位置(并且不要忘记在 /etc/fstab 中添加一个条目)。
您希望 Apache 将该卷挂载到哪里并在那里写入文件,并且运行 Apache 的用户将需要对该路径的写权限。