Centos 7 Apache加Brotli網頁壓縮技術

Brotli跟GZIP一樣是一種網頁的壓縮技術,可以用來壓縮javascript , css ,html 等,減少流量使用並增加率加載速度。

Brotli比GZIP壓縮效率更好,壓縮速度也比較快,十分建議使用。

# 安裝需要的套件,當套件更新,可能需要重新編譯,否則可能無法啟動apache
yum -y install libtool automake httpd-devel
 
# git clone 最後一次 commit,且連同 子模組 一起 clone 回來
git clone --depth=1 --recursive https://github.com/kjdev/apache-mod-brotli.git
cd apache-mod-brotli
./autogen.sh
./configure
make
# 編譯完成
 
# 安裝
install -p -m 755 -D .libs/mod_brotli.so /etc/httpd/modules/mod_brotli.so

編譯好後再來需要設定,需放在<ifModule mod_deflate.c>前面,如此才可優先使用Brotli。

Read More

自行complie mod_jk

apache mod_jk本身並沒有提供binary版本,所以需要自行make及install,最近版本是JK 1.2.46

首先先下載source,選擇linux可用的版本tar.gz

cd /tmp
wget http://ftp.tc.edu.tw/pub/Apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.46-src.tar.gz
tar -zxvf tomcat-connectors-1.2.46-src.tar.gz

安裝編譯必需lib

sudo yum -y install gcc automake autoconf libtool make
sudo yum -y install httpd-devel

編譯及安裝

cd /tmp/tomcat-connectors-1.2.46-src/native
./configure --with-apxs=/usr/bin/apxs
sudo make
sudo make install

可以在/etc/httpd/modules看到剛才編譯好的mod_jk.so

Apache常用指令

一些apache在linux上常用到的指令整理

ubuntu 使用apache2ctl或apachectl

centos 使用httpd

查詢apache(httpd)版本

httpd -V

查看所用模組

httpd -M

查看所有VirtuslHost網址及設定所在位置

httpd -S

利用raspberrypi安裝EINVTurnkey會遇到的問題排除

在Raspberry pi 安裝Linux版的 EINVTurnkey電子發票整合服務平台時會遇幾個問題

*不支援64bit SWT library

Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot load 64-bit SWT libraries on 32-bit JVM
	at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
	at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
	at org.eclipse.swt.internal.C.<clinit>(Unknown Source)
	at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
	at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
	at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
	at com.tradevan.gateway.client.view.EnvironmentSetting.main(EnvironmentSetting.java:125)

這部份基本上沒解決,所以改跑 32元位版本來解決這個問題

*在32bit時找不到SWT library位置

Exception in thread "main" java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
	no swt-gtk-3738 in java.library.path
	no swt-gtk in java.library.path
	/home/pi/.swt/lib/linux/arm/libswt-gtk-3738.so: /home/pi/.swt/lib/linux/arm/libswt-gtk-3738.so: 無法開啟共用目的檔: 沒有此一檔案或目錄 (Possible cause: can't load IA 32-bit .so on a ARM-bit platform)
	Can't load library: /home/pi/.swt/lib/linux/arm/libswt-gtk.so

	at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
	at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
	at org.eclipse.swt.internal.C.<clinit>(Unknown Source)
	at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
	at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
	at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
	at com.tradevan.gateway.client.view.EnvironmentSetting.main(EnvironmentSetting.java:125)
Read More