Thursday, May 29, 2014

Work Process-การติดตั้ง Cloud ลงบน Raspberry Pi

ระบบปฏิบัติการที่ใช้


  • Windows 7

อุปกรณ์ฮาร์ดแวร์มีดังนี้

  • บอร์ด Raspberry Pi Model B
  • USB Cable
  • SD card ขนาด 8 GB
  • สาย LAN/RJ45

บอร์ด Raspberry Pi Model B

ซอฟแวร์หรือโปรแกรมที่ใช้มีดังนี้

  • ownCloud ( Open-source, ซอฟต์แวร์ระดับองค์กร )
  • Nginx ( Open-source, server ประสิทธิภาพสูง  )
  • OpenSSL (Open-source, ชุดเครื่องมือสำหรับ SSL/TLS)
  • php5 
  • Raspbian Wheezy (ระบบปฏิบัติการบนบอร์ด Raspberry Pi)
  • PuTTy for Windows

ขั้นตอนการติดตั้ง Cloud บน Raspberry Pi


1.) การเตรียมฮาร์ดแวร์และซอฟแวร์เพื่อเริ่มต้นใช้งานบอร์ด Raspberry Pi 


ใช้คำสั่ง command line sudo raspi-config ดังที่เคยปฏิบัติใน blog : การเตรียมฮาร์แวร์และซอฟต์แวร์เพื่อเริ่มต้นใช้งานบอร์ด Raspberry Pi เพื่อเรียกเมนูการตั้งค่าบอร์ด raspberry pi แต่ในการติดตั้ง cloud ควรจะตั้งค่าเริ่มต้นให้กับบอร์ดดังนี้   

  • ขยาย root filesystem เพื่อให้มีพิ้นที่รองรับ cloud
     select "Expand Filesystem"
  • เลือกการทำงานของ clock เป็น Modest or Medium
     select "Overclock" (เมื่อตั้งค่าเริ่มต้นให้กับบอร์ดเสร็จแล้วควร reboot บอร์ด RPi)

2.) อัพเดท package list บนบอร์ด Raspberry Pi

sudo apt-get update

sudo apt-get dist-upgrade

3.) สร้าง users

สำรับการติดตั้งนี้ใช้ groupName เป็น www-cloud
sudo groupadd groupName
 

สร้าง users ผู้ดูแล ซึ่งใช้ชื่อเป็น www-data เข้าไปใน group 
sodo usermod -a -G www-cloud www-data  

4.) ติดตั้ง packages 

เป็นการติดตั้ง  pakages ที่กล่าวไว้ข้างต้นด้วย command line
 sudo apt-get install nginx openssl ssl-cert php5-cli php5-sqlite php5-gd php5-curl php5-common php5-cgi sqlite3 php-pear php-apc curl libapr1 libtool curl libcurl4-openssl-dev php-xml-parser php5 php5-dev php5-gd php5-fpm memcached php5-memcache varnish

5.) สร้างใบรับรอบ SSL ให้มีระยะเวลาเป็น 2 ปี

 sudo openssl req $@ -new -x509 -days 730 -nodes -out /etc/nginx/cert.pem -keyout /etc/nginx/cert.key

sudo chmod 600 /etc/nginx/cert.pem
sudo chomd 600 /etc/nginx/cert.key


6.) กำหนดค่า Ngnix webserver

sudo nano /etc/nginx/sites-available/default

ให้ทำการกำหนดค่า โดยเพิ่ม code ดังต่อไปนี้ลงไป

* เปลี่ยนหมายเลข IP ตรงส่วนของ server_name ให้ตรงกับ หมายเลข IP ของ บอร์ด RPi

server {
    listen 80;
    server_name 192.168.XXX.XXX;
    rewrite ^ https://$server_name$request_uri? permanent; # enforce https
}
server {
    listen 443 ssl;
    server_name 192.168.XXX.XXX;
    ssl_certificate /etc/nginx/cert.pem;
    ssl_certificate_key /etc/nginx/cert.key;
    root /var/www/owncloud;
    index index.php;
    client_max_body_size 1000M; # set maximum upload size
    fastcgi_buffers 64 4K;
    location ~ ^/owncloud/(data|config|\.ht|db_structure\.xml|README) {
       deny all;
    }
    location / {
       try_files $uri $uri/ index.php;
    }
    location @webdav {
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS on;
        include fastcgi_params;
    }
    location ~ ^(?<script_name>.+?\.php)(?<path_info>/.*)?$ {
        try_files $script_name = 404;
        include fastcgi_params;
        fastcgi_param PATH_INFO $path_info;
        fastcgi_param HTTPS on;
        fastcgi_pass 127.0.0.1:9000;
    }
}

จากนั้น กด ctrl+X แล้วเลือก Y ตามด้วย Enter

7.) กำหนดค่า max upload ใน php

sudo nano /etc/php5/fpm/php.ini

ใช้ ctrl+w ในการหาบรรทัดด้านล่างนี้
upload_max_filesize
และเปลียนเป็น
upload_max_filesize = 1000M

post_max_size 
เป็น
post_max_size = 1000M

และในตอนล่างของไฟล์ ให้เพิ่มบรรทัดต่อไปนี้ลงไป
upload_tmp_dir = /srv/http/owncloud/data
extension = apc.so
apc.enabled =1  
apc.include_once_override = 0 
apc.shm_size = 256 
จากนั้น สร้าง folder สำหรับ owncloud data
sudo mkdir -p /svr/http/owncloud/data
sudo chown www-data:www-data /srv/http/owncloud/data

8.) การตั้งค่า PHP 

sudo nano /etc/php5/fpm/pool.d/www.conf

เปลี่ยนบรรทัดด้านล่างนี้จาก
listen = /var/run/php5-fpm.sock
เป็น
listen = 127.0.0.1:9000

sudo nano /etc/dphys-swapfile
เปลี่ยนบรรทัดด้านล่างนี้จาก
CONF_SWAPSIZE = 100
เป็น
CONF_SWAPSIZE = 512


9.) Restart web server และ PHP

sudo /etc/init.d/php5-fpm restart
sudo /etc/init.d/nginx restart


10.) ติดตั้ง ownCloud

sudo mkdir -p /var/www/owncloud
sudo wget http://download.owncloud.com/download/5.0.11/owncloud_enterprise-5.0.11.tar.bz2
sudo tar xvf owncloud_enterprise-5.0.11.tar.bz2
sudo mv owncloud/ var/www/
sudo chown -R www-data:www-data /var/www
rm -rf owncloud owncloud-5.0.7.tar.bz2

11.) ติดตั้ง account ผู้ดูแลระบบ

เข้าไปยัง web browser และพิมพ์หมายเลข IP ของบอร์ด RPi และให้สร้าง account ผู้ดูแล





เมื่อเข้าสู้ระบบได้แล้ว หากยังติดตั้งโปรแกรมไม่ครบจะมีการแจ้งเตือน


ให้เลือกไปยัง installation guide และทำตามคำแนะนำ(ถ้าหากใช้ windows ให้นำหน้าคำสั่ง command line ด้วย sudo)



เมื่อติดตั้งเสร็จแล้วจะสามารถเข้าใช้งาน ownCloud ได้ตามปกติ


ปัญหาและอุปสรรค

    ในช่วงที่ทำการดาวน์โหลด package สำหรับซอฟต์แวร์อย่าง openSSL,Nginx และ php5 โดยการใช้ Internet ของมหาวิทยาลัยในบางเว็บไซต์ไม่สามารถทำการดาวน์โหลดได้ จึงไม่สามารถเรียกไฟล์ที่ต้องใช้มากำหนดค่าเริ่มต้นได้ทำให้การติดตั้ง cloud บนบอร์ด RPi ไม่สำเร็จ

การแก้ปัญหาและอุปสรรค

    การที่ไม่สามารถดาวน์โหลด package ข้างต้นได้นั้นคาดว่าน่าจะมีสาเหตุมาจากระบบ Internet ของมหาวิยาลัยมีการป้องกันไม่ให้เข้าใช้บางเว็บไซต์ จึงทดลองเปลี่ยนสถานที่การใช้ Internet ซึ่งสามารถดาวน์โหลดได้ครบทุก package และสามารถติดตั้งระบบ cloud ได้


อ้างอิงจาก : How to setup your own cloud on Raspberry Pi





No comments:

Post a Comment