Gradle enable daemon

Thursday, December 24, 2015 9:42 AM 0 Comments ,

for all project append "org.gradle.daemon=true" into file ~/.gradle/gradle.properties

echo "org.gradle.daemon=true" >> ~/.gradle/gradle.properties

 for each project append "org.gradle.daemon=true" into file gradle.properties on your project


Parallel compile module

append "org.gradle.parallel=true" on your  gradle.properties

0 comments:

[Facebook Bug Bounty] Graph API can change published photo

Monday, November 23, 2015 5:36 PM 0 Comments ,

Impact :

The impact of vulnerability. it can change  any photo of my own that was already published (without lost like and comment).

Description :
1. replace PHOTO_ID with photo you need to change https://graph.facebook.com/[PHOTO_ID]

2. attach photo you want to change on parameter url (https://developers.facebook.com/docs/graph-api/reference/photo#Updating)

3. use access_token from Facebook for Android to change photo

4. Done.


Timeline

May 5, 2015 at 3:51am – Report Sent
May 5, 2015 at 11:23am – Clarification by Facebook
May 5, 2015 at 11:35am – Clarification sent with video
May 5, 2015 at 12:29pm – Escalation by Facebook
June 12, 2015 – Ask progress to Facebook
June 12, 2015 – Response from Facebook (still discuss with team)
Sep 24, 2015 – Ask progress to Facebook
Sep 29, 2015 – Response from Facebook (The team is still working on this)
Oct 23, 2015 – Patched by Facebook
Nov 5, 2015 – Bounty Awarded of $1000 by Facebook

0 comments:

วิธี Compile PHP จาก Source ด้วย Ubuntu 14.04

Friday, October 30, 2015 3:06 PM 0 Comments , ,

วิธี Compile PHP จาก Source code (https://github.com/php/php-src) ด้วย  Ubuntu 14.04

Download code PHP


git clone https://github.com/php/php-src.git

Install dependency package ที่ใช้ในการ Compile

ติดตั้ง header file ที่ใช้ในการ Compile ด้วยคำสั่ง

apt-get build-dep php5 php5-cgi php5-cli php5-fpm php5-curl php5-gd php5-gmp php5-json php5-mysql php5-pspell php5-recode php5-mcrypt php5-memcached php5-imagick 
ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h 

Compile PHP


ไปที่ folder sourcecode  ที่เราโหลดมาแล้วสั่งดังนี้


รอสักครู่เพื่อทำการ compile sourcecode  เมื่อเรา  compile และติดตั้งไปยัง  path ที่เรากำหนด (--prefix=$HOME/php/usr) เรียบร้อยแล้ว ก็มาลองรันตัว php command line กันดู

ให้ไปที่

cd ~/php/usr/bin/
./php -v

ก็จะได้ PHP ตัวล่าสุดมาแล้วครับ



เป็นอันเสร็จสิ้นการ Compile PHP เบื้องต้นครับผม

Ref:
https://wiki.php.net/phpng

0 comments:

ทำ Continuous Integration ด้วย Gitlab

Thursday, October 15, 2015 10:54 PM 0 Comments , , , ,

หลังจาก Blog ที่แล้วได้เล่าถึง วิธีการติดตั้ง Gitlab ไปแบบคร่าวๆ คราวนี้เราจะใช้เจ้า Gitlab ทำ Continuous Integration กันดู โดยในที่นี้จะใช้โปรเจคนี้เป็นตัวอย่างในการทำ (https://github.com/kittinan/thailandpost-track) ซึ่งเราจะทำกับภาษา PHP นั้นเอง

สมมุติว่าเจ้าโปรเจค https://github.com/kittinan/thailandpost-track อยู่บน Gitlab ของเราเรียบร้อยแล้วนะครับ



สิ่งที่เราต้องทำอันดับแรกก็คือ เราต้องติดตั้งเจ้า Gitlab Runner (https://gitlab.com/gitlab-org/gitlab-ci-multi-runner) ซึ่งเจ้าตัวนี้มีหน้าที่ทำการ Build และรันทดสอบ  Code ของเราตามที่เราต้องการ

ติดตั้ง Gitlab Runner


มาติดตั้งเจ้า  Gitlab Runner กันเลย
https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/install/linux-repository.md

วิธีการติดตั้งก็ง่ายๆเหมือนติดตั้งเจ้า Gitlab นั้นแหละ

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.deb.sh | sudo bash

sudo apt-get install gitlab-ci-multi-runner

เปิดการใช้งาน Continuous Integration


เราจะต้องทำการเปิดการใช้งาน Continuous Integration ในแต่ละโปรเจคก่อน โดยให้เราไปที่ Gitlab Dashboard > Continuous Integration ดังภาพ



คลิก Add Project to CI



ให้เราเข้าไปที่เมนู Runner



เมื่อเข้ามาในหน้า Runner แล้ว เจ้า  Gitlab ก็จะมีให้เลือกว่าเราจะใช้ Sepecific runners หรือ Shared runners

Sepecific runners - private server ของเราเอง
Shared runners - server ฟรีของ gitlab

ให้กลับไปที่ Server ที่เราเพิ่งลง Gitlab Runner ไว้ รันคำสั่ง

sudo gitlab-ci-multi-runner register

ให้เรานำ url ที่อยู่ในหน้าเวปมาใส่ ในที่นี้ก็คือ http://gitlab.kittinan.domain/ci
หลังจากใส่  url แล้วก็ใส่ token ต่อ หลังจากนั้นจะมีให้ใส่ Description กับ tag จะใส่ไม่ใส่ก็แล้วแต่
แล้ว Gitlab Runner จะถามว่าจะใช้ executor ตัวไหน ซึ่ง Gitlab Runner ก็สามารถใช้ได้หลายอย่างเช่น docker, docker-ssh, ssh, shell, parallels ในที่นี้ใช้ shell ดังภาพ



เมื่อเรา Refresh หน้าเวป Runner ก็จะมี Runner ที่ Activate แล้วขึ้นมา



เตรียม Server ให้พร้อมรัน Test (PHP)


ทำการติดตั้ง Package ต่างๆที่จะใช้ในการรัน Test ซึ่งในที่นี้เราจะทำการติดตั้ง Package PHP ต่างๆที่จำเป็นต้องใช้สำหรับโปรเจคนี้

sudo apt-get install php5-cli php5-curl

ติดตั้ง composer

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/bin/composer

เสร็จสิ้นการเตรียม environment สำหรับการรัน Test โปรเจคนี้

สร้างไฟล์ .gitlab-ci.yml


เราต้องทำการสร้างไฟล์ .gitlab-ci.yml ขึ้นมาใน Root Path โปรเจคของเรา ซึ่งไฟล์นี้จะทำหน้าที่ประมวลผลตามที่เราต้องการ เช่น ก่อนที่เราจะ Test เราต้องการให้ composer โหลด  library ต่างๆก่อน


สำหรับคำสั่งในไฟล์ .gitlab-ci.yml

before_script คือ ก่อนจะเริ่มทำงานตาม job ต่างๆ ให้ทำอะไรก่อนบ้าง ในที่นี้สั่งให้ composer โหลด library ต่างๆ
 
job1: <--- ชื่องาน ในที่นี้คือ job1 เราจะตั้งเป็นอะไรก็ได้เช่น TestModel
    script:
        - vendor/bin/phpunit tests/    <-- สั่งให้รัน test ใน directory tests

สามารถดูคำสั่งที่ใช้ใน .gitlab-ci.yml เพิ่มเติม ได้ที่ http://doc.gitlab.com/ci/yaml/README.html

เมื่อเพิ่มไฟล์ .gitlab-ci.yml ให้ทำการ commit และ push

ดูผลลัพท์ใน Gitlab


หลังจากที่เราได้ push code เข้า Gitlab เรียบร้อย เจ้า  Gitlab ก็จะไปบอก Gitlab Runner ให้ทำการทดสอบ Code ของเราตาม คำสั่งที่เราได้สั่งไว้ในไฟล์ .gitlab-ci.yml

เข้าหน้าเวป Gitlab ของเรา ดูที่  commit ก็จะเห็นสถานะของการรัน Test ดังภาพ


ภาพขณะตัว Runner กำลังรัน composer เพื่อโหลด library ต่างๆ


ภาพเมื่อรัน Test เสร็จแล้ว


พอเรากลับมาดูที่หน้า  Commit ก็จะเป็นว่า Run Test  ผ่านเรียบร้อย Success เขียวๆ ดังภาพ



เป็นอันเสร็จสิ้นการทำ Continuous Integration ด้วย Gitlab  (PHP) แบบคร่าวๆแล้วครับ


REF:
https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/install/linux-repository.md
https://about.gitlab.com/gitlab-ci/
http://doc.gitlab.com/ci/yaml/README.html


0 comments:

วิธีการติดตั้ง Gitlab Ubuntu 14.04

จาก Document (https://about.gitlab.com/downloads/#ubuntu1404) ของ Gitlab นั้นใช้เพียงไม่กี่คำสั่งก็สามารถลงได้แล้วครับ

sudo apt-get install curl openssh-server ca-certificates postfix
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce
หลังจากลง Package  ต่างๆครบแล้ว ก็ทำการ Config ตัว Gitlab

sudo gitlab-ctl reconfigure

 เสร็จแล้วต้องทำการ Config domain ให้ Gitlab

nano /etc/gitlab/gitlab.rb

ใส่ domain ตรงบรรทัด external_url ดังภาพ



แก้ไขเสร็จทำการ restart เจ้า Gitlab

sudo gitlab-ctl restart

เมื่อเข้าไปที่  domain ที่เราเซตไว้ก็จะเจอเจ้าตัว Gitlab แล้วจ้าาา ในที่นี่ก็คือ http://gitlab.kittinan.domain/



สำหรับรหัสผ่าน default ก็คือ

Username: root
Password: 5iveL!fe



REF:
https://about.gitlab.com/
http://doc.gitlab.com/omnibus/gitlab-ci/README.html

0 comments:

วิธีการเซต Timezone Ubuntu

8:14 PM 0 Comments , ,

ใช้คำสั่ง
sudo dpkg-reconfigure tzdata



0 comments:

Remove files that are listed in the .gitignore

Sunday, September 13, 2015 7:29 PM 0 Comments

command

git rm --cached `git ls-files -i --exclude-from=.gitignore`

Ref: http://stackoverflow.com/a/13541721 

0 comments:

How to install Line Messenger on Ubuntu 14.04

Thursday, June 25, 2015 8:26 PM 0 Comments , ,

1. open terminal to install wine

sudo apt-get install wine winetricks -y

2. open winetricks to install vcrun2008

winetricks

wine will install some library on the firsttime, after finish we will install vcrun2008

- select the default wineprefix



- install a Windows DLL or component



- select vcrun2008 and install




3. Download & Install Line Messenger

cd /tmp
wget http://cdn.line-apps.com/client/win/new/LineInst.exe
wine LineInst.exe

install it







5. Install font for support Thai language

wget "https://docs.google.com/uc?authuser=0&id=0B4BVfmN-CsL5YnV1dXFidEVpNmM&export=download" -O tahoma.zip
unzip tahoma.zip
cp tahoma/* ~/.wine/drive_c/windows/Fonts/

6. Reopen Line Messenger

0 comments:

ทดสอบ PHP 7 Alpha 1

Friday, June 12, 2015 2:47 PM 0 Comments , ,

PHP ได้ปล่อย PHP 7 Alpha 1 ออกมา https://github.com/php/php-src/blob/php-7.0.0alpha1/NEWS เลยลองทดสอบดูครับ

โดยผมได้ใช้ script นี้ในการทดสอบ

https://gist.github.com/kittinan/3173c58b32b8e7739b11


ผลการทดสอบดังนี้

PHP 5.5.9



PHP 7 DEV



PHP 7 Alpha 1



จะเห็นได้ว่า PHP 7 Alpha 1 แรงขึ้นกว่า PHP 7 Dev อีก

สุดท้ายก็ขอให้ PHP 7  ตัวจริงที่จะออกปลายปีแรงกว่านี้อีกนะค้าบบบบ

0 comments:

Happy Birthday PHP!!!

Monday, June 8, 2015 2:05 PM 1 Comments ,


Happy Birthday to PHP celebrate for 20 years old



1 comments:

GIT FTP Ubuntu 14.04

Friday, May 29, 2015 10:58 AM 1 Comments , ,

Install git-ftp

sudo apt-get install git-ftp

Config FTP

git config git-ftp.user FTP_USER
git config git-ftp.url ftp.example.com/your/folder
git config git-ftp.password YOUR_PASSWORD

Init git-ftp

git ftp init

When Change file data, use this command to update.

git ftp push

1 comments:

วิธีการตั้ง IP Address ให้ Genymotion อยู่วง Lan เดียวกันกับเครื่อง

Monday, March 30, 2015 10:02 PM 0 Comments ,

วิธีการตั้ง IP Address ให้ Genymotion อยู่วง Lan เดียวกันกับเครื่องที่ใช้พัฒนา นั้นง่ายมากๆ โดยมีวิธีการดังนี้

1. เปิด Virtualbox ขึ้นมา

2. คลิกขวาเลือก Setting สำหรับ VM ที่เราต้องการ

3. ไปที่ Network เลือก Adapter 2 ตรง Attach to เลือก Bridge Adapter  แล้วเลือก Network Interface ที่ต้องการ ดังภาพ



4. เปิด Genemotion ตามปกติ เพียงเท่านี้ก็จะอยู่วง Lan เดียวกันแล้วครับ

0 comments:

ทดสอบความแรง PHP7 Dev

12:03 AM 0 Comments , , ,

ลองนั่งทดสอบความแรงของ php 7 มาครับ แรงขึ้นเยอะจริงๆ โดยผมได้ลองรัน script นี้

https://gist.github.com/kittinan/3173c58b32b8e7739b11 


กับ PHP 7 dev, PHP 5.5.9 และ HHVM 3.61 ผลปรากฎว่า

HHVM ใช้เวลาประมาณ 11 วิ
PHP 7 ใช้เวลาประมาณ 16 วิ
PHP 5.5.9 ใช้เวลาประมาณ 1 นาที กว่า O_O


0 comments:

วิธีการเชื่อมต่อ Github กับ Scrutinizer-CI

Saturday, March 7, 2015 10:49 PM 0 Comments , , , , , ,

ต่อจากบทความ วิธีการเชื่อมต่อ Github กับ Travis-CI บทความนี้ก็จะมาเล่าเกี่ยวกับวิธีการเชื่อมต่อ Github กับ Scrutinizer-CI เพื่อที่ Build & Test และจะได้มี  Badge สำหรับ Code Coverage กับ  Code Quality สวยๆมาแปะครับ

1. เข้าไปที่ Website https://scrutinizer-ci.com แล้วทำการ Login ด้วย Github

2. เมื่อ Login เรียบร้อยแล้วให้สร้าง Repository https://scrutinizer-ci.com/g/new

3. ใส่ URL Github Project ของเราที่ต้องการใช้งาน (ในที่นี่ใช้ Project นี้ https://github.com/kittinan/php-http) ดังภาพ



4. สร้างไฟล์สำหรับ Build Configuration เจ้า Scrutinizer-CI โดยใช้ชื่อว่า .scrutinizer.yml ที่ root path ของ Project และใส่ code ดังนี้ https://gist.github.com/kittinan/6baf4dd0961e18dc7812


สามารถดูรายละเอียดเพิ่มเติมสำหรับ Build Configuration ได้ที่ https://scrutinizer-ci.com/docs/configuration/build

5. แก้ไขไฟล์ .travis.yml เพื่อให้ Travis-CI อัพโหลด Code Coverage ไปที่  Scrutinizer-CI ดังนี้
https://gist.github.com/kittinan/124d539cd6fbf7c5e8d5



5. Push file .scrutinizer.yml และ .travis.yml  ขึ้น Github

6. สั่ง Run your first inspection ที่ Scrutinizer-CI แล้วรอสักพักใหญ่


7. เมื่อ  Scrutinizer-CI ประมวลผลเสร็จเรียบร้อยก็จะพบกับ Code Quality และ Code Coverage  ดังภาพ



8. เราก็สามารถนำ Badge Code Quality และ Code Coverage เท่ๆมาแปะที่  Github Project ของเราได้แล้วครับ https://github.com/kittinan/php-http


0 comments:

วิธีการเชื่อมต่อ Github กับ Travis-CI

Thursday, February 19, 2015 12:43 PM 1 Comments , , , ,

ต่อจากบทความ วิธีการอัพโหลด PHP Package ขึ้น Packagist บทความนี้ก็จะมาเล่าประสบการณ์ในการเชื่อมต่อ Github  กับ Travis-CI นะครับ โดยในบทความนี้จะไม่พูดถึง การเขียน Test PHP  ด้วย phpunit และ Continuous Integration คืออะไรแล้วนะครับ

มาเริ่มกันเลยครับ

1. Sign in Travis-CI ด้วย Username Github ที่ https://travis-ci.org/


2. เจ้า  Travis-CI ก็จะขอ Permission ต่างๆนาๆกับ  Github เราก็กด Authorize application  ไป


3. เมื่อ Login Travis-CI ด้วย Github User เรียบร้อยแล้ว ก็จะเข้าสู่หน้าตาที่ List Project ต่างๆของเราดังภาพ


4. กด ON ที่โปรเจคที่เราต้องการ ในที่นี่คือ kittinan/php-http ครับ

5. สร้าง Service Travis-CI ใน Github ของเราเพื่อที่เวลา Push Code เข้า Github แล้ว  Travis-CI จะได้ทำการ Build และ Test โดยวิธีการสร้าง Service  ทำดังนี้

  5.1 ไปที่ Travis-CI https://travis-ci.org/profile/info เพื่อนำ token ไปใส่ยัง Github Project ของเรา
  5.2 กลับมาที่ Github Project ของเรา ไปที่ Setting > Webhooks & Services > Add Services เลือก  Travis CI ใส่ Username และ token ที่ได้จากข้อ 5.1 เสร็จแล้วกด Add Service

6. สร้างไฟล์ .travis.yml ที่  Root Project ของเรา โดยสามารถดูรายละเอียดต่างๆได้ที่ Document ของ Travis-CI ได้ที่นี่ครับ http://docs.travis-ci.com/user/languages/php/

  6.1 Config file .travis.yml ที่ผมใช้ก็ตามลิ้งนี้เลยครับ https://gist.github.com/kittinan/30aca75a7c12776b11b2

language: php <-- เลือกภาษาที่จะใช้
php: <-- ให้ทดสอบ PHP Version อะไรบ้าง
- 5.5
- 5.4
- 5.3
- hhvm before_script: <-- ก่อนจะรัน script ทดสอบให้ทำอะไรบ้างในที่นี่คือไป Download composer มาและสั่งให้ install dependency ที่เราใช้งานครับ
- wget http://getcomposer.org/composer.phar
- php composer.phar install --dev --no-interaction script: <-- จะให้ Travis-CI รันอะไรบ้าง ในที่นี่คือรัน Test ที่อยู่ใน Folder /tests ครับ และยังสร้าง code coverrage ด้วยครับ
- phpunit ./tests
- mkdir -p build/logs
- phpunit --coverage-clover build/logs/clover.xml ./tests

7. เมื่อ Config .travis.yml เรียบร้อยก็ทำการ commit และ push ขึ้นไปยัง Github ครับ เจ้า Github ก็จะไปบอก Travis-CI ว่ามี code ใหม่ๆมาแล้วนะ Travis-CI ก็จะ Build & Test ตาม Config ที่เราสั่งครับ 

8. เข้าไปที่เวป travis-ci แล้วดู Project ที่เราเพิ่ง Push Code เข้าไปใหม่ มันจะแสดงสถานะการ Build & Test ให้เราดูดังภาพ


9. รอสักครู่จนมัน Test เสร็จหมด เย้ๆ เขียวหมดเลย



10. หากต้องการ badge เท่ๆมาติดที่หน้า README.md ให้กดตรง build passing ครับแล้วเลือก เป็น Markdown นำมาแปะที่หน้า README.md ได้เลยครับ ดังภาพ




เสร็จสิ้นการเชื่อมต่อ Github กับ Travis-CI แล้วครับ เดี๋ยวบทความต่อไปจะมาเล่าถึงวิธีการเชื่อมต่อ Github กับ scrutinizer-ci ซึ่งผมเอาไว้สร้าง badge code coverage และ code quality ครับ

1 comments:

วิธีการอัพโหลด PHP Package ขึ้น Packagist

Wednesday, February 18, 2015 12:15 AM 0 Comments , ,

วันนี้มีโอกาสอัพโหลด PHP Library ที่เขียนขึ้นมาใช้งานเองเข้า Packagist เนื่องจากต้องการโหลด Library ที่เขียนขึ้นผ่าน composer จึงมาเขียน Blog แบ่งปันประสบการณ์ครับ

Composer กับ Packagist คืออะไรผมจะไม่กล่าวถึงแล้วนะครับ

สิ่งที่จำเป็นสำหรับการอัพโหลด PHP Library เข้า Packagist ก็คือ

1. composer.json
2. Code ของเราต้องอยู่ในรูปแบบของ PSR-4
3. Github

ผมจะใช้โปรเจค https://github.com/kittinan/php-http เป็นตัวอย่างนะครับ ซึ่ง commit ก่อนที่เปลี่ยนรูปแบบให้เป็น PSR-4 นั้น จะอยู่ใน commit นี้ https://github.com/kittinan/php-http/tree/9a91de95c53538d081081c56ee4d77b6d9fa2171 ซึ่งจะสังเกตุเห็นว่ามีอยู่แค่ 2 ไฟล์เท่านั้นคือ

- http.php
- README.md


โดยผมจะจัดการไฟล์ใหม่ให้มันอยู่ในรูปแบบของ PSR-4 นะครับ โดยที่ผมจะจัดวางไฟล์ใหม่ดังนี้

\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>

ซึ่งเมื่อจัดแล้วจะอยู่ในรูปแบบ

\KS\HTTP\HTTP.php

เมื่อจัดการวางไฟล์และโฟล์เดอร์ให้อยู่ในรูปแบบ PSR-4 เรียบร้อยผมก็จัดการแก้ชื่อ class จากเดิมที่เป็น http  เป็น HTTP และใส่ namespace ที่ถูกต้องเข้าไปก็คือ namespace KS\HTTP; ดูได้จากไฟล์นี้นะครับ https://github.com/kittinan/php-http/blob/master/src/KS/HTTP/HTTP.php

เมื่อจัดการไฟล์และโฟล์เดอร์เรียบร้อยแล้ว ก็มาถึงคิวของ composer.json ซึ่งจะต้องสร้างไฟล์นี้ไว้ที่ root path ของ project นะครับ

สร้าง composer.json ที่ root path ของ project โดยใส่รายละเอียดตามไฟล์นี้ครับ https://github.com/kittinan/php-http/blob/master/composer.json

สิ่งสำคัญคือตรง autoload เราต้องกำหนดให้ถูกต้องครับ ซึ่งเราจะใช้ PSR-4  โดยที่ key ของ json ตรงนั้นจะเปน namespace ของเรา แล้ว  value ก็จะเป็น folder ครับซึ่งจะออกมาเป็นดังนี้

"KS\\HTTP\\": "src/KS/HTTP"
เมื่อสร้างไฟล์ composer.json เรียบร้อย ให้ commit และ push ขึ้น github ครับ หลังจากนั้นเราก็เข้าไปที่เวป https://packagist.org/ ให้ login  ด้วย user Github ให้เรียบร้อยก่อนนะครับ เสร็จแล้วกด submit package เราก็นำ url github project ของเรามาใส่ รอสักครู่มันก็จะไปดึงข้อมูลจาก github มาให้ กด submit เป็นเสร้จสิ้น

หากเราต้องการเวลาที่ push code ใหม่ๆเข้าไปยัง Github และไป update เจ้า Packagist  เราต้องสร้าง GitHub Service Hook ไปยัง  Packagist ครับ โดยกดเข้าไปที่ GitHub Service Hook ดังภาพ


เมื่อกดเข้าไปแล้วสิ่งที่เราต้องการคือ  Your API Token กดเพื่อแสดง token ครับดังภาพ




ให้เรานำ API token ไปใส่ที่ Github ครับ ซึ่งเข้าไปที่ Project ของเราแล้วกด Setting ดังภาพ



เมื่อกดเข้าไปที่ Setting  แล้วให้ไปที่ Webhooks & Services >  กด Add Services เลือก Pakagist ครับ

เสร็จแล้วใส่ username เราที่ใช้ใน Pakagist ถ้าในที่นี่ login Pakagist ด้วย Github
username ที่ใช้ก็จะเหมือน username ของ Github ครับ ในโปรเจคนี้คือ kittinan และใส่ token ที่เราได้จาก Pakagist ดังภาพ



กด Add Service เป็นอันเสร็จสิ้นครับ เมื่อเรา Push code ใหม่ๆเข้า Gihub เจ้า Gtihub ก็จะยิงไปบอก Pakagist ว่ามี code ใหม่ๆมาแล้วนะ เจ้า Pakgist ก็จะอัพเดทข้อมูลๆใหม่ครับ


เดี๋ยวบทความต่อไปจะมาเล่าถึงวิธีการเชื่อต่อกับ travis-ci เพื่อทำ Continuous Integration นะครับ

0 comments:

วิธีการติดตั้ง Nginx + HHVM บน Ubuntu 14.04

Saturday, February 7, 2015 3:34 PM 0 Comments , ,

1. ติดตั้ง Nginx

sudo apt-get install nginx


2. ติดตั้ง HHVM สำหรับ Linux distro อื่นๆ ดูได้ที่ https://github.com/facebook/hhvm/wiki/Prebuilt%20Packages%20for%20HHVM

ในบทความนี้ใช้ Ubuntu 14.04 ครับ

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
sudo add-apt-repository 'deb http://dl.hhvm.com/ubuntu trusty main'
sudo apt-get update
sudo apt-get install hhvm

3. เมื่อติดตั้งเสร็จเรียบร้อย HHVM จะขึ้นข้อความแนะนำวิธีการติดตั้ง fastcgi เพื่อให้ Apache  หรือ Nginx เรียกใช้งานได้ ดังภาพ



4. Config ให้ HHVM เปิดใช้งานผ่านช่องทาง fastcgi โดยรัน Shell Script

/usr/share/hhvm/install_fastcgi.sh



5. restart HHVM daemon

sudo /etc/init.d/hhvm restart

6. Config Nginx  ให้เรียกใช้งาน HHVM ผ่านทาง fastcgi
โดยเริ่มจากการสร้าง Virtual host ใน Nginx ให้ point ไปยัง path ที่ต้องการ โดยในตัวอย่างจะสร้าง Virtual host ที่ชื่อว่า hhvm.localdomain ให้ไปชี้ไปยัง /home/null/code/hhvm มาเริ่มกันเลย

6.1 โดยเริ่มจากการแก้ไข้ไฟล์ /etc/hosts ให้ domain hhvm.localdomain ชี้มาที่เครื่องเราเองดังภาพ

sudo nano /etc/hosts

เพิ่ม 127.0.0.1  hhvm.localdomain เข้าไป



6.2 สร้าง Config file virtual host ให้กับ Nginx โดย save file ไว้ที่ /etc/nginx/sites-available/hhvm.localdomain

config สำหรับ virutal host ตาม link นี้ครับ https://gist.github.com/kittinan/87f410004df45b6d0573

ตรง root path ก็แก้ให้ถูกต้องตามเครื่องใครเครื่องมันนะครับ

เสร็จแล้วสร้าง Sym link เพื่อเปิดการใช้งาน virtual host ที่ชื่อ hhvm.localdomain

sudo ln -s /etc/nginx/sites-available/hhvm.localdomain /etc/nginx/sites-enabled/hhvm.localdomain

7. Restart Nginx

sudo /etc/init.d/nginx restart

8. สร้างไฟล์ index.php ไว้ที่ root path ในที่นี่จะสร้างไฟล์ไว้ที่ /home/null/code/hhvm/index.php เพื่อทดสอบการ config ว่าใช้งานได้


<?php
echo "Hello HHVM";
echo "<br />";
phpinfo();

เมื่อเสร็จแล้วลองเรียกผ่าน http://hhvm.localdomain/ ก็จะได้ output ดังภาพ




หากต้องการ phpinfo() แบบละเอียด hhvm มันไม่ได้จัดมาไว้ให้ครับต้องใช้ script ตัวนี้
https://gist.github.com/ck-on/67ca91f0310a695ceb65 เมื่อนำมารันก็จะได้ดังภาพ






0 comments: