[AWS] Ubuntu安裝s3fs流程

前言

S3FS是將S3做為掛載硬碟使用的檔案系統(FUSE-based),

透過S3FS可以將S3當作本地端的硬碟來進行讀寫,

因此可以用原生的方式來存取檔案。

這陣子在做需要大量儲存空間的專案,使用S3存放檔案;

AWS雖然有提供SDK,但發現不夠彈性,

也多了些冗餘的步驟,因此採用S3FS來彌補SDK的不足。

安裝FUSE

s3fs是以FUSE為基礎的系統,因此安裝s3fs前需要先安裝FUSE。

FUSE載點:http://sourceforge.net/projects/fuse/files/fuse-2.X/

閱讀全文《[AWS] Ubuntu安裝s3fs流程

[AWS] 使用S3的PHP SDK刪除資料夾

首先要先說明──S3沒有資料夾的概念。

在S3裡面可以看到分層,

其實只是檔名中的/以分層來呈現。

我最先找到的資料是:

使用get_object_list()指定prefix(前綴字,即假想的資料夾),

再用foreach去跑delete_object()

不過最直覺的方式應該是使用delete_all_objects()

一樣是指定prefix(用正規表示式),但省下跑清單跟迴圈的程式碼,好用許多。

[AWS] EC2連接RDS

申請完EC2跟RDS的兩個服務後,

接下來要從主機連資料庫,該如何進行?

首先要設定RDS的Security Group,

Inbound中新增規則:Port Range為3306(RDS的預設port),Source為EC2的Private IP

此時登入EC2主機輸入指令:

mysql -h [RDS的Endpoint網址] -P 3306 -u [RDS使用者帳號] -p

rds

Ubuntu安裝FTP伺服器

文章上半部為Ubuntu安裝vsftpd的流程,

AWS後台的設定可直接瀏覽文章底部內容。

首先要安裝FTP的程式(vsftpd):

$ sudo apt-get install vsftpd

安裝好後,修改設定檔$ sudo vi /etc/vsftpd.conf

設定時有參考鳥哥:FTP伺服器設定

以下為新增帳戶的部分:

$ useradd -g 群組 -d 家目錄 帳號名稱

這個指令是新增帳號,如果是裝Apache的使用者,

家目錄參數可以設在/var/->即網站根目錄(WWW)的上一層。

*chroot_local_user設為YES時,FTP帳戶不得有家目錄之權限,

權限必須設在家目錄的子資料夾(如上述的WWW),否則無法訪問FTP。

$ passwd 帳號名稱

這個指令用來設定帳號的密碼。

如果是多帳戶、多網站的環境,例如:

一個班級每個學生都擁有自己的網頁空間,

且每個學生的學號為一個帳戶。

實作後的網址為:http://網站.com/~學號

則可以開啟Apache的userdir功能模組。

如果不需要此功能可略過這部分。

sudo a2enmod userdir

這個指令是開啟Apache的userdir模組。

接著修改userdir的設定:sudo vi /etc/apache2/mods-enabled/userdir.conf

修改如下:

做到這裡,此時PHP的檔案應都開不起來,

我們還要修改PHP的設定檔。

$ sudo vi /etc/apache2/mods-available/php5.conf

打開後,註解有提到要re-enable php要註解<IfModule>這個標籤的內容。

修改後如下:

最後,在每個帳號的家目錄底下建立資料夾public_html

重新啟動apache後,試試看http://網站.com/~帳號

此時應可正常運作。

下述是AWS的設定:

在Security Groups的Inbound開啟21port,

再使用上述建立的帳號、密碼去連Public IP即可。