UPDATE 2011-05-11 勘誤!
以下才是正確的 FastCGI/PHP-FPM 設定!另外請把 mod_php5 關掉,謝謝。
<ifModule mod_fastcgi.c>
FastCGIExternalServer /var/www/php5-fpm.extenal -socket /tmp/php-fpm.sock
AddHandler php5-fcgi .php
Action php5-fcgi /usr/lib/cgi-bin/php5-fpm.extenal
ScriptAlias /usr/lib/cgi-bin/ /var/www/
<Directory /usr/lib/cgi-bin>
Options +ExecCGI FollowSymLinks
SetHandler php5-fcgi
Order allow,deny
Allow from all
</Directory>
</IfModule>
由於之前白目自己升級核心 2.6.38 之後,整個 Ubuntu 就被我搞爛掉了。就算我用 Beta1 來安裝,Ubuntu 11.04 對於硬體支援的程度,還是有點異常(特別是顯示卡跟音效卡)。雖然他對於 Switchable Graphics 的支援有一定的程度,但是對於內建的 Intel DRM 跟 Intel HDA 的驅動還是怪怪的。
所以我只好認命的裝回 Ubuntu 10.10 了(默哀)。
所以現在開始 PPA 了(疑)。
- deb http://archive.canonical.com/ubuntu maverick partner
不要問我為什麼加這一條(原生就有,註解拿掉就好)。 - deb http://download.virtualbox.org/virtualbox/debian maverick non-free contrib
VirtualBox - deb http://ppa.launchpad.net/tualatrix/ppa/ubuntu maverick main
Ubuntu Tweak Stable PPA - deb http://ppa.launchpad.net/tualatrix/gnome-terminal/ubuntu maverick main
Gnome Terminal with Google Search PPA - deb http://ppa.launchpad.net/libreoffice/ppa/ubuntu maverick main
LibreOffice PPA(取代 OpenOffice 的新套件,11.04 預設使用) - sudo add-apt-repository ppa:sevenmachines/flash
Flash PPA(可以支援到 64bit Flash plugin)。 - sudo add-apt-repository ppa:mozillateam/firefox-stable
FireFox PPA - sudo add-apt-repository ppa:shawn-p-huang/ppa
iBus PPA - sudo add-apt-repository ppa:ubuntu-audio-dev/ppa
Ubuntu Audio Dev team PPA
然後安裝開發環境,php5,mysql,phpmyadmin,imagemagick,Android,eclipse 爾等。我之前有寫過一篇筆記,所以 可以參考一下 。然後,因為我是要跑 php5-fpm,所以 fpm,fastcgi 模組要另外裝。裝完之後,設定檔大概是這樣。
;listen = 127.0.0.1:9000
listen = /tmp/php-fpm.sock</blockquote>
<IfModule mod_fastcgi.c>
FastCGIExternalServer /usr/sbin/php5-fpm -socket /tmp/php-fpm.sock
AddHandler php-fastcgi .php
Action php-fastcgi /php-fpm.fcgi
ScriptAlias /php-fpm.fcgi /usr/sbin/php5-fpm
<Directory /usr/local/sbin>
Options +ExecCGI FollowSymLinks
SetHandler php-fastcgi
Order allow,deny
Allow from all
</Directory>
</IfModule>
記得 +ExecCGI 不要忘記加上去。然後,MySQL 也出了點問題,由於 InnoDB 的關係,所以如果有使用到的話,請先檢查一下這裡:
/usr/lib/mysql/plugin/ r,
/usr/lib/mysql/plugin/*.so* mr,<br>
然後請執行 mysql -u root -p 進入 mysql> 命令列,執行 show engines;
mysql> show engines;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | YES | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | NO | NO | NO |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
8 rows in set (0.00 sec)
確認一下你的 InnoDB 有在裡面。然後,如果你的 InnoDB 資料表還是沒辦法復原,請先停掉 mysql,刪除 ib_* 檔案,預設的位置是在 /var/lib/mysql/
裡面,重新安裝的 MySQL 會有:
ibdata1
ib_logfile0
ib_logfile1
然後,請刪除 ib_* 的檔案,然後用舊的資料庫的 ibdata1 蓋掉新安裝的檔案。然後重新啟動 mysql,這樣你的 InnoDB 資料表應該就會正常了(InnoDB
無法使用 REPAIR 修復喔,啾咪)。如果要修正 MYISAM 的檔案,可以參考官方的說明,或是 參考宗董的教學文章。
至於 Android 要麼安裝,這裡只筆記一些我每次都懶得查詢的(喂)。
請加入 .bashrc
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export NDKROOT=/opt/android-ndk
export ANDROID_SDK=/opt/android-sdk
export PATH=$PATH:$JAVA_HOME/bin:$NDKROOT:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools:$ANDROID_SDK/platforms/android-4/tools
export CLASSPATH=.:/usr/lib/jvm/java-6-sun/lib
把內建的 openJAVA 換成 O 牌的 Java:
update-java-alternatives -s java-6-sun
如果噴啥錯誤請去 Google,不過大抵上不礙事就是了(疑)。然後執行一下 java -version
應該會有:
$ java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode)
然後,另外一個是我個人的需求,就是把 Google Chrome 的資料全部丟到 Ramdisk 去跑。請把底下這個檔案儲存到 /etc/init.d/
底下,名字你要用 chrome-ramdisk 也可。
#!/bin/sh
### BEGIN INIT INFO
# Provides: chrome-ramdisk chrome-ramdisk
# Required-Start: $remote_fs $syslog $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 6
# Short-Description: Copy and Restore Chrome User Data to RamDisk
### END INIT INFO
set -u
. /lib/lsb/init-functions
user="hinablue"
chrome="/home/$user/.config/google-chrome"
homecache="/home/$user/.cache"
ramdisk="/dev/shm/$user"
case "$1" in
start)
log_begin_msg "Starting Cache modify..."
if [ ! -d "$ramdisk" ]; then
mkdir "$ramdisk"
fi
cp -rf "$chrome" "$ramdisk"
if [ -d "$ramdisk/.cache" ]; then
if [ ! -L "$homecache" ]; then
cp -rf "$homecache" "$ramdisk/"
rm -rf "$homecache"
else
rm -rf "$homecache"
mkdir "$ramdisk/.cache"
fi
else
if [ ! -L "$homecache" ] && [ -d "$homecache" ]; then
mv "$homecache" "$ramdisk"
else
mkdir "$ramdisk/.cache"
fi
fi
if [ -d "$ramdisk/google-chrome/Default/Application\ Cache/Cache" ]; then
rm -f "$ramdisk/google-chrome/Default/Application\ Cache/Cache/*"
fi
if [ -d "$ramdisk/google-chrome/Default/Cache" ]; then
rm -f "$ramdisk/google-chrome/Default/Cache/*"
fi
if [ -d rm "$ramdisk/google-chrome/Default/Media\ Cache" ]; then
rm -f "$ramdisk/google-chrome/Default/Media\ Cache/*"
fi
ln -s "$ramdisk/.cache" "$homecache"
chown -R "$user":"$user" "$ramdisk"
;;
stop)
log_begin_msg "Starting Cache restore..."
if [ -d "$chrome/Default/Application\ Cache/Cache" ]; then
rm -f "$chrome/Default/Application\ Cache/Cache/*"
fi
if [ -d "$chrome/Default/Cache" ]; then
rm -f "$chrome/Default/Cache/*"
fi
if [ -d rm "$chrome/Default/Media\ Cache" ]; then
rm -f "$chrome/Default/Media\ Cache/*"
fi
cp -r "$ramdisk/google-chrome" "/home/$user/.config/"
chown -R "$user":"$user" "$chrome"
if [ -d "$ramdisk" ] && [ -L "$homecache" ]; then
if [ -d "$ramdisk/.cache" ]; then
rm -rf "$homecache"
cp -rf "ramdisk/.cache" "/home/$user"
chown -R "$user":"$user" "$homecache"
fi
fi
;;
*)
echo "Usage: $0 start|stop..."
exit 3
;;
esac
update-rc.d chrome-ramdisk start 80 2 3 4 5 . stop 20 0 6 .
請勿忘記後面的 . 喔,很重要(筆記)。這樣,你的 Chrome 就會飛了(喂)。