滿主觀的, 不過可姒參考
http://zakx.de/phprant-en.pdf
2011年10月23日 星期日
2011年10月20日 星期四
Google earth在Debian squeeze 32bit 中文出不來
Google附的Qt4函式庫的問題,改用系統內建的就好了。
先把Google附的砍掉
Google附的Qt4lib裝在 /opt/google/earth/free/目錄下, 有四個檔:
libQtCore.so.4, libQtGui.so.4, libQtNetwork.so.4, libQtWebKit.so.4
全砍掉, 然後再改 /opt/google/earth/free/googleearth
找到以下這行:
LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ./googleearth-bin “$@”
再之前加上這行
export LD_PRELOAD=/usr/lib/libfreeimage.so.3
就好了。
(註: 要安裝sudo aptitude install libfreeimage3)
via: http://blog.slps.tp.edu.tw/00086/?p=275
先把Google附的砍掉
Google附的Qt4lib裝在 /opt/google/earth/free/目錄下, 有四個檔:
libQtCore.so.4, libQtGui.so.4, libQtNetwork.so.4, libQtWebKit.so.4
全砍掉, 然後再改 /opt/google/earth/free/googleearth
找到以下這行:
LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ./googleearth-bin “$@”
再之前加上這行
export LD_PRELOAD=/usr/lib/libfreeimage.so.3
就好了。
(註: 要安裝sudo aptitude install libfreeimage3)
via: http://blog.slps.tp.edu.tw/00086/?p=275
2011年10月14日 星期五
[Python] PyPI實在太常連不到了
pip 0.8.1之後:
舊版pip (Debian 6用的是0.7.2)
或是把mirror資料寫在"~/.pip/pip.conf"裡
via: http://jacobian.org/writing/when-pypi-goes-down/
pip install --use-mirrors $PACKAGE
舊版pip (Debian 6用的是0.7.2)
pip install -i http://d.pypi.python.org/simple $PACKAGE
或是把mirror資料寫在"~/.pip/pip.conf"裡
[global]
index-url = http://d.pypi.python.org/simple
via: http://jacobian.org/writing/when-pypi-goes-down/
2011年10月11日 星期二
2011年10月6日 星期四
2011年10月4日 星期二
Apache ab - benchmarking工具
-c concurrency 同時連線數
-n requests 次數
-t timelimit 測試時間(秒數)
-k HTTP Keep Alive (時間不長的話差別不大)
ex:
ab -c 20 -t 30
http://httpd.apache.org/docs/2.0/programs/ab.html
PHP Xdebug安裝
PHP好用的debug和profiling工具: Xdebug
php.ini加上
zend_extension="/wherever/you/put/it/xdebug.so"
重啟apache2, 如果phpinfo頁有出現Xdebug的字就成功了!
$ git clone git://github.com/derickr/xdebug.git
$ cd xdebug
$ phpize
$ ./configure
$ make
$ cp modules/xdebug.so /to/wherever/you/want/it
php.ini加上
zend_extension="/wherever/you/put/it/xdebug.so"
重啟apache2, 如果phpinfo頁有出現Xdebug的字就成功了!
Django的Template的if判斷不能用除數或餘數
我的版面需要ul tag裡有4個li tag,PHP裡常用if i % 4 == 0之類的來判斷,Django裡可以用divisibleby的判斷(回傳True/False),
或是要用可以用cycle來決定輪流出現的tag。
或是要用可以用cycle來決定輪流出現的tag。
{% if forloop.counter0|divisibleby:4 %}
<ul>
{% endif %}
<li>...<li>
{% if forloop.counter|divisibleby:4 or forloop.last %}
</ul>
{% endif %}
Linux處理硬碟壞軌工具
檢查壞軌
(v: verbose, s:show progress )
badblocks -vs /dev/sdb
加“-n” 測試非破壞性寫入
badblocks -nvs /dev/sdb
預先偵測
ATA 硬碟都有支援 S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology)
安裝smartmontools, 用smartctl來看
smartctl --attributes /dev/sdb
如果以下幾組數字不為0時就要注意了:
Reallocated Sectors Count/Reallocations event count,/Current Pending Sector Count/Uncorrectable Sector Count
備分
dd if=/dev/sdb of=sdb.img
要更安全用dcfldd,會檢杳hash
壞軌無法用dd時就用dd_rescue,可以跳過壞掉的資料
更深入請看: Linux 上處理壞軌硬碟的兩三事
php.ini 安全性設定
從PHPサイバーテロの技法―攻撃と防御の実際看來的,推薦設定值。
開發環境
設定名稱 | 預設值 | php.ini | htaccess | script中修改 |
---|---|---|---|---|
expose_php | On | - | x | x |
error_reporting | 2039 | error_reporting=E_ALL | php_value error_reporting2047 | error_reporting(E_ALL); |
display_errors | On | - | - | - |
log_errors | Off | - | - | - |
allow_url_open | On | allow_url_fopen=Off | x | x |
register_globals | Off | - | - | x |
session.use_cookie | On | - | - | - |
session.use_only_cookies | Off | session.use_only_cookies=On | php_flag session.use_only_cookies On | ini_set('session.use_only_cookies', 1); |
session.use_trans_sid | Off | - | - | - |
session.auto_start | Off | - | - | - |
正式環境
設定名稱 | 預設值 | php.ini | htaccess | script中修改 |
---|---|---|---|---|
expose_php | On | expose_php=Off | x | x |
error_reporting | 2039 | - | - | - |
display_errors | On | display_errors=Off | php_flag display_errors Off | ini_set('display_errors', 0); |
log_errors | Off | log_errors=On | php_flag log_errors On | ini_set('log_errors', 1); |
allow_url_fopen | On | allow_url_fopen=Off | x | x |
register_globals | Off | - | - | x |
session.use_cookies | On | - | - | - |
session.use_only_cookies | Off | session.use_only_cookies=On | php_flag session.use_only_cookies On | ini_set('session.use_only_cookies', 1) |
session.use_trans_sid | Off | - | - | - |
session.auto_start | Off | - | - | - |
- - : 不用改變
- x : 無法改變
CSV格式
逗號分隔欄位, 換行符號("\n")是下一筆
* 有逗號, 空格, 換行的字串用雙引號包起來: "foo, bar"
* 顯示1個雙引號要用2個雙引號, 如 "12'30"""-->12'30"
* 如要顯示數字前的0, 就要用="007"來表示
* 有逗號, 空格, 換行的字串用雙引號包起來: "foo, bar"
* 顯示1個雙引號要用2個雙引號, 如 "12'30"""-->12'30"
* 如要顯示數字前的0, 就要用="007"來表示
IE下載docx會變zip檔
因為apache不認得,
可以改httpd.conf
或.htaccess加上
可以改httpd.conf
或.htaccess加上
AddType application/vnd.openxmlformats .docx .pptx .xlsx .odp
Python的dict用某一key排序
有個dict有title和date二個key, 要指定用date來排序:
>>> list = []
>>> list.append({'title':'abc','date':1})
>>> list.append({'title':'def','date':2})
>>> list.append({'title':'ghi','date':0})
>>> print sorted(list, key=lambda x: x['date'])
[{'title': 'ghi', 'date': 0}, {'title': 'abc', 'date': 1}, {'title': 'def', 'date': 2}]
>>> print sorted(list, key=lambda x: x['date'], reverse=True)
[{'title': 'def', 'date': 2}, {'title': 'abc', 'date': 1}, {'title': 'ghi', 'date': 0}]
Munin系統監控
使用RRDTool, 設置簡單, port: 4949
設定檔: /etc/munin/munin.conf
預設只給localhost連, 外部連會出現403 Forbidden 的錯:
把Allow from 127.0.0.1 ::1 改成Allow from all
重啟apache就好了
加密碼要設定apache.conf的htpasswd路徑
AuthUserFile /var/www/.htpasswd
產生認證密碼
htpasswd -c /var/www/.htpasswd admin
apt-get install munin
apt-get install munin munin-node
/etc/init.d/munin-node restart
設定檔: /etc/munin/munin.conf
預設只給localhost連, 外部連會出現403 Forbidden 的錯:
/etc/munin/apache.conf
把Allow from 127.0.0.1 ::1 改成Allow from all
重啟apache就好了
加密碼要設定apache.conf的htpasswd路徑
AuthUserFile /var/www/.htpasswd
產生認證密碼
htpasswd -c /var/www/.htpasswd admin
debian安裝php-apc
- aptitude install php5-dev
- aptitude install php-pear
- pecl install APC
有錯, 缺pcre.h
要找出pcre.h是裝那個package才會有的
所以apt-file search -x "/pcre.h$" (找不到apt-file, 再裝apt-file, 然後apt-file update)
apt-file search會列出三個
kannel-dev: /usr/include/kannel/gwlib/pcre.h
libajax6-dev: /usr/include/ajax/pcre.h
libpcre3-dev: /usr/include/pcre.h
應該是libpcre3-dev, 所以裝了他
- 改 /etc/php5/apache2/conf.d/apc.ini (原本沒有, 要新增)
寫入extension=apc.so
- 把/usr/share/php/apc.php複製到自己的public_html
- 重開apache2
- aptitude install php-pear
- pecl install APC
有錯, 缺pcre.h
要找出pcre.h是裝那個package才會有的
所以apt-file search -x "/pcre.h$" (找不到apt-file, 再裝apt-file, 然後apt-file update)
apt-file search會列出三個
kannel-dev: /usr/include/kannel/gwlib/pcre.h
libajax6-dev: /usr/include/ajax/pcre.h
libpcre3-dev: /usr/include/pcre.h
應該是libpcre3-dev, 所以裝了他
- 改 /etc/php5/apache2/conf.d/apc.ini (原本沒有, 要新增)
寫入extension=apc.so
- 把/usr/share/php/apc.php複製到自己的public_html
- 重開apache2
scp時出現"PRNG is not seeded lost connection"
在2host的debian 6裡出現的,
還沒研究怎麼發生的, 暫時先改權限解決
還沒研究怎麼發生的, 暫時先改權限解決
sudo chmod 744/dev/urandom
Django quick start
訂閱:
文章 (Atom)