2012年11月9日 星期五
[IE10] 快速解決 Windows 8 IE 10 相容性問題
在網頁的 header 加入以下 meta 即可
<meta http-equiv='X-UA-Compatible' content='IE=9' >
or
<meta http-equiv='X-UA-Compatible' content='IE=9; requiresActiveX=true' >
IE=Value 表示 ie 預設使用的文件模式
value=5 表示使用 quick模式
value=7,8,9,10 表示使用對應的標準模式,ex: IE=9 即表示使用 IE 9 標準模式
value=Edge 表示使用該瀏覽器支援的最新版本的文式模式,故 IE 9 會使用 IE 9 模式、IE 10會使用 IE 10 模式
此方僅只是令 IE 10 可以快速的相容您目前系統
但無法完全解決問題,最好方法還是針對 IE 10 做最佳化
Reference : http://www.iefans.net/ie10-ie9-jianrongxing-faq/
另外由於 Windows 8 的 Desktop IE 10 與 Metro IE 10 是不同的兩個 ie
Metro IE 10 本身不支援 Flash 和 ActiveX
所以如果有使用 Flash 和 Active X 在 Metro IE 10 是無法正常瀏覽的
故加上 requiresActiveX=true 來提示使用都需要使用 Desktop IE 10
Reference : http://www.windows7hacker.com/index.php/2012/02/how-to-tell-ie-10-to-switch-from-metro-style-to-desktop-version/
Metro IE 10 Agent
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)
Desktop IE 10 Agent
32bit : Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
64bit : Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)
Reference:http://www.codeproject.com/Articles/269356/Internet-Explorer-10-User-Agent-Strings-On-Windows?display=Print
2012年8月18日 星期六
[MAC OS] 快速在 MAC 安裝 notepad++
Wine:
Unix 上執行 windows 程式軟體
Mac 環境需要
Intel x86 的 cpu
x11 (Snow Leopard 以上內建)
1. 安裝 Wine Bottler (已經 wine 包裝在內)
下載 Wine Bottler : http://winebottler.kronenberg.org/
直接點取,將 wine 和 wine bottler 拖至 appliaction
2. 下載 notepad++ zip package
請至官網 http://notepad-plus-plus.org/
unzip notepad++
直接點取 notepad++.exe 會彈出 Wine 視窗
選取 Run directly in .... (我是直接使用 /User/account/Wine Files)
go 即可執行 notepad++
3. 安裝 notepad++ plugin
直接下載將 dll 放進 notepad++ plugin 目錄內
目前安裝了 function list、hex editor 均可使用
ref:
http://www.youtube.com/watch?v=ZeYA3goZwY4
http://wiki.ubuntu-tw.org/index.php?title=Wine
http://www.winehq.org/
Unix 上執行 windows 程式軟體
Mac 環境需要
Intel x86 的 cpu
x11 (Snow Leopard 以上內建)
1. 安裝 Wine Bottler (已經 wine 包裝在內)
下載 Wine Bottler : http://winebottler.kronenberg.org/
直接點取,將 wine 和 wine bottler 拖至 appliaction
2. 下載 notepad++ zip package
請至官網 http://notepad-plus-plus.org/
unzip notepad++
直接點取 notepad++.exe 會彈出 Wine 視窗
選取 Run directly in .... (我是直接使用 /User/account/Wine Files)
go 即可執行 notepad++
3. 安裝 notepad++ plugin
直接下載將 dll 放進 notepad++ plugin 目錄內
目前安裝了 function list、hex editor 均可使用
ref:
http://www.youtube.com/watch?v=ZeYA3goZwY4
http://wiki.ubuntu-tw.org/index.php?title=Wine
http://www.winehq.org/
2012年8月16日 星期四
[MySQL] MySQL Replication (master slave)
以下實作一個範例為將 Master's Mysql 內的 test 資料庫同步至 Slave's Mysql 內的 test 資料庫
Master:
1. vi /etc/my.cnf
加入
server-id=1
log-bin=/var/lib/mysql/mysql-bin #mysql 會根據這麼 log 檔去同步資料
binlog-do-db=test #設定那個 database 做同步, 在這裡以 test 為例
2.重新啟動 MySQL
service mysqld restart
3.匯出 test 資料庫的資料(加 -l 是要把目前 table lock 起來再輸出)
mysqldump -l -u root -p test > test.sql
4.將sql傳送到 slave 的機器上
scp test.sql root@192.168.1.2:~/test.sql
5.進入MySQL command mode
mysql -u root -p
6.建立一個做為 replication 的帳號密碼
在此是建立一個帳號為 replication 密碼為 abc123 為例
mysql> CREATE USER 'replication'@'%' IDENTIFIED BY 'abc123';
給予 replication 帳號擁有 replicaiton 的權限
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
Slave:
1. 建立一個 test 資料庫
mysql -u root -p
mysql> CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
2. 匯入資料
mysql -u root -p test < test.sql
3. vi /etc/my.cnf
加入
server-id=2 #不能重複
log-slave-updates #告訴 slave 去 master 抓資料
log-bin=mysql-bin
binlog_format=mixed
relay-log=hostname-relay-bin
replicate-do-db=test #需要同步的 database name
master-connect-retry=60 #取得資料發生錯誤多久重試嘗試(以秒單位)
read-only=1
#很重要, 將 slave 的資料庫設為唯讀, 因為如果資料表格發生衝突時, 該資料表將不會再同步。另外要注意的是此選項對於 root 和擁有 replication 的帳號沒用, 這些帳號還是有寫入權限
4. service mysqld restart
5. mysql -u root -p
修改 slave 的設定值
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.1',
MASTER_USER='replication', MASTER_PASSWORD='abc123';
這裡帳號密碼請填入 master 所建立的
清空原設定 以下指令是如果原本有建立過replication可用此指令清除資料
mysql> CHANGE MASTER TO MASTER_LOG_FILE='', MASTER_LOG_POS=0;
6. 啟動 slave
mysql> SLAVE START;
7. 確認是否有啟動
mysql> SHOW SLAVE STATUS;
必須看到以下 2 個狀能為 Yes
Slave_IO_Running Yes
Slave_SQL_Running Yes
如不是 Yes 請查看 /var/log/mysqld.log
為你的系統建一個普通的帳密(上述如果開放寫入, 發生衝突即無法同步)
mysql> CREATE USER 'test'@'%' IDENTIFIED BY 'eabc123';
給予 test 帳號存取 test 資料庫權限
mysql> GRANT ALL ON test.* TO 'test'@'%';
ref:
http://homeserver.com.tw/%E7%86%B1%E9%96%80%E6%9B%B8%E7%B1%A4/mysql-master-slave/
http://blog.wu-boy.com/2008/12/mysql-%E5%AF%A6%E5%81%9A-mysql-master-master-replication-%E5%90%8C%E6%AD%A5/
Master:
1. vi /etc/my.cnf
加入
server-id=1
log-bin=/var/lib/mysql/mysql-bin #mysql 會根據這麼 log 檔去同步資料
binlog-do-db=test #設定那個 database 做同步, 在這裡以 test 為例
2.重新啟動 MySQL
service mysqld restart
3.匯出 test 資料庫的資料(加 -l 是要把目前 table lock 起來再輸出)
mysqldump -l -u root -p test > test.sql
4.將sql傳送到 slave 的機器上
scp test.sql root@192.168.1.2:~/test.sql
5.進入MySQL command mode
mysql -u root -p
6.建立一個做為 replication 的帳號密碼
在此是建立一個帳號為 replication 密碼為 abc123 為例
mysql> CREATE USER 'replication'@'%' IDENTIFIED BY 'abc123';
給予 replication 帳號擁有 replicaiton 的權限
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
Slave:
1. 建立一個 test 資料庫
mysql -u root -p
mysql> CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
2. 匯入資料
mysql -u root -p test < test.sql
3. vi /etc/my.cnf
加入
server-id=2 #不能重複
log-slave-updates #告訴 slave 去 master 抓資料
log-bin=mysql-bin
binlog_format=mixed
relay-log=hostname-relay-bin
replicate-do-db=test #需要同步的 database name
master-connect-retry=60 #取得資料發生錯誤多久重試嘗試(以秒單位)
read-only=1
#很重要, 將 slave 的資料庫設為唯讀, 因為如果資料表格發生衝突時, 該資料表將不會再同步。另外要注意的是此選項對於 root 和擁有 replication 的帳號沒用, 這些帳號還是有寫入權限
4. service mysqld restart
5. mysql -u root -p
修改 slave 的設定值
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.1',
MASTER_USER='replication', MASTER_PASSWORD='abc123';
這裡帳號密碼請填入 master 所建立的
清空原設定 以下指令是如果原本有建立過replication可用此指令清除資料
mysql> CHANGE MASTER TO MASTER_LOG_FILE='', MASTER_LOG_POS=0;
6. 啟動 slave
mysql> SLAVE START;
7. 確認是否有啟動
mysql> SHOW SLAVE STATUS;
必須看到以下 2 個狀能為 Yes
Slave_IO_Running Yes
Slave_SQL_Running Yes
如不是 Yes 請查看 /var/log/mysqld.log
為你的系統建一個普通的帳密(上述如果開放寫入, 發生衝突即無法同步)
mysql> CREATE USER 'test'@'%' IDENTIFIED BY 'eabc123';
給予 test 帳號存取 test 資料庫權限
mysql> GRANT ALL ON test.* TO 'test'@'%';
ref:
http://homeserver.com.tw/%E7%86%B1%E9%96%80%E6%9B%B8%E7%B1%A4/mysql-master-slave/
http://blog.wu-boy.com/2008/12/mysql-%E5%AF%A6%E5%81%9A-mysql-master-master-replication-%E5%90%8C%E6%AD%A5/
2012年7月31日 星期二
[Python] Windows 下快速安裝 Apache+Mysql+python
1. 快速安裝 apache + mysql + php + phpMyAdmin
首先到 http://www.appservnetwork.com/
下載 AppServ 執行安裝
2. 安裝 python 到 http://www.python.org/download/
下載 python 2.x (or python 3.x)
3. 安裝 mysql-pyhone 模組 到 http://www.lfd.uci.edu/~gohlke/pythonlibs/
下載 MySQL-python-1.2.3.win32-py2.7.exe or (MySQL-python-1.2.3.win32-py3.2.exe)
(這是 32 位元版本, 如是 64 位元是 MySQL-python-1.2.3.win-amd64-py2.7.exe )
執行安裝
再到 python shell
執行 import MySQLdb
如沒錯誤訊息就表示完成
4. 使用 cgi 模式
修改 httpd.conf
拿掉 LoadModule cgi_module modules/mod_cgi.so 註解
在 addHandle 加入 .py
AddHandler cgi-script .cgi .py
重開 apache
建立 C:\AppServ\www\test.py
輸入以下內容 (注意第一行請指向安裝 python 的目錄內的 python.exe)
打開瀏覽器 http://localhost/test.py
ref
http://blog.xuite.net/autosun/study/42871538-%5BUbuntu%5D+%E5%AE%89%E8%A3%9D+Apache2+%2B+Python+%2B+MySQL
http://wiki.python.org/moin/CgiScripts
首先到 http://www.appservnetwork.com/
下載 AppServ 執行安裝
2. 安裝 python 到 http://www.python.org/download/
下載 python 2.x (or python 3.x)
3. 安裝 mysql-pyhone 模組 到 http://www.lfd.uci.edu/~gohlke/pythonlibs/
下載 MySQL-python-1.2.3.win32-py2.7.exe or (MySQL-python-1.2.3.win32-py3.2.exe)
(這是 32 位元版本, 如是 64 位元是 MySQL-python-1.2.3.win-amd64-py2.7.exe )
執行安裝
再到 python shell
執行 import MySQLdb
如沒錯誤訊息就表示完成
4. 使用 cgi 模式
修改 httpd.conf
拿掉 LoadModule cgi_module modules/mod_cgi.so 註解
在 addHandle 加入 .py
AddHandler cgi-script .cgi .py
重開 apache
建立 C:\AppServ\www\test.py
輸入以下內容 (注意第一行請指向安裝 python 的目錄內的 python.exe)
#!C:\Python27\python.exe -u
# -*- coding: utf-8 -*-
print "Content-Type: text/html\n"
import MySQLdb
db = MySQLdb.connect(host="db_host", user="db_user", passwd="db_password", db="db_name")
cursor = db.cursor()
cursor.execute("SELECT * FROM table_name")
result = cursor.fetchall()
for record in result:
print record[0],"<br>"
打開瀏覽器 http://localhost/test.py
ref
http://blog.xuite.net/autosun/study/42871538-%5BUbuntu%5D+%E5%AE%89%E8%A3%9D+Apache2+%2B+Python+%2B+MySQL
http://wiki.python.org/moin/CgiScripts
2012年6月4日 星期一
[Android] Bitmap out of memory 一些解決法
使用 Bitmap 在讀取較大的原始圖片時,常會發生 Out of memory 的錯誤
即可以利用 Bitmap.Options 的參數設定來降低讀取圖片時所需要的記憶體
其中 Android Developer 官方所教導的方法是使用 isSampleSize 的方式來降低讀取圖檔時所需要的 memory
該參數大於 1 時
如 2 即表示回傳的解析度為 width /2 * height / 2 的圖檔
4 即表示回傳的解析度為 width /4 * height /4 的圖檔
依此類堆
因解析度少很多,故可以減少讀圖檔的 memory
其中 Android Developer 官方所教導的方法是使用 isSampleSize 的方式來降低讀取圖檔時所需要的 memory
該參數大於 1 時
如 2 即表示回傳的解析度為 width /2 * height / 2 的圖檔
4 即表示回傳的解析度為 width /4 * height /4 的圖檔
依此類堆
因解析度少很多,故可以減少讀圖檔的 memory
這部份的 code 可以依自己需求修改,跟官方不太一樣
以下所計算的方式是將圖片縮到比想要的解析度大一點的最小縮圖,求在顯示時有較佳的解析度
以下所計算的方式是將圖片縮到比想要的解析度大一點的最小縮圖,求在顯示時有較佳的解析度
public static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight)
{
final int height = options.outHeight;
final int width = options.outWidth;
int inSampleSize = 1;
inSampleSize = (int) Math.min(Math.ceil((float)width/(float)reqWidth), Math.ceil((float)height/(float)reqHeight));
return inSampleSize;
}
public static Bitmap decodeSampledBitmapFromFile(String fileName, int reqWidth, int reqHeight)
{
// First decode with inJustDecodeBounds=true to check dimensions
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(fileName, options);
// Calculate inSampleSize
options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
// Decode bitmap with inSampleSize set
options.inJustDecodeBounds = false;
return BitmapFactory.decodeFile(fileName, options);
}
ps: inJustDecodeBounds 的參數表示會讀取圖片的一些 info 但不會將圖檔本體讀進來
此時可以讀到圖檔的寬高並無法使用該圖檔去處理或顯示(因為沒讀進 memory)
不過竟然有這樣的參數
interface 應該有可能實現,直接讀取想要寬高的圖檔才對!?
Ref:http://developer.android.com/training/displaying-bitmaps/load-bitmap.html
這樣的方式雖然可以大量減少 out of memory 的問題
但還是有可能會發生
所以還是可以配合
bitmap.recycle();
System.gc();
來減少發生
更詳細與其他解法的 Ref:
http://givemepass.blogspot.tw/2011/11/blog-post_16.html
http://bluegray-javalearning.blogspot.tw/2011/07/android-out-of-memoryoom.html
bitmap.recycle();
System.gc();
來減少發生
更詳細與其他解法的 Ref:
http://givemepass.blogspot.tw/2011/11/blog-post_16.html
http://bluegray-javalearning.blogspot.tw/2011/07/android-out-of-memoryoom.html
2012年4月12日 星期四
[Apache] 在 windows apache2.2 編譯 mod_encoding
mod_encoding.c
環境
windows 7
visual studio 2010
apache2.2
apxs
1.
官網
http://webdav.todo.gr.jp/
http://gnuwin32.sourceforge.net/packages/regex.htm
下載
a. http://webdav.todo.gr.jp/download/mod_encoding-20021209.tar.gz
b. http://webdav.todo.gr.jp/download/experimental/mod_encoding.c.apache2.20040616a
c. http://gnuwin32.sourceforge.net/downlinks/regex-bin-zip.php (regex-2.7-bin.zip)
2.
a. 解開 mod_encoding-20021209.tar.gz
b. cd mod_encoding-20021209
c. 改名 mod_encoding.c 為 mod_encoding.c.bak
d. 複製 mod_encoding.c.apache2.20040616a 進來改名為 mod_encoding.c
e. 解開 regex-2.7-bin.zip
f. 複製 regex-2.7-bin/include/regex.h 到 mod_encoding-20021209/
3.
a. 建立目錄 mod_encoding-20021209/iconv_hook
b. 複製 mod_encoding-20021209/lib/iconv.h.replace 到 mod_encoding-20021209/iconv_hook/inconv.h
c. 複製 mod_encoding-20021209/lib/iconv_hook.h 到 mod_encoding-20021209/iconv_hook/iconv_hook.h
4. 修改 regex.h
windows 沒有的 sys/types.h 改為 stddef.h
將 #include <sys/types.h> 註解
加入 #include <stddef.h>
5. 修改 mod_encoding.c
a. 在 #include <httpd.h> 上加入 #include "regex.h"
b. 加入
#include <apr_strings.h>
#include "iconv_hook/iconv.h"
c. 修改 548 行
windows 沒有 index 改用 strchr 取代
if ((user = index(r->user, '\\')) == NULL)
改為
if ((user = strchr(r->user, '\\')) == NULL)
6. 修改 iconv_hook_eucjp.c、iconv_hook_mssjis.c、iconv_hook_ucs2_cp932.c、iconv_hook_utf8_cp932.c、iconv_hook_utf8_eucjp.c
(在 mod_encoding-20021209/lib)
windows 沒有 dirent.h 和 unistd.h
註解
//#include <dirent.h>
//#include <unistd.h>
加入
#include <windows.h>
7. 修改 identify_encoding.h
(在 mod_encoding-20021209/lib)
因為 windows 沒有 strcasecmp 和 strncasecmp 所以改用 stricmp 和 strncmp
加入
#define strcasecmp stricmp
#define strncasecmp strncmp
8. 使用 apxs 編譯
如果沒有 apxs 可以自行編譯,指令如下
9. 複製 mod_encoding.so 到 apache2/modules/
10.
加入以下的 config 註解掉的為 web-dav 所用,依需求自行開啟
Ref
http://webdav.todo.gr.jp/
http://blog.makk.idv.hk/post/31/
環境
windows 7
visual studio 2010
apache2.2
apxs
1.
官網
http://webdav.todo.gr.jp/
http://gnuwin32.sourceforge.net/packages/regex.htm
下載
a. http://webdav.todo.gr.jp/download/mod_encoding-20021209.tar.gz
b. http://webdav.todo.gr.jp/download/experimental/mod_encoding.c.apache2.20040616a
c. http://gnuwin32.sourceforge.net/downlinks/regex-bin-zip.php (regex-2.7-bin.zip)
2.
a. 解開 mod_encoding-20021209.tar.gz
b. cd mod_encoding-20021209
c. 改名 mod_encoding.c 為 mod_encoding.c.bak
d. 複製 mod_encoding.c.apache2.20040616a 進來改名為 mod_encoding.c
e. 解開 regex-2.7-bin.zip
f. 複製 regex-2.7-bin/include/regex.h 到 mod_encoding-20021209/
3.
a. 建立目錄 mod_encoding-20021209/iconv_hook
b. 複製 mod_encoding-20021209/lib/iconv.h.replace 到 mod_encoding-20021209/iconv_hook/inconv.h
c. 複製 mod_encoding-20021209/lib/iconv_hook.h 到 mod_encoding-20021209/iconv_hook/iconv_hook.h
4. 修改 regex.h
windows 沒有的 sys/types.h 改為 stddef.h
將 #include <sys/types.h> 註解
加入 #include <stddef.h>
5. 修改 mod_encoding.c
a. 在 #include <httpd.h> 上加入 #include "regex.h"
b. 加入
#include <apr_strings.h>
#include "iconv_hook/iconv.h"
c. 修改 548 行
windows 沒有 index 改用 strchr 取代
if ((user = index(r->user, '\\')) == NULL)
改為
if ((user = strchr(r->user, '\\')) == NULL)
6. 修改 iconv_hook_eucjp.c、iconv_hook_mssjis.c、iconv_hook_ucs2_cp932.c、iconv_hook_utf8_cp932.c、iconv_hook_utf8_eucjp.c
(在 mod_encoding-20021209/lib)
windows 沒有 dirent.h 和 unistd.h
註解
//#include <dirent.h>
//#include <unistd.h>
加入
#include <windows.h>
7. 修改 identify_encoding.h
(在 mod_encoding-20021209/lib)
因為 windows 沒有 strcasecmp 和 strncasecmp 所以改用 stricmp 和 strncmp
加入
#define strcasecmp stricmp
#define strncasecmp strncmp
8. 使用 apxs 編譯
cd mod_encoding-20021209/
c:\apache2\bin\apxs -llibhttpd -llibapr-1 -llibaprutil-1 -c mod_encoding.c ./lib/iconv_hook.c ./lib/iconv_hook_default.c ./lib/iconv_hook_eucjp.c ./lib/iconv_hook_ja_auto.c ./lib/iconv_hook_mssjis.c ./lib/iconv_hook_ucs2_cp932.c ./lib/iconv_hook_utf8_cp932.c ./lib/iconv_hook_utf8_eucjp.c ./lib/identify_encoding.c如果沒有 apxs 可以自行編譯,指令如下
cl.exe /nologo /MD /W3 /O2 /D WIN32 /D _WINDOWS /D NDEBUG -I"C:\apache2\include" /c /Fomod_encoding.lo mod_encoding.c
cl.exe /nologo /MD /W3 /O2 /D WIN32 /D _WINDOWS /D NDEBUG -I"C:\apache2\include" /c /Fo./lib/iconv_hook.lo ./lib/iconv_hook.c
cl.exe /nologo /MD /W3 /O2 /D WIN32 /D _WINDOWS /D NDEBUG -I"C:\apache2\include" /c /Fo./lib/iconv_hook_default.lo ./lib/iconv_hook_default.c
cl.exe /nologo /MD /W3 /O2 /D WIN32 /D _WINDOWS /D NDEBUG -I"C:\apache2\include" /c /Fo./lib/iconv_hook_eucjp.lo ./lib/iconv_hook_eucjp.c
cl.exe /nologo /MD /W3 /O2 /D WIN32 /D _WINDOWS /D NDEBUG -I"C:\apache2\include" /c /Fo./lib/iconv_hook_ja_auto.lo ./lib/iconv_hook_ja_auto.c
cl.exe /nologo /MD /W3 /O2 /D WIN32 /D _WINDOWS /D NDEBUG -I"C:\apache2\include" /c /Fo./lib/iconv_hook_mssjis.lo ./lib/iconv_hook_mssjis.c
cl.exe /nologo /MD /W3 /O2 /D WIN32 /D _WINDOWS /D NDEBUG -I"C:\apache2\include" /c /Fo./lib/iconv_hook_ucs2_cp932.lo ./lib/iconv_hook_ucs2_cp932.c
cl.exe /nologo /MD /W3 /O2 /D WIN32 /D _WINDOWS /D NDEBUG -I"C:\apache2\include" /c /Fo./lib/iconv_hook_utf8_cp932.lo ./lib/iconv_hook_utf8_cp932.c
cl.exe /nologo /MD /W3 /O2 /D WIN32 /D _WINDOWS /D NDEBUG -I"C:\apache2\include" /c /Fo./lib/iconv_hook_utf8_eucjp.lo ./lib/iconv_hook_utf8_eucjp.c
cl.exe /nologo /MD /W3 /O2 /D WIN32 /D _WINDOWS /D NDEBUG -I"C:\apache2\include" /c /Fo./lib/identify_encoding.lo ./lib/identify_encoding.c
link kernel32.lib /nologo /subsystem:windows /dll /machine:I386 /libpath:"c:\apache2\lib" /out:mod_encoding.so libhttpd.lib libapr-1.lib libaprutil-1.lib ./lib/identify_encoding.lo ./lib/iconv_hook_utf8_eucjp.lo ./lib/iconv_hook_utf8_cp932.lo ./lib/iconv_hook_ucs2_cp932.lo ./lib/iconv_hook_mssjis.lo ./lib/iconv_hook_ja_auto.lo ./lib/iconv_hook_eucjp.lo ./lib/iconv_hook_default.lo ./lib/iconv_hook.lo mod_encoding.lo9. 複製 mod_encoding.so 到 apache2/modules/
10.
加入以下的 config 註解掉的為 web-dav 所用,依需求自行開啟
#LoadModule headers_module modules/mod_headers.so
LoadModule encoding_module modules/mod_encoding.so
#<IfModule mod_headers.c>
# Header add MS-Author-Via "DAV"
#</IfModule>
<IfModule mod_encoding.c>
EncodingEngine on
NormalizeUsername on
SetServerEncoding UTF-8
DefaultClientEncoding UTF-8 Big5
# AddClientEncoding "(Microsoft .* DAV $)" UTF-8 Big5
# AddClientEncoding "Microsoft .* DAV" UTF-8 Big5
# AddClientEncoding "Microsoft-WebDAV*" UTF-8 Big5http://www.blogger.com/img/blank.gif
</IfModule>Ref
http://webdav.todo.gr.jp/
http://blog.makk.idv.hk/post/31/
[PHP] 在 centos6 將 PHP 5.3 降版至 5.2
1. 安裝 atomic repository
wget -q -O - http://www.atomicorp.com/installers/atomic | sh
安裝完畢會看到 /etc/yum.repos.d/atomic.repo
2. 移除 php5.3 (如無安裝過即跳過此步驟)
yum remove php*
3. 安裝 php 5.2
php-5.2* php-mbstring-5.2* php-xml-5.2* php-ldap-5.2* php-gd-5.2* php-xml-5.2* php-pdo-5.2*
4.避免升級到 php 5.3
vi /etc/yum.repos.d/atomic.repo 或 /etc/yum.conf
加入 exclude=php-5.3* (加在 [atomic] 內)
Ref: https://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/
下面是舊方法~
rpm -qa | grep php
rpm -e --nodeps phpxxxx
32bit
wget http://www6.atomicorp.com/channels/atomic/centos/6/i386/RPMS/php-5.2.17-1.el6.art.i686.rpm
wget http://www6.atomicorp.com/channels/atomic/centos/6/i386/RPMS/php-cli-5.2.17-1.el6.art.i686.rpm
wget http://www6.atomicorp.com/channels/atomic/centos/6/i386/RPMS/php-common-5.2.17-1.el6.art.i686.rpm
wget http://www6.atomicorp.com/channels/atomic/centos/6/i386/RPMS/php-mbstring-5.2.17-1.el6.art.i686.rpm
wget http://www6.atomicorp.com/channels/atomic/centos/6/i386/RPMS/php-devel-5.2.17-1.el6.art.i686.rpm
wget http://www6.atomicorp.com/channels/atomic/centos/6/i386/RPMS/php-ldap-5.2.17-1.el6.art.i686.rpm
wget http://www6.atomicorp.com/channels/atomic/centos/6/i386/RPMS/php-gd-5.2.17-1.el6.art.i686.rpm
wget http://www6.atomicorp.com/channels/atomic/centos/6/i386/RPMS/php-xml-5.2.17-1.el6.art.i686.rpm
wget http://www6.atomicorp.com/channels/atomic/centos/6/i386/RPMS/php-pdo-5.2.17-1.el6.art.i686.rpm
rpm -ivh php-common-5.2.17-1.el6.art.i686.rpm
rpm -ivh php-cli-5.2.17-1.el6.art.i686.rpm
rpm -ivh php-5.2.17-1.el6.art.i686.rpm
rpm -ivh php-mbstring-5.2.17-1.el6.art.i686.rpm
rpm -ivh php-xml-5.2.17-1.el6.art.i686.rpm
rpm -ivh php-ldap-5.2.17-1.el6.art.i686.rpm
rpm -ivh php-gd-5.2.17-1.el6.art.i686.rpm
rpm -ivh php-devel-5.2.17-1.el6.art.i686.rpm
rpm -ivh php-pdo-5.2.17-1.el6.art.i686.rpm
yum install libXpm.so.4 libt1.so.5 autoconf automake64bit
wget http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/php-5.2.17-1.el6.art.x86_64.rpm
wget http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/php-cli-5.2.17-1.el6.art.x86_64.rpm
wget http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/php-common-5.2.17-1.el6.art.x86_64.rpm
wget http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/php-mbstring-5.2.17-1.el6.art.x86_64.rpm
wget http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/php-devel-5.2.17-1.el6.art.x86_64.rpm
wget http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/php-ldap-5.2.17-1.el6.art.x86_64.rpm
wget http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/php-gd-5.2.17-1.el6.art.x86_64.rpm
wget http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/php-xml-5.2.17-1.el6.art.x86_64.rpm
wget http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/php-pdo-5.2.17-1.el6.art.x86_64.rpm
rpm -ivh php-common-5.2.17-1.el6.art.x86_64.rpm
rpm -ivh php-cli-5.2.17-1.el6.art.x86_64.rpm
rpm -ivh php-5.2.17-1.el6.art.x86_64.rpm
rpm -ivh php-mbstring-5.2.17-1.el6.art.x86_64.rpm
rpm -ivh php-xml-5.2.17-1.el6.art.x86_64.rpm
rpm -ivh php-ldap-5.2.17-1.el6.art.x86_64.rpm
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libXpm-3.5.8-2.el6.x86_64.rpm
rpm -ivh libXpm-3.5.8-2.el6.x86_64.rpm
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/t1lib-5.1.2-6.el6.x86_64.rpm
rpm -ivh t1lib-5.1.2-6.el6.x86_64.rp
rpm -ivh php-gd-5.2.17-1.el6.art.x86_64.rpm
rpm -ivh php-xml-5.2.17-1.el6.art.x86_64.rpm
rpm -ivh php-pdo-5.2.17-1.el6.art.x86_64.rpmvi /etc/php.ini
把 short_open_tag = Off 改成 On
service httpd restart
避免 yum 更新到 php 做以下設定
vi /etc/yum.conf
加入
exclude=php*
Ref :
http://linux-bloggers.blogspot.com/2011/09/downgrade-php-in-centos-6.html
訂閱:
文章 (Atom)




