星期二, 12月 20, 2016

Install igbinary



  1. 安裝
    • 透過PECL
      pecl install igbinary
    • 透過Source Code
      1. 下載igbinary.tgz
        wget https://pecl.php.net/get/igbinary-2.0.0.tgz
        
      2. Install
        #1 以igbinary-2.0.0.tgz為例
        cd {install}/ 
        #安裝igbinary-2.0.0.tgz
        $ tar zxvf igbinary-2.0.0.tgz
        $ cd igbinary-2.0.0..tgz/
        $ phpize
        $ ./configure
        $ make && make install
        如果./configure出現 no acceptable C compiler found in $PATH 需安裝gcc
  2. 檢查是否有igbinary.so
    $ ll /usr/lib64/php/modules/ | grep igbinary.so  
    -rwxr-xr-x 1 root root 312644 Dec 20 07:40 igbinary.so
  3. 編輯將igbinary.ini
     $ vi /etc/php.d/igbinary.ini 
     ============= 我是分隔線 =================  
    ; Enable igbinary extension module 
     extension=igbinary.so 
     ; Enable or disable compacting of duplicate strings  
    ; The default is On.  igbinary.compact_strings=On 
     ; Use igbinary as session serializer 
     session.serialize_handler=igbinary 
     ; Use igbinary as APC serializer 
     apc.serializer=igbinary    # php7後,還沒試過
  4.  重新啟動apache
     $ service httpd restart 
     $ php -m | grep igbinary #檢查是否安裝成功 
     igbinary 
 Reference
  1. http://www.metod.si/how-to-install-igbinary-serializer-for-php/ 
  2. http://blog.csdn.net/zhangxinrun/article/details/16964819 
  3. http://www.cnblogs.com/cndavidwang/p/3335846.html 
  4. http://bensnotepad.com/install-igbinary-for-php5-on-ubuntu/

星期一, 12月 19, 2016

Docker用Redhat/Centos7 出現 Failed to get D-Bus connection

我的媽呀~~
裝好一堆套件,想restart一下httpd卻出現Failed to get D-Bus connection
請示google大神,有人說CentOS 7.2就可以了~ 但用了是有錯


  1. Container
    最後看到個解法
    必需要加上--privileged及/sbin/init
    sudo docker run --privileged -d centos /sbin/init  
    
    p.s /sbin/init也要哦~ 不然也沒用

    話說docker run --privileged 是啥
    看起來是讓container裡的root擁有真正的root權限
    一開始看不太懂,不過想一下LXC的觀念就能理解了~
  2. Dockerfile
    解了container,寫docerfile也遇到
    但dockerfile就不知怎麼給privileged! Dang it!

補充
利用--privileged及/sbin/init解後,container跑一陣子會出現agetty 100%
據說用這招就解了
systemctl stop getty@tty1.service; systemctl mask getty@tty1.service

Reference
https://github.com/moby/moby/issues/4040



星期二, 12月 06, 2016

Top 10 mistakes in handling website images and how to solve them

Reference: Top 10 mistakes in handling website images and how to solve them

挺不錯的整理,也把一些觀念一次釐清
還有說明做法~ 值得讀一下
以下簡述重點,詳細就看原作吧

  1. Wasteful browser-side resizing
    最好與指定的大小一樣大,不要靠browser自動縮放
  2. Unnecessarily high quality JPEGs
    85%與95% JPEG看起來不多,但前者17KB,後者要34KB 
  3. Incorrect image file types
    JPEG: 適用風景圖,只要15KB,PNG卻要110KB
    PNG: 適用圖表charts, logos,有留白的那種
    GIF: 小動畫
  4. Delivering non-optimized images
    PNG可適度壓縮,讓檔案小50%
  5. Forgetting to strip image meta-data
    meta-data可能夾太多無用資訊,可以清掉省空間。
  6. Delivering images straight from your servers
    透過CDN加速。
  7. Delivering static icons one by one
    小的icons應該併成大張圖一起交付。
  8. Using images when CSS3 can be used
    不要用圖做button的圓角或mouseover的效果,可以透過CSS達成。
  9. Incorrect image cache settings
    圖片幾乎不會變,也就是說cache不需失效,但如果真的會變,可以透過fingerprint改變,就是url加上version之類的字串。
  10. Using a single image size across all delivery mediums
    利用JavaScript判斷device的解淅度,再讀取適當大小的圖