ถ้าอยากมี Web Analytic ใช้เอง ทำไงได้บ้าง
PIWIK [1] เป็นโปรแกรมที่เป็น Opensource ใช้สำหรับทำ Web Analytic โดยมีจุดเด่นใหญ่ ๆ คือมีข้อมูลอยู่ในองค์กรเอง และรองรับมุมมองต่าง ๆ ครบถ้วนตามที่ควรจะมี (จริง ๆ ใช้ Google Analytic ก็ได้ครับ ขอเสนอเป็นทางเลือกในกรณีที่ต้องการอะไรที่ private หน่อย) การติดตั้งลักษณะก็จะเป็นการติดตั้ง mysql (หรือ mariadb), php, apache (หรือ nginx) ดังนี้ครับ
- ทำการติดตั้ง Ubuntu 16.04[2]
- ทำการติดตั้ง nginx+mariadb+php (สามารถติดตั้งเป็น apache+mysql+php[3]ก็ได้ครับ)
MariaDBsudo apt install mariadb-server mariadb-client
Nginx
sudo apt install nginx
PHP
sudo apt install php-fpm php-mysql php-curl php-gd php-cli php-geoip php-zip php-mbstring php-dom php-xml
- ทำการตั้งค่า nginx เพื่อใช้งานกับ php-fpm
sudo vim /etc/php/7.0/fpm/php.ini
แก้ไข php config (uncomment cgi.fix_pathinfo และแก้ค่าเป็น 0)
[...] ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo cgi.fix_pathinfo=0 [...]
แก้ไขไฟล์ nginx.conf
sudo vim /etc/nginx/sites-available/default
ตั้งค่า fastcgi_pass ให้เรียกใช้งาน php7.0-fpm
[...] index index.html index.htm index.nginx-debian.html index.php; server_name _; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { include snippets/fastcgi-php.conf; # # # With php7.0-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php7.0-fpm: fastcgi_pass unix:/run/php/php7.0-fpm.sock; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } } [...]
- ทำการ Restart Service
sudo systemctl restart php7.0-fpm sudo systemctl restart nginx
- ทำการตั้งค่า Mariadb ดังนี้
sudo mysql_secure_installation
ทำการตั้งค่าต่าง ๆ รวมถึง Password ของ root
Set root password? [Y/n] Y
ใส่ password และ password ใหม่ที่ต้องการ
Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
- ทำการสร้าง User, Password ใหม่ใน Mariadb เพื่อใช้งานกับ Piwik
sudo mysql -u root -p
จากนั้นทำการสร้าง DB และกำหนด User, Password ที่ใช้ในการเข้าถึง (piwikuser@ ให้แทนที่ด้วยรหัสผ่าน)
create database piwikdb; create user piwikuser@localhost identified by 'piwikuser@'; grant all privileges on piwikdb.* to piwikuser@localhost identified by 'piwikuser@'; flush privileges; quit;
- ติดตั้งโปรแกรม Piwik
sudo apt install git cd /var/www/html sudo mkdir piwik sudo git clone https://github.com/piwik/piwik . cd /var/www/html/piwik sudo git checkout 3.0.3 sudo git submodule update --init --recursive sudo curl -sS https://getcomposer.org/installer | sudo php sudo php composer.phar install --no-dev sudo chown -R www-data:www-data /var/www/html/piwik
sudo find /var/www/html/piwik -name "*.php" -exec chmod 755 {} \;
- ทำการแก้ default web path ให้ชี้เข้าไปใน folder /var/www/html/piwik ดังนี้
sudo vim /etc/nginx/sites-available/default
แก้ไขไฟล์ดังนี้
[...] # include snippets/snakeoil.conf; root /var/www/html/piwik; [...]
- สั่ง Restart Service
sudo systemctl restart nginx
- จากนั้นทำการติดตั้งผ่านหน้า Web ดังรูป
- หน้าต่าง system check ตรวจสอบว่าลงครบหรือไม่ กด Next
- หน้าต่าง Database Setup กรอกรายละเอียด Adapter เลือก mysqli จากนั้นกด Next
- หน้าต่าง Creating the Tables ถ้าไม่มีอะไรผิดปกติจะขึ้น Tables created with success กด Next
- หน้าต่าง Super User ให้ตั้งค่าบัญชี รหัสผ่าน ที่ต้องการ Login เข้าใช้งาน
- ตั้งค่า Website
- หน้าต่าง JavaScript Tracking Code จะให้ Code ที่เอาไปวางในหน้าต่าง ๆ ของ WebSite ที่ต้องการ Monitor ซึ่งสามารถกลับมาดูทีหลังได้จาก Menu ให้กด Next
- หน้าต่างสุดท้ายจะเป็นหน้าแสดงความยินดีในการติดตั้งสำเร็จให้กด Continue to PIWIK
- Login เข้าสู่ระบบตาม User, Password ที่ตั้งไว้ในข้อ 14
- วิธีการใช้งานไม่ยากอะไรมากครับ ลองทดสอบใช้งานดูครับ มี Feature มากมายครับ พร้อม plugin มากมายทั้งฟรี และเสียตังค์ แต่สำหรับตัวฟรีติดตั้งหมดแล้วด้วยคำสั่ง git submodule update –init –recursive
เมื่อทำการตั้งค่าอีเมล์เรียบร้อยแล้ว เราสามารถให้ส่งรายงานสรุป Per Site ให้ Admin แต่ละ site ตรวจสอบได้รายวัน และเมื่อมี Version ใหม่ ก็จะมีเมล์แจ้งเช่นกัน โดยวิธีการ Update จะสามารถทำผ่านหน้า Web แต่สุดท้ายจะมีให้รันคำสั่งบน Command Line เพื่อ Upgrade Database แต่จะมีวิธีทำอธิบายไว้ละเอียดอยู่แล้วครับ ขอให้สนุกกับการใช้งานครับปล. ผมข้ามขั้นตอนการตั้งค่า SSL[4] ซึ่งแนะนำให้ตั้งค่าด้วยครับ
=================================================
References :
[1] https://piwik.org/
[2] http://opensource.cc.psu.ac.th/%E0%B8%95%E0%B8%B4%E0%B8%94%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87_ubuntu_16.04_server
[3] http://joelradon.com/installing-lamp-on-ubuntu-16-04/
[4] https://www.digicert.com/ssl-certificate-installation-nginx.htm