2010-12-29

postfix 問題集

當pop3跟smtp都成功時,但一直沒有新的信時,檢查
main.cf
virtual_mailbox_limit 不能比 message_size_limit 小,或二個都註解掉 restart

如果一直沒自動建立 收件者的 資料夾請看一下 權限
sudo chown vmail:vmail -R  /home/vmail/

多看一下 /var/log/mail.log 及 /var/log/mail.warn

如果出現 Host or domain name not found. Name service error
sudo vim /var/spool/postfix/etc/resolv.conf
去設定
nameserver 168.95.1.1
nameserver 8.8.8.8


別忘了啟動
/etc/init.d/saslauthd start
/etc/init.d/postfix start
/etc/init.d/courier-pop start
/etc/init.d/courier-imap start
/etc/init.d/courier-authdaemon start

2010-12-24

ubuntu 10.4 的 postfix + mysql + postfixadmin 安裝記錄

sudo apt-get install mysql-client mysql-server 
sudo apt-get install phpmyadmin apache2 libapache2-mod-php5 php5 php5-mysql
sudo apt-get install postfix postfix-mysql postfix-doc courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl postfix-tls libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl 
#開始建 postfix to mysql的連結
sudo vim /etc/postfix/mysql_virtual_alias_maps.cf
#################################
user = mysql_username
password = mysql_pass
hosts = 127.0.0.1
dbname = mysql_dbname
table = alias
select_field = goto
where_field = address
#################################

sudo vim /etc/postfix/mysql_virtual_domains_maps.cf
#################################
user = mysql_username
password = mysql_pass
hosts = 127.0.0.1
dbname = mysql_dbname
table = domain
select_field = domain
where_field = domain
#additional_conditions = and backupmx = '0' and active = '1'
#################################

sudo vim /etc/postfix/mysql_virtual_mailbox_maps.cf
#################################
user = mysql_username
password = mysql_pass
hosts = 127.0.0.1
dbname = mysql_dbname
table = mailbox
select_field = maildir
where_field = username
#additional_conditions = and active = '1'
#################################

sudo vim /etc/postfix/mysql_virtual_mailbox_limit_maps.cf
#################################
user = mysql_username
password = mysql_pass
hosts = 127.0.0.1
dbname = mysql_dbname
table = mailbox
select_field = quota
where_field = username
#additional_conditions = and active = '1'
#################################

sudo vim /etc/postfix/mysql_relay_domains_maps.cf
#################################
user = mysql_username
password = mysql_pass
hosts = 127.0.0.1
dbname = mysql_dbname
table = domain
select_field = domain
where_field = domain
additional_conditions = and backupmx = '1'
#################################

sudo chgrp postfix /etc/postfix/mysql_*.cf
sudo chmod 640 /etc/postfix/mysql_*.cf

#在 main.conf 中加入建立連結的選 項

sudo vim /etc/postfix/main.cf

#################################
# Virtual Mailbox Domain Settings

virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_limit = 51200000
virtual_minimum_uid = 5000
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_mailbox_base = /home/vmail
virtual_transport = virtual

# Additional for quota support

virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the your maildir has overdrawn your diskspace quota, please free up some of spaces of your mailbox try again.
virtual_overquota_bounce = yes
#################################


sudo groupadd -g 5000 vmail
sudo useradd -m -g vmail -u 5000 -d /home/vmail -s /bin/bash vmail

### 改nameserver


sudo vim /var/spool/postfix/etc/resolv.conf
#設定
nameserver 168.95.1.1
nameserver 8.8.8.8
##沒設定寄出的信會就出現Host or domain name not found. Name service error ,nameserver 可指定自家的不一定要用168.95.1.1

### smtp登入的使用者驗證
vi /etc/courier/authdaemonrc
## Change to mysql mode
authmodulelist="authmysql"

## 顯示 login 的 log 來 debug
DEBUG_LOGIN=2

sudo vim /etc/courier/authmysqlrc
#################################
MYSQL_SERVER 127.0.0.1
MYSQL_USERNAME mysql_username
MYSQL_PASSWORD mysql_pass
MYSQL_DATABASE mysql_dbname
MYSQL_USER_TABLE mailbox
MYSQL_LOGIN_FIELD username
MYSQL_NAME_FIELD name
MYSQL_CRYPT_PWFIELD password
#MYSQL_CLEAR_PWFIELD     password
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD concat(quota,'S')
MYSQL_HOME_FIELD        '/home/vmail'
MYSQL_UID_FIELD '5000'
MYSQL_GID_FIELD '5000'
#################################


/etc/postfix/sasl/smtpd.conf
不用這個
#################################
pwcheck_method: auxprop
auxprop_plugin: sql
mech_list: plain login cram-md5 digest-md5
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: mysql_username
sql_passwd: mysql_pass
sql_database: mysql_dbname
sql_select: select password from mailbox where username='%u@%r' and active = 1
#################################
改這個
##########################
pwcheck_method: saslauthd
mech_list: plain login
allow_plaintext: true
auxprop_plugin: mysql
sql_hostnames: 127.0.0.1
sql_user: mysql_username
sql_passwd: mysql_pass
sql_database: mysql_dbname
sql_select: select password from mailbox where username='%u@%r' and active = 1
##########################

sudo vim /etc/pam.d/smtp
##########################
auth    required   pam_mysql.so user=mysql_username passwd=mysql_pass host=127.0.0.1 db=mysql_dbname table=mailbox usercolumn=username passwdcolumn=password crypt=1
account sufficient pam_mysql.so user=mysql_username passwd=mysql_pass host=127.0.0.1 db=mysql_dbname table=mailbox usercolumn=username passwdcolumn=password crypt=1
##########################

### 加入 smtp 的驗証
sudo vim /etc/postfix/main.cf

##########################
smtpd_recipient_restrictions = reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unknown_recipient_domain reject_unauth_destination, permit
# modify the existing smtpd_sender_restrictions
smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unauth_pipelining, permit
# then add these
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
##########################
###  建立 key

sudo openssl req -new -outform PEM -out /etc/postfix/smtpd.cert -newkey rsa:2048 -nodes -keyout /etc/postfix/smtpd.key -keyform PEM -days 3650 -x509sudo chmod 640 /etc/postfix/smtpd.key

### 啟用 saslauthd
sudo adduser postfix sasl
sudo mkdir -p /var/spool/postfix/var/run/saslauthd
### 編輯 /etc/default/saslauthd 
sudo vim /etc/default/saslauthd
######只改
START=yes
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
############
sudo /etc/init.d/saslauthd restart
 參考來源:http://www.debiantutorials.com/installing-postfix-with-mysql-backend-and-sasl-for-smtp-authentication/

Postfix的Relay Control

Postfix的Relay控制,是在/etc/postfix/main.cf裡面做設定,主要有四個部份:
一、inet_interfaces
二、mynetworks_style
三、mynetworks
四、relay_domains

一、inet_interfaces:
預設值是「all」,如果你的機器有多張網路卡,但又不想要全部都開放 relay,就可以指定只開放給某張網路卡。

二、mynetworks_style:
有三種型態:class、subnet及host,預設值是「subnet」
1. class是可以指定開放給A/B/C class的來源,這種設定方式滿冒險。

2. subnet代表你的機器的IP所在網域的任何一個IP都可以接受relay。(如果同一個subnet裡的機器多,要小心可能被當成垃圾信跳板)

3. host表示只會設定localhost為信任的網域而已。

三、mynetworks:
這可以設定成檔案的方式或是直接以IP/netmask來做設定。
例如:
mynetworks=192.168.1.0/24, 127.0.0.0/8

而如果要用檔案方式:
mynetworks = 127.0.0.0/8, hash:/etc/postfix/access
記得postmap一下這個access檔。

注意:
1. 如果沒有設定mynetworks的話,記得把mynetworks_style改成「host」,不然同一個子網域的IP都可以透過你的機器relay信件(當然如果所有子網域的使用者你都認識的話倒還ok)
2. 如果有設定 mynetworks_style 以及 mynetwork 時,mynetworks的設定會取代掉mynetworks_style。

四、relay_domains:
可以一次指定一個domain來開放relay。
例如:
relay_domains = eddie.com.tw
這樣的設定是代表所有由eddie.com.tw這個domain來的信件都會被當做可信任的,postfix會幫忙relay。

但要注意的是,由「任何地方」來的信件,並且要寄往eddie.com.tw網域的信件,postfix 主機也會幫忙Relay。

詳細設定在/etc/postfix/main.cf裡有說明。


來源:Postfix的Relay Control | 高見龍

ubuntu 10.4 的 bind9 無法 include 外部路徑

ubuntu 10.4 的 bind9 無法 include 外部路徑
的解決方法
使用 mount --bind 把外部路徑 掛到 /etc/bind 底下
mount --bind 請看 :http://z-win.blogspot.com/2010/05/linux-ftp.html

/bin/bash: Permission denied 及 /bin/ls: Permission denied的問題

出現
/bin/bash: Permission denied 及 /bin/ls: Permission denied的問題
無法使用 ssh 登入

請用root 登入
stat / 看一下是不是 x 的權限不見了
chmod 755 /
就能修正

2010-12-03

在ubuntu安設定openoffice 的service 給 php用

參考:http://code.google.com/p/openmeetings/wiki/OpenOfficeConverter

Install Open Office Service on Debian/(K)Ubuntu (versions > 2.3)

  1. Install OpenOffice-Headless as root (through su, sudo, etc.):
    sudo apt-get install openoffice.org-headless
  2. Create and edit a file named openoffice.sh (for example) with you favorite editor over /etc/init.d:
    vi /etc/init.d/openoffice.sh
    #!/bin/bash
    # openoffice.org  headless server script
    #
    # chkconfig: 2345 80 30
    # description: headless openoffice server script
    # processname: openoffice
    # 
    # Author: Vic Vijayakumar
    # Modified by Federico Ch. Tomasczik
    #
    OOo_HOME=/usr/bin
    SOFFICE_PATH=$OOo_HOME/soffice
    PIDFILE=/var/run/openoffice-server.pid
    
    set -e
    
    case "$1" in
     start)
    
     if [ -f $PIDFILE ]; then
    
      echo "OpenOffice headless server has already started."
      sleep 5
      exit
     fi
      echo "Starting OpenOffice headless server"
      $SOFFICE_PATH -headless -nologo -nofirststartwizard -accept="socket,host=127.0.0.1,port=8100;urp" & > /dev/null 2>&1
      touch $PIDFILE
     ;;
     stop)
     if [ -f $PIDFILE ]; then
      echo "Stopping OpenOffice headless server."
      killall -9 soffice && killall -9 soffice.bin
      rm -f $PIDFILE
      exit
     fi
      echo "Openoffice headless server is not running."
      exit
     ;;
     *)
     echo "Usage: $0 {start|stop}"
     exit 1
    esac
    exit 0
  3. Change the permssions to this file:
    chmod 0755 /etc/init.d/openoffice.sh
  4. Install openoffice.sh init script links:
    update-rc.d openoffice.sh defaults
  5. Start the service:
    /etc/init.d/./openoffice.sh start
  6. You can see if openofice is running with this command:
    netstat -nap | grep office
You should get something like this:
tcp        0      0 127.0.0.1:8100          0.0.0.0:* 
LISTEN     2467/soffice.bin 

2010-10-14

使用 useradd 新增使用者後 tab補全功能失效(變成空格),且沒有顏色


#>usermod -s /bin/bash 使用者名

把使用者 的 bin 改成bash 就好了

顏色是因為
~/.bashrc
~/.profile
新增時沒建立,可以copy別的使用者的

如何讓 ~/.bashrc 更新後馬上生效呢?
$>. ~/.bashrc

mu 移站的備忘

因為mu的系統,把主站網址都存成資料庫了,所以要用REPLACE 去更新mysql中的訊息



$dbs = array("bsblogs"=>array("http://the.src.site.dns/pathto/","http://the.new.site.dns/","the.src.site.dns","the.new.site.dns","/pathto/","/"));
foreach ( $dbs as $dbname => $fixv ){
$fix_wp_db->setQuery("USE the_database_name;");
$fix_wp_db->query();
$fix_wp_db->setQuery("SHOW TABLES;");
$tables = $fix_wp_db->loadObjectList();
//print_r($fix_wp_db);
foreach($tables as $tb){
if( preg_match('/[0-9+]_options$/',$tb->Tables_in_the_database_name) ){
echo $tb->Tables_in_the_database_name."
";
$fix_wp_db->setQuery("UPDATE $tb->Tables_in_the_database_name SET option_value = REPLACE( `option_value` , '$fixv[0]', '$fixv[1]' ) ;");
$tables = $fix_wp_db->query();
if(!$fix_wp_db->_errorMsg)echo $fix_wp_db->getQuery()."
";
else echo $fix_wp_db->_errorMsg."
";
}

if( preg_match('/[0-9+]_posts$/',$tb->Tables_in_the_database_name) ){
echo $tb->Tables_in_the_database_name."
";
$fix_wp_db->setQuery("UPDATE $tb->Tables_in_the_database_name SET post_content = REPLACE( `post_content` , '$fixv[0]', '$fixv[1]' ) ;");
$tables = $fix_wp_db->query();
if(!$fix_wp_db->_errorMsg)echo $fix_wp_db->getQuery()."
";
else echo $fix_wp_db->_errorMsg."
";
}


}
$fix_wp_db->setQuery("UPDATE wp_site SET domain = REPLACE( `domain` , '$fixv[2]', '$fixv[3]' ) , path = REPLACE( `path` , '$fixv[4]', '$fixv[5]' );");
$tables = $fix_wp_db->query();
if(!$fix_wp_db->_errorMsg)echo $fix_wp_db->getQuery()."
";
else echo $fix_wp_db->_errorMsg."
";
$fix_wp_db->setQuery("UPDATE wp_blogs SET domain = REPLACE( `domain` , '$fixv[2]', '$fixv[3]' ) , path = REPLACE( `path` , '$fixv[4]', '$fixv[5]' );");
$tables = $fix_wp_db->query();
if(!$fix_wp_db->_errorMsg)echo $fix_wp_db->getQuery()."
";
else echo $fix_wp_db->_errorMsg."
";
}


.htaccess 也要改

2010-10-13

解決:不小心把ubuntu 的預設帳號的群組取消了sudo功能造成 is not in the sudoers file. This incident will be reported

如果你在"本機"上的桌面有登入,且只是封鎖,並末登出的話,可以直接登入
開 終端機

usermod -G adm,admin username
去加入 sudo 的權限群組

沒有的話就要回本機前面,直接重開機
"進入 recover mode ,選擇root"
進入系統
然後把帳號加入到admin

參考來源:不能用sudo 也不能切換root了 [論壇 - 新手村] | Ubuntu 正體中文站

linux 如何搜尋文件內容

#> find . -type f -exec grep 'mingtian' -l {} \;
grep -l :是顯示匹配的內容的文件名字!
>#> find . -type f name "*.php" -exec grep 'mingtian' -l {} \;
只查 *.php 的文件


參考來源:linux下查找文件內容!find grep(小壽原創) - 解決的問題 - linux研究(小壽的天下!): "linux下查找文件內容!find grep(小壽原創)

2010-10-12

putty ssh 連線閒置不斷線設定

在 Connection
Seconds between keppalives 打 5 (每5秒送1個封包)
並在底下有一個 Enable TCP keepalives ..... ,打勾它就好



參考:putty ssh 連線閒置不斷線設定 - NIL - coding or die?

2010-10-09

手機瀏覽器的agents名單大全

手機瀏覽器的agents名單大全
http://en.wikipedia.org/wiki/List_of_user_agents_for_mobile_phones

2010-09-27

ubuntu 10.04 要使用freetds 才能連入 mssql

因為我用 php 5.2.x 版的
所以先重裝一次 http://z-win.blogspot.com/2010/05/ubuntu-php-52x.html
最後加上
sudo apt-get install freetds-bin
sudo aptitude install -t karmic php5-sybase
#改freetds 設定(這是我自已要用的)
sudo vim /etc/freetds/freetds.conf
#在[global]加上
text size = 104857600 #大小能到100b
client charset = UTF-8 #預設utf-8
#改mssql_connect的語言
sudo vim /etc/php5/apache2/php.ini
#加入
mssql.charset = "UTF-8"
sudo /etc/init.d/apache2 restart
#test方法
tsql -H mssql.ip -p 1433 -U username
#輸入password後出現 1> 就成功了
#php



#也可以用 匿名主機 方式連入,但mssql 要sp4以上
sudo vim /etc/freetds/freetds.conf
#加入
[mssql_con1]
host = this.con1.server
port = 1433
tds version = 8.0

#test方法
tsql -S mssql_con1 -U username
#輸入password後出現 1> 就成功了

#php測試
<?php
echo mssql_connect('mssql_con1', 'username', 'password') 
? 'success' 
: 'failure';
?> 
當mssql的資料是 uniqueidentifier 在LINUX上的FREETDS 要用  mssql_guid_string 或 在SQL 用 cast(欄位名 as varchar(36)) 轉換字元, 在windows用com 時會自動轉
uniqueidentifier  的說明:
http://technet.microsoft.com/zh-tw/library/ms190215.aspx
php的其它解法可以看:
http://uk.php.net/manual/en/function.mssql-guid-string.php


如果發生:
Heterogeneous queries require the ANSI_NULLS and ANSI_WARNINGS options to be set for the connection. This ensures consistent query semantics. Enable these options and then reissue your query.
請使用底下語法:

SET ANSI_WARNINGS ON
SET ANSI_NULLS ON

參考:
http://social.msdn.microsoft.com/Forums/en/sqldataaccess/thread/1d501b57-fc58-4fbe-9bec-6c38ad158a62

2010-09-23

2010-08-19

有設open_basedir時 phpMyAdmin上載sql問題

當有設open_basedir時,phpMyAdmin,會自動把檔案移動到 自已底下的tmp 資料夾,所以有二個問題要注意
1.tmp要能讀寫
2.php.ini中的upload_tmp_dir不能跟phpMyAdmin/tmp 是同一個

2010-08-10

[轉]Ubuntu / Debian: sudo 出現 unable to resolve host 錯誤解法

雖然 sudo 還是可以正常執行, 但是警告訊息每次出來還是有點煩人, 而這只是機器在反解上的問題, 所以就直接從 /etc/hosts 設定, 讓 dev(hostname) 可以解回 127.0.0.1 的 IP 即可

轉至:http://plog.longwin.com.tw/my_note-unix/2008/11/20/linux-sudo-unable-to-resolve-host-2008

2010-07-06

web 嘸蝦米 ime

web 嘸蝦米 ime :
=============
1.
網.蝦米 Hyper Liu http://liu.twbbs.org/hliu/

2.
行易版 http://boshiamy.com/resource_1.html

2010-05-24

linux 的ftp 如何加 虛擬目錄


mount --bind /path/to/src_folder /path/to/usrftp_folder/vs_folder
#在 fstab 中 加
/path/to/src_folder    /path/to/usrftp_folder/vs_folder   bind    defaults,bind   0 0 

2010-05-21

如何 為 vmware server 新增管理帳號

編輯 /etc/vmware/hostd/authorization.xml

<ConfigRoot>
   <ACEData id="11">
   <ACEDataEntity>ha-folder-root</ACEDataEntity>
   <ACEDataId>11</ACEDataId>
   <ACEDataIsGroup>false</ACEDataIsGroup>
   <ACEDataPropagate>true</ACEDataPropagate>
   <ACEDataRoleId>-1</ACEDataRoleId>
   <ACEDataUser>root</ACEDataUser>
   </ACEData>
<!-- 以上是舊的 ,新增底下 -->
   <ACEData id="12">
   <ACEDataEntity>ha-folder-root</ACEDataEntity>
   <ACEDataId>12</ACEDataId>
   <ACEDataIsGroup>false</ACEDataIsGroup>
   <ACEDataPropagate>true</ACEDataPropagate>
   <ACEDataRoleId>-1</ACEDataRoleId>
   <ACEDataUser>username</ACEDataUser>
   </ACEData>
<!-- 底下一定要加 從 12 開始,上面多一個帳號,就會加1 ,不加或不正確就會開不了 -->
   <NextAceId>12</NextAceId>
</ConfigRoot>



SAVE後
sudo /etc/init.d//vmware-mgmt restart

VMWARE SERVER 2.X 安裝於 UBUNTU 10.04 X64 SERVER版 筆記

更新因ubuntu 10.04核心不同,用法有變
wget [http://codebin.cotescu.com/vmware/vmware-server-2.0.x-kernel-2.6.3x-install.sh]
tar xvzf raducotescu-vmware-server-linux-2.6.3x-kernel-592e882.tar.gz
cd raducotescu-vmware-server-linux-2.6.3x-kernel-592e882/
mv /path/to/VMware-server-2.0.2-203138.x86_64.tar.gz ./ #移動 已下載vmware-server檔 到同一個資料夾
chmod +x vmware-server-2.0.x-kernel-2.6.3x-install.sh
sudo ./vmware-server-2.0.x-kernel-2.6.3x-install.sh


舊的用法,不適合 ubuntu 10.04

mount windows 資料夾 改用 cifs

sudo mkdir /mnt/win_share;
sudo mount -t cifs -o username=xxx,password=xxx,codepage=cp950,iocharset=utf8 //172.16.39.23/share /mnt/win_share;

如何查看:

smbclient -L //192.168.1.147 -U administrator
smbclient //IP或者NETBIOS名稱/共享資源名 [-U 用戶名]

2010-05-17

ubuntu 如何安裝 php 5.2.x 的版本

改用deb來安裝
cd /tmp mkdir php52 cd php52 wget -r -np -nH -nd -R index.html http://archives.dotdeb.org/dists/lenny/php5/5.2.17/binary-amd64/ wget -r -np -nH -nd -R index.html http://archives.dotdeb.org/dists/lenny/php5-pecl/5.2.17/binary-amd64/ wget http://archive.debian.org/debian/pool/main/m/mysql-dfsg-5.0/libmysqlclient15off_5.0.51a-24+lenny5_amd64.deb wget http://archive.debian.org/debian/pool/main/libt/libtool/libltdl3_1.5.22-4+etch1_amd64.deb curl -k https://gist.github.com/nvogel/2971772/raw/4e82f220f61a7a534d94a7114e180d3eb131747b/etc-apt-preferences.d-php5 > /etc/apt/preferences.d/php5 apt-get update
#先安裝
apt-get install curl apache2-mpm-prefork 
#相依套件 apt-get install libdb4.6 wget http://ftp.br.debian.org/debian/pool/main/k/krb5/libkrb53_1.8.3+dfsg-4squeeze6_all.deb dpkg -i libkrb53_1.8.3+dfsg-4squeeze6_all.deb apt-get install libreadline5 wget ftp://ftp.uwsg.indiana.edu/linux/ubuntu/pool/main/libt/libtool/libltdl3_1.5.26-1ubuntu1_amd64.deb dpkg -i libapache2-mod-php5_5.2.17-0.dotdeb.0_amd64.deb \ php5-mysql_5.2.17-0.dotdeb.0_amd64.deb \ php5-cli_5.2.17-0.dotdeb.0_amd64.deb \ php5_5.2.17-0.dotdeb.0_all.deb \ php5-curl_5.2.17-0.dotdeb.0_amd64.deb \ php5-common_5.2.17-0.dotdeb.0_amd64.deb \ libmysqlclient15off_5.0.51a-24+lenny5_amd64.deb # pear #dpkg -i php-pear_5.2.17-0.dotdeb.0_all.deb # suhosin #dpkg -i php5-suhosin_5.2.17-0.dotdeb.0_amd64.deb # cgi # dpkg -i php5-cgi_5.2.17-0.dotdeb.0_amd64.deb # ming # wget http://archive.debian.org/debian/pool/main/m/ming/libming0_0.3.0-14_amd64.deb # dpkg -i libming0_0.3.0-14_amd64.deb # dpkg -i php5-ming_5.2.17-0.dotdeb.0_amd64.deb # imap # apt-get install mlock # wget http://archive.debian.org/debian/pool/main/u/uw-imap/libc-client2007b_2007b~dfsg-4+lenny3_amd64.deb # dpkg -i "libc-client2007b_2007b~dfsg-4+lenny3_amd64.deb" # dpkg -i php5-imap_5.2.17-0.dotdeb.0_amd64.deb # imagick # wget http://archive.debian.org/debian-archive/debian/pool/main/g/graphviz/libgraphviz4_2.20.2-3_amd64.deb # wget http://archive.debian.org/debian-archive/debian/pool/main/i/imagemagick/libmagick10_6.3.7.9.dfsg2-1~lenny4_amd64.deb # dpkg -i libgraphviz4_2.20.2-3_amd64.deb libmagick10_6.3.7.9.dfsg2-1~lenny4_amd64.deb # dpkg -i "php5-imagick_5.2.17-0.dotdeb.0_amd64.deb" # ldap # dpkg -i php5-ldap_5.2.17-0.dotdeb.0_amd64.deb # snmp # dpkg -i php5-snmp_5.2.17-0.dotdeb.0_amd64.deb # spplus # dpkg -i php5-spplus_5.2.17-0.dotdeb.0_amd64.deb # xcache # dpkg -i php5-xcache_5.2.17-0.dotdeb.0_amd64.deb # mcrypt # apt-get install libmcrypt4 # dpkg -i libltdl3_1.5.26-1ubuntu1_amd64.deb # dpkg -i php5-mcrypt_5.2.17-0.dotdeb.0_amd64.deb # apc # dpkg -i php5-apc_5.2.17-0.dotdeb.0_amd64.deb # gd # apt-get install libt1-5 # dpkg -i php5-gd_5.2.17-0.dotdeb.0_amd64.deb # memcache # dpkg -i php5-memcache_5.2.17-0.dotdeb.0_amd64.deb # mhash # apt-get install libmhash2 # dpkg -i php5-mhash_5.2.17-0.dotdeb.0_amd64.deb # xsl # dpkg -i php5-xsl_5.2.17-0.dotdeb.0_amd64.deb apt-get -f install
參考來源:https://gist.github.com/nvogel/2971772#file-install-php5-2-squeeze-sh
底下是以前的舊資料,不一定能用

# remove all php packge
sudo aptitude purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
# use karmiс for php pakage
# pin-params: a (archive), c (components), v (version), o (origin) and l (label).
echo -e "Package: php5\nPin: release a=karmic\nPin-Priority: 991\n" | sudo tee /etc/apt/preferences.d/php > /dev/null
apt-cache search php5-|grep php5-|awk '{print "Package:", $1,"\nPin: release a=karmic\nPin-Priority: 991\n"}'|sudo tee -a /etc/apt/preferences.d/php > /dev/null
apt-cache search -n libapache2-mod-php5 |awk '{print "Package:", $1,"\nPin: release a=karmic\nPin-Priority: 991\n"}'| sudo tee -a /etc/apt/preferences.d/php > /dev/null
echo -e "Package: php-pear\nPin: release a=karmic\nPin-Priority: 991\n" | sudo tee -a /etc/apt/preferences.d/php > /dev/null
# add karmic to source list
grep 'main restricted' /etc/apt/sources.list|grep -v "#"| sed s/lucid/karmic/g | sudo tee /etc/apt/sources.list.d/karmic.list > /dev/null
# update package database (use apt-get if aptitude crash)
sudo apt-get update
# install php
sudo aptitude install -t karmic php5-cli php5-cgi
# or (and) sudo apt-get install -t karmic libapache2-mod-php5
sudo aptitude hold `dpkg -l | grep php5| awk '{print $2}' |tr "\n" " "`
#done
#底下是我自行加裝

sudo aptitude install -t karmic libapache2-mod-php5
sudo aptitude install -t karmic php5-mysql
sudo aptitude install -t karmic php5-gb
sudo aptitude install -t karmic php5-curl
sudo aptitude install -t karmic php5-ffmpeg
sudo aptitude install -t karmic php5-json
#sudo aptitude install -t karmic php5-mcrypt
sudo aptitude install -t karmic php5-mysqli
sudo aptitude install -t karmic php5-sqlite
sudo aptitude install -t karmic php5-ldap
sudo aptitude install -t karmic php5-xmlrpc
sudo aptitude install -t karmic php5-xsl
sudo aptitude install -t karmic php5-mhash
有更新一些設定
/etc/apt/sources.d/karmic.list
deb http://us.archive.ubuntu.com/ubuntu/ karmic main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ karmic main restricted

deb http://us.archive.ubuntu.com/ubuntu/ karmic-updates main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ karmic-updates main restricted

deb http://us.archive.ubuntu.com/ubuntu/ karmic universe
deb-src http://us.archive.ubuntu.com/ubuntu/ karmic universe
deb http://us.archive.ubuntu.com/ubuntu/ karmic-updates universe
deb-src http://us.archive.ubuntu.com/ubuntu/ karmic-updates universe

deb http://us.archive.ubuntu.com/ubuntu/ karmic multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ karmic multiverse
deb http://us.archive.ubuntu.com/ubuntu/ karmic-updates multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ karmic-updates multiverse

deb http://security.ubuntu.com/ubuntu karmic-security main restricted
deb-src http://security.ubuntu.com/ubuntu karmic-security main restricted
deb http://security.ubuntu.com/ubuntu karmic-security universe
deb-src http://security.ubuntu.com/ubuntu karmic-security universe
deb http://security.ubuntu.com/ubuntu karmic-security multiverse
deb-src http://security.ubuntu.com/ubuntu karmic-security multiverse
/etc/apt/preferences.d/php
Package: php5
Pin: release a=karmic
Pin-Priority: 991

Package: php5-adodb
Pin: release a=karmic
Pin-Priority: 991

Package: php5-auth-pam
Pin: release a=karmic
Pin-Priority: 991

Package: php5-exactimage
Pin: release a=karmic
Pin-Priority: 991

Package: php5-ffmpeg
Pin: release a=karmic
Pin-Priority: 991

Package: php5-geoip
Pin: release a=karmic
Pin-Priority: 991

Package: php5-gpib
Pin: release a=karmic
Pin-Priority: 991

Package: php5-idn
Pin: release a=karmic
Pin-Priority: 991

Package: php5-imagick
Pin: release a=karmic
Pin-Priority: 991

Package: php5-imap
Pin: release a=karmic
Pin-Priority: 991

Package: php5-interbase
Pin: release a=karmic
Pin-Priority: 991

Package: php5-lasso
Pin: release a=karmic
Pin-Priority: 991

Package: php5-librdf
Pin: release a=karmic
Pin-Priority: 991

Package: php5-mapscript
Pin: release a=karmic
Pin-Priority: 991

Package: php5-mcrypt
Pin: release a=karmic
Pin-Priority: 991
Package: php5-memcache
Pin: release a=karmic
Pin-Priority: 991

Package: php5-memcached
Pin: release a=karmic
Pin-Priority: 991

Package: php5-ming
Pin: release a=karmic
Pin-Priority: 991

Package: php5-ps
Pin: release a=karmic
Pin-Priority: 991

Package: php5-radius
Pin: release a=karmic
Pin-Priority: 991

Package: php5-remctl
Pin: release a=karmic
Pin-Priority: 991

Package: php5-sasl
Pin: release a=karmic
Pin-Priority: 991

Package: php5-sqlrelay
Pin: release a=karmic
Pin-Priority: 991

Package: php5-suhosin
Pin: release a=karmic
Pin-Priority: 991

Package: php5-svn
Pin: release a=karmic
Pin-Priority: 991

Package: php5-symfony1.0
Pin: release a=karmic
Pin-Priority: 991

Package: php5-uuid
Pin: release a=karmic
Pin-Priority: 991

Package: php5-xapian
Pin: release a=karmic
Pin-Priority: 991

Package: php5-xcache
Pin: release a=karmic
Pin-Priority: 991

Package: php5-xdebug
Pin: release a=karmic
Pin-Priority: 991

Package: php5-cgi
Pin: release a=karmic
Pin-Priority: 991

Package: php5-cli
Pin: release a=karmic
Pin-Priority: 991

Package: php5-common
Pin: release a=karmic
Pin-Priority: 991

Package: php5-curl
Pin: release a=karmic
Pin-Priority: 991

Package: php5-dbg
Pin: release a=karmic
Pin-Priority: 991

Package: php5-dev
Pin: release a=karmic
Pin-Priority: 991

Package: php5-gd
Pin: release a=karmic
Pin-Priority: 991

Package: php5-gmp
Pin: release a=karmic
Pin-Priority: 991

Package: php5-ldap
Pin: release a=karmic
Pin-Priority: 991

Package: php5-mysql
Pin: release a=karmic
Pin-Priority: 991

Package: php5-odbc
Pin: release a=karmic
Pin-Priority: 991

Package: php5-pgsql
Pin: release a=karmic
Pin-Priority: 991

Package: php5-pspell
Pin: release a=karmic
Pin-Priority: 991

Package: php5-recode
Pin: release a=karmic
Pin-Priority: 991

Package: php5-snmp
Pin: release a=karmic
Pin-Priority: 991

Package: php5-sqlite
Pin: release a=karmic
Pin-Priority: 991

Package: php5-sybase
Pin: release a=karmic
Pin-Priority: 991

Package: php5-tidy
Pin: release a=karmic
Pin-Priority: 991

Package: php5-xmlrpc
Pin: release a=karmic
Pin-Priority: 991

Package: php5-xsl
Pin: release a=karmic
Pin-Priority: 991

Package: php5-enchant
Pin: release a=karmic
Pin-Priority: 991

Package: php5-intl
Pin: release a=karmic
Pin-Priority: 991

Package: libapache2-mod-php5
Pin: release a=karmic
Pin-Priority: 991

Package: libapache2-mod-php5filter
Pin: release a=karmic
Pin-Priority: 991

Package: php-pear
Pin: release a=karmic
Pin-Priority: 991

參考來源:http://mrkandy.wordpress.com/2010/04/16/install-php-5-2-x-in-ubuntu-10-04-lucid/

2010-05-03

ubuntu 因解析度過大 舊螢幕 變黑的問題

sudo vim /etc/X11/xorg.conf
Section "Screen"
Identifier "amdcccle-Screen[1]-0"
Device "amdcccle-Device[1]-0"
Monitor "amdcccle-Monitor[1]-0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768" # <---- 這行原本沒有,是我新增加的。
EndSubSection
EndSection


改好就 重開機 或 "sudo /etc/init.d/gdm restart"

ps:若沒 xorg.conf 時 ,使用 nvidia-xconfig ,若 nvidia-xconfig 沒有,就要安裝 "sudo apt-get install nvidia-glx-xxx" xxx是數字 如:180 , 185

Console 解析度調整
如果是 文字模式 (TTY) 的解析度
sudo vim /etc/default/grub 
找到
GRUB_GFXMODE=640x480 # 可改800x600
取消註解
儲存
sudo update-grub


參考來源:http://superuser.com/questions/178641/ubuntu-10-04-console-resolution

2010-05-02

CentOS 5.3 x64 更新PHP到5.3版的方法

sudo rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-3.noarch.rpm
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/5/remi/x86_64/remi-release-5-7.el5.remi.noarch.rpm
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm


sudo yum --enablerepo=remi update mysql php
sudo yum --enablerepo=remi install php-mbstring


參考:http://stringr.blogspot.com/2009/10/centos-53-x64-php53.html

centos 安裝postfix for mysql的方法

先就是要先移除舊版的 postfix , 執行 sudo yum remove postfix
修改 /etc/yum.repos.d/CentOS-Base.repo 這個設定檔 , 其中有三個區段 [base] [update] [centosplus],如下粗體字的部份
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
exclude=postfix-*
#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
exclude=postfix-*
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
includepkgs=postfix-*

安裝 centosplus 版的 postfix
sudo yum --enablerepo=centosplus install postfix


說明一下粗體的部分 , [base] [update] 中的 exclude 指令就是要讓 yum 去忽略這兩個 repo 的 postfix 套件 ,意思是若以後執行 install 或 upgrade 指令的時候都不會去找 [base] 或 [update] 區段了, 由於 centosplus 裡面包的 postfix 版本編號較舊 , 所以這樣做的用意是為了避免我們安裝好 centosplus 的版本之後 , 不會在更新時去安裝到沒有支援 mysql 的 postfix

參考來源:http://www.pigo.idv.tw/archives/323
ps:因參考來源的 install 指令有誤,所以我有改寫

2010-04-19

VMWARE SERVER 2.X 安裝於 UBUNTU 9.10 X64 SERVER版 筆記

因為下載 VMWARE SERVER 官方 X64 版後,使用vmware-install.pl 會發生錯誤,
在網路上找到解決方法 是下載 某高手 寫的 安裝 SH 檔
http://codebin.cotescu.com/vmware/vmware-server-2.0.x-kernel-2.6.3x-install.sh
將 vmware-server-2.0.x-kernel-2.6.3x-install.sh 移動 vmware-server-distrib/ 下
並埶行 chmod +x
在使用此 sh 安裝,終於成功了!!! ^^

原站說明:https://help.ubuntu.com/community/VMware/Server

2010-01-21

[CSS Hack]解決IE6、IE7、IE8、Firefox的瀏覽器相容性問題! | 香腸炒魷魚

區別IE6、IE7、IE8、Firefox
【辨識符號】:「\9」、「*」、「_」

【範例練習】:

#tip {

background:blue; /*Firefox 背景變藍色*/

background:red \9; /*IE8 背景變紅色*/

*background:black; /*IE7 背景變黑色*/

_background:orange; /*IE6 背景變橘色*/

}


【說明】:因為IE系列瀏覽器可讀「\9」,而IE6和IE7可讀「*」(米字號),另外IE6可辨識「_」(底線),因此可以依照順序寫下來,就會讓瀏覽器正確的讀取到自己看得懂得CSS語法,所以就可以有效區分IE各版本和非IE瀏覽器(像是Firefox、Opera、Google Chrome、Safari等)。


參考:[CSS Hack]解決IE6、IE7、IE8、Firefox的瀏覽器相容性問題! | 香腸炒魷魚

2010-01-15

[SEO]影響Google等搜尋引擎排名的因素大公開 @ PCuSER 電腦人 :: 痞客邦 PIXNET ::

Google有超過200個排名因素,百度也有超過100多。這麼多的因素中,有許多因素是百度和Google共用的,有些各有強調,但是哪些是經常性的、關鍵性的呢?以下是結合作者和尚奇的SEO專家們從邊做邊學中推測總結出來的一些要點。其中,有些衡量標準是Google的註冊專利。

有利排名的站內優化因素

(切記:如果這些有利的因素被濫用就會立刻轉變成破壞性的因素!)

關鍵字嵌入URL中。第一個字最重要,第二個其次,以此類推。
關鍵字在網功能變數名稱中。英文網站比較注重。
關鍵字在Title Tag中。關鍵字儘量朝最前,標籤以20個漢字或是60個英語字母為最多。
關鍵字在Description Tag網頁摘要標籤中。體現主題,以100個漢字或者200個英文字母為最多。Google不太依賴這個標籤,但是常常去用它。
關鍵字在Keyword Tag關鍵字標籤中。表現主題,不要多於10個字。這10個字必須出現在網頁的內文中,否則可能遭受「無關性」懲罰。Google已經不在看這個標籤,其他的搜尋引擎,比較明顯的是雅虎。
關鍵字在內文中的密度。5%~20%的比例(關鍵字總數/全文詞總數)比較合適。
單個關鍵字在內文中的密度。1%~6%的比例(每個關鍵字出現次數/全文詞總數)比較合適。
關鍵字在H1、H2、H3標籤中,依照高低順序合理排列。
關鍵字的字體大小。 strong 與 bold 一樣斜體字也是表示強調。邁特‧卡茨在2006年7月指出這兩點。
關鍵字相鄰度。兩個或者以上的關鍵字挨得比較近最好。
關鍵字顯著度。關鍵字出現在頁首、粗體、大型字體比較顯著。
關鍵字在圖片替換標籤中。注意:不要過分添加,防止成為垃圾資訊。
關鍵字在連結源頭文字中。注意和連結對方的網頁主題銜接。
內部連結使用關鍵字。依靠關鍵字來串連網頁。
內部連結不要有中斷點。檢查各個連結都有效。
網站深度儘量小於4層。製造效率高的樹狀網站結構。
匯出連結到優秀網站。這個是Google專利標準。注意:不要連結到「連結工廠」那樣的網站,否則殃及己身。
匯出連結使用關鍵字並與網頁話題相關。這個是Google專利標準。連結語句必須有描述作用。
匯出連結穩定性、有效。這個是Google專利標準。
匯出連結少於100個。Google是這麼說的,但是可以多出2~3倍。
網功能變數名稱尾碼。.gov、.edu、.info在傳統上被認可程度最高,但是隨著垃圾網站的氾濫,這個也變得意義不大。
網頁大小。儘量爭取限制在100KB以內(根據實體情況),最好的是<40的網頁。 ‧URL中的連接子「-」。英文網頁多個詞之間以「-」組成檔案名較好,如「table-tennis」。但是不要用「-」超過4次,以免被疑為作弊。
網頁新鮮感。這個是Google專利標準。注意網頁的更新。
網站資訊更新量。新舊網頁的比例。
連結的新鮮感。這個是Google專利標準。新連結來自可信度高的網站,這個新鮮感就是好的。 ‧網站更新頻率。更新頻繁才能招致Google爬蟲常來訪問而更新網頁快照。

原文來源:http://pcuser.pixnet.net/blog/post/26293124