WordPress 在上傳檔案時遇到的 “HTTP 錯誤”

使用者界面回傳的錯誤寫的就是很單純的

HTTP錯誤。

看看 Apache 的 log:

[Mon Feb 17 22:56:24.891511 2014] [fcgid:warn] [pid 13457] [client 220.134.226.197:65194] mod_fcgid: HTTP request length 139264 (so far) exceeds MaxRequestLen (131072), referer: http://example.com/wp-admin/media-new.php

所以問題很明顯 … request 太大、超過設定的許可範圍了

看了一下 mod_fcgid – Apache HTTP Server,FcgidMaxRequestLen 的預設值在 apache 2.3.6 開始是 131072,單位是 byte,所以等於只能傳 128KB 以內的資料 XD 而之前的版本預設值則是高達 1GB,所以不會遇到這樣的問題

總覺得這前後兩個值都有點極端 … 所以先調整為 10485760 (10MB) 再觀察看看,目前使用正常,沒有需要傳特別大的資料就應該是不會再有什麼問題了

一口氣解壓縮目錄底下的所有封裝壓縮檔(*.tar.gz)

如果想一次把目錄底下的.tar.gz或.tar.?z等封裝壓縮檔解壓縮,直接這樣做會出問題:
tar -xvf *.tar.gz

螢幕就會開始跳:

tar: a.tar.gz: Not found in archive
tar: b.tar.gz: Not found in archive
tar: c.tar.gz: Not found in archive
tar: d.tar.gz: Not found in archive
tar: e.tar.gz: Not found in archive
tar: Error exit delayed from previous errors.

結果是要這樣才行:

for a in `ls -1 *.tar.gz`; do tar -xvf $a; done

設定 git 的 http proxy

之所以要用這個設定的來由是 … 用習慣自己架設的 git server 會覺得 GitHub 的速度很慢,尤其是要 clone 一個大專案下來的時候就是要等,但是在美國的虛擬主機跑起來速度卻是挺快的,主要應該是網路路由問題(網路環境連某些國家慢、某些很快)

剛好有在某主機上面跑 http proxy 服務,所以就查了一下 git 要怎麼設定 proxy server 來”繞路”,其實還滿簡單的

只要在想要吃這個設定的專案下面跑一行設定:

git config http.proxy http://myusername:mypassword@proxy.server:port

沒有使用者認證的話就把小老鼠(@)前面的那一串拿掉就好了:

git config http.proxy http://proxy.server:port

如果你的所有專案都是在 GitHub 上的話可以乾脆設為使用者的全域設定:

git config --global http.proxy http://proxy.server:port

收工搞定!速度真的差超多~

所以現在都習慣 clone Github 上專案拉下來的時候都走 https 過 proxy,如果有 fork 要 push commit 的話再自己去把 push url 改走 ssh 協定~

Debian / Ubuntu 系列 GNU/Linux 服務開機自動啟動調整

有些服務不是apt-get安裝完之後就完了,像是apache2開機的時候會自己帶起來,但vsftp就不會

利用update-rc.dinsserv可以來做調整,加入需要開機自動啟動的程式、反之移除沒需要的

其實就是幫你把init.d底下的script link進rc*.d底下去~ (* = runlevel) 就會跟著系統啟動一起執行這些程式~

Debian 6.0以前用update-rc.d、6.0開始用insserv(舊的看起來還是會動就是了),而Ubuntu則是用update-rc.d

最常用的應該就…

設啟動
insserv servicename

update-rc.d servicename defaults

從預設啟動裡面移除
insserv -r servicename

update-rc.d servicename remove

runlevel什麼的就先不管它了 暫時沒需求 :P

Reference:
LSBInitScripts/DependencyBasedBoot – Debian Wiki
The Debian GNU/Linux FAQ – Customizing your installation of Debian GNU/Linux
Update-rc.d – LQWiki
Ubuntu Manpage: update-rc.d – install and remove System-V style init script links

PS:
Redhat系列的好像是chkconfig servicename on這樣?