2015年11月11日 星期三

Drupal 上傳檔案到AWS S3上的方法(Upload File to AWS S3 From Drupal)

1.先在Drupal 安裝兩個Modules

     1.S3 File System (https://www.drupal.org/project/s3fs)
     2.Libraries API (https://www.drupal.org/project/libraries)

2.安裝AWS SDK for PHP 2.x library

     1.下載AWS SDK for PHP 2.x library的zip檔 (不能下載3.x版本會有問題)
     下載參考網址:https://github.com/aws/aws-sdk-php/releases
     目前是下載Version 2.8.23版的zip檔(aws.zip)

     2.解壓縮aws.zip檔到drupal的sites/all/libraries/awssdk2的路徑下。
          *可以先在local環境解壓縮再上傳。也可以將zip檔上傳後用命令模式(如ssh)去解壓縮(使用tar) 。例如 tar xvf filename.tar

3.設定S3 File System


     1.到「設定(setting)」/ 「媒體(media)」/ S3 File System來設定與AWS S3連線的設定。如圖:


    2.進入S3 File System後先設定 「S3 Bucket Name」與「S3 Region」。然後展開「 顯示AMAZON WEB SERVICES CREDENTIALS」來設定 「Amazon Web Services Access Key」,「Amazon Web Services Secret Key」。如圖:


4.設定drupal內容類型的圖片或是檔案欄位 上載目的地為s3 file system

如下圖所示
















設定完後就可以測試啦!!!

測試結果:





Drupal版本7.37

2015年7月16日 星期四

當Drupal時出現Mysql has gone away的問題時怎麼處理

這兩天Drupal出現問題剛開始時是想要新增Content type時出現這樣的畫面
  
不知道該如何解決時都執行幾次後,整個Drupal竟然沒法進入了。會出現下面這個畫面:


上網爬了很久幾乎都是說要增加mysql的max_allowed_packet到16M以上及加大php的memory limit size。

那就把AWS EC2上的設定改一下囉(我的Drupal 是裝在EC2上)。
先來修改mysql的設定吧。
sudo vim /etc/my.cnf

按 i 輸入以下文字

[mysqld]
max_allowed_packet = 64M

然後按下esc後輸入:wq存檔離開
重新啟動 mysql

sudo service mysqld stop
sudo service mysqld start

但是發現drupal 可以進入了不會出現Additional uncaught exception thrown while handling exception的錯誤但是還是不能新增Content type。
只好改 max_allowed_packet =256M

並一起修改php memory limit
sudo vim /etc/php.ini
找到memory_limit按i輸入修改為
memory_limit = 256M
然後按下esc後輸入:wq存檔離開

重新啟動apache跟mysql
sudo service httpd stop
sudo service httpd start
sudo service mysqld stop
sudo service mysqld start

終於可以成功進入drupal 並新增content type了。
進入後終於找到元兇了.......
因為我之前有安裝過token這個module。

token module 是個需要很大memory的一個模組如果沒有需要的話就關閉好了。


註:後來發現網路上也有一篇再說這個問題的討論,裡面說是auto_nodetitle 這個module照成上述問題的,內有提供兩個patch檔,用來配合修改一下auto_nodetitlle.module後,這個問題應該算是解決了。

https://www.drupal.org/node/1391706


2015年1月6日 星期二

Drupal Feeds Import 要匯入『分類』的資料時會出現『Column not found: 1054 Unknown column 'vocabulary_machine_name' in 'where clause'』的處理方式

Drupal7 Feeds Import 要用CSV檔匯入資料時如果資料裏頭有欄位是『分類』(taxonomy)的資料,會出現『Column not found: 1054 Unknown column 'vocabulary_machine_name' in 'where clause'』的訊息。上網找很久的終於搞定了。先筆記起來免得以後忘記了。

需要更換下面的檔案。(舊檔請記得先改名後再上傳檔案)。

1./sites/all/modules/feeds/plugins/FeedsTermProcessor.inc

2./sites/all/modules/feeds/mappers/taxonomy.inc

3./modules/taxonomy/taxonomy.module

更新的檔案如下: