<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6047301590810575251</id><updated>2012-01-12T20:01:40.110-08:00</updated><category term='yum behind proxy'/><category term='serial'/><category term='facebook'/><category term='LAMP'/><category term='download'/><category term='xubuntu'/><category term='Amibroker'/><category term='ym'/><category term='curl php'/><category term='samba'/><category term='TAR'/><category term='VPS 64MB'/><category term='network'/><category term='ssh'/><category term='cpio'/><category term='oleh oleh Surabaya'/><category term='wine'/><category term='ubuntu'/><category term='vnc'/><category term='backup restore linux'/><category term='squirrelmail'/><category term='oracle'/><title type='text'>Note 88</title><subtitle type='html'>Just write a simple note</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://note88.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>44</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-6543221093264960307</id><published>2012-01-12T20:01:00.001-08:00</published><updated>2012-01-12T20:01:40.125-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='curl php'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><title type='text'>update Facebook status using php</title><content type='html'>// Thanks to Alste (curl stuff inspired by nexdot.net/blog)&lt;br /&gt;&lt;br /&gt;function setFacebookStatus($status, $login_email, $login_pass, $debug=false) {&lt;br /&gt;&amp;nbsp;//CURL stuff&lt;br /&gt;&amp;nbsp;//This executes the login procedure&lt;br /&gt;&amp;nbsp;$ch = curl_init();&lt;br /&gt;&amp;nbsp;curl_setopt($ch, CURLOPT_URL, 'https://login.facebook.com/login.php?m&amp;amp;next=http%3A%2F%2Fm.facebook.com%2Fhome.php');&lt;br /&gt;&amp;nbsp;curl_setopt($ch, CURLOPT_POSTFIELDS, 'email=' . urlencode($login_email) . '&amp;amp;pass=' . urlencode($login_pass) . '&amp;amp;login=' . urlencode("Log in"));&lt;br /&gt;&amp;nbsp;curl_setopt($ch, CURLOPT_POST, 1);&lt;br /&gt;&amp;nbsp;curl_setopt($ch, CURLOPT_HEADER, 0);&lt;br /&gt;&amp;nbsp;//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);&lt;br /&gt;&amp;nbsp;curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);&lt;br /&gt;&amp;nbsp;curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");&lt;br /&gt;&amp;nbsp;curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");&lt;br /&gt;&amp;nbsp;curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;&amp;nbsp;//make sure you put a popular web browser here (signature for your web browser can be retrieved with 'echo $_SERVER['HTTP_USER_AGENT'];'&lt;br /&gt;&amp;nbsp;curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.12) Gecko/2009070611 Firefox/3.0.12");&lt;br /&gt;&amp;nbsp;curl_exec($ch);&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;//This executes the status update&lt;br /&gt;&amp;nbsp;curl_setopt($ch, CURLOPT_POST, 0);&lt;br /&gt;&amp;nbsp;curl_setopt($ch, CURLOPT_URL, 'http://m.facebook.com/home.php');&lt;br /&gt;&amp;nbsp;$page = curl_exec($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;//echo htmlspecialchars($page);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;curl_setopt($ch, CURLOPT_POST, 1);&lt;br /&gt;&amp;nbsp;//this gets the post_form_id value&lt;br /&gt;&amp;nbsp;preg_match("/input type=\"hidden\" name=\"post_form_id\" value=\"(.*?)\"/", $page, $form_id);&lt;br /&gt;&amp;nbsp;preg_match("/input type=\"hidden\" name=\"fb_dtsg\" value=\"(.*?)\"/", $page, $fb_dtsg);&lt;br /&gt;&amp;nbsp;preg_match("/input type=\"hidden\" name=\"charset_test\" value=\"(.*?)\"/", $page, $charset_test);&lt;br /&gt;&amp;nbsp;preg_match("/input type=\"submit\" class=\"button\" name=\"update\" value=\"(.*?)\"/", $page, $update);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;//we'll also need the exact name of the form processor page&lt;br /&gt;&amp;nbsp;//preg_match("/form action=\"(.*?)\"/", $page, $form_num);&lt;br /&gt;&amp;nbsp;//sometimes doesn't work so we search the correct form action to use&lt;br /&gt;&amp;nbsp;//since there could be more than one form in the page.&lt;br /&gt;&amp;nbsp;preg_match_all("#&lt;form([^&gt;]*)&amp;gt;(.*)#Ui", $page, $form_ar);&lt;br /&gt;&amp;nbsp;for($i=0;$i&lt;count($form_ar[0]);$i++)&gt;&lt;br /&gt;&amp;nbsp; if(stristr($form_ar[0][$i],"post_form_id")) preg_match("/form action=\"(.*?)\"/", $page, $form_num);&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;$strpost = 'post_form_id=' . $form_id[1] . '&amp;amp;status=' . urlencode($status) . '&amp;amp;update=' . urlencode($update[1]) . '&amp;amp;charset_test=' . urlencode($charset_test[1]) . '&amp;amp;fb_dtsg=' . urlencode($fb_dtsg[1]);&lt;br /&gt;&amp;nbsp;if($debug) {&lt;br /&gt;&amp;nbsp; echo "Parameters sent: ".$strpost."&lt;hr /&gt;";&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;curl_setopt($ch, CURLOPT_POSTFIELDS, $strpost );&lt;br /&gt;&lt;br /&gt;&amp;nbsp;//set url to form processor page&lt;br /&gt;&amp;nbsp;curl_setopt($ch, CURLOPT_URL, 'http://m.facebook.com' . $form_num[1]);&lt;br /&gt;&amp;nbsp;curl_exec($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;if ($debug) {&lt;br /&gt;&amp;nbsp; //show information regarding the request&lt;br /&gt;&amp;nbsp; print_r(curl_getinfo($ch));&lt;br /&gt;&amp;nbsp; echo curl_errno($ch) . '-' . curl_error($ch);&lt;br /&gt;&amp;nbsp; echo "&lt;br /&gt;&lt;br /&gt;Your Facebook status seems to have been updated.";&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;//close the connection&lt;br /&gt;&amp;nbsp;curl_close($ch);&lt;br /&gt;}&lt;br /&gt;&lt;/count($form_ar[0]);$i++)&gt;&lt;/form([^&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-6543221093264960307?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/6543221093264960307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2012/01/update-facebook-status-using-php.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/6543221093264960307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/6543221093264960307'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2012/01/update-facebook-status-using-php.html' title='update Facebook status using php'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-8807791453819562872</id><published>2012-01-12T19:59:00.000-08:00</published><updated>2012-01-12T19:59:54.174-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='curl php'/><category scheme='http://www.blogger.com/atom/ns#' term='ym'/><title type='text'>Send Message to Yahoo! Messenger from PHP</title><content type='html'>&amp;nbsp; // last update: July 20, 2010&lt;br /&gt;&lt;br /&gt;&amp;nbsp; // get home page of yahoo mobile&lt;br /&gt;&amp;nbsp; $curl = curl_init();&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_URL, "http://us.m.yahoo.com/w/bp-messenger");&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_ENCODING, "");&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14,52; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729)");&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_COOKIEJAR, getcwd() . '/cookies_yahoo_messenger.cookie');&lt;br /&gt;&amp;nbsp; $curlData = curl_exec($curl);&lt;br /&gt;&amp;nbsp; curl_close($curl);&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; // debug: show the returned html&lt;br /&gt;&amp;nbsp; // echo $curlData; exit;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; // get post url for login to yahoo&lt;br /&gt;&amp;nbsp; $xml = $curlData;&lt;br /&gt;&amp;nbsp; $xmlDoc = new DOMDocument();&lt;br /&gt;&amp;nbsp; @$xmlDoc-&amp;gt;loadHTML($xml);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; $urlPostLoginToYahoo = $xmlDoc-&amp;gt;getElementsByTagName("form")-&amp;gt;item(0)-&amp;gt;getAttribute("action");&lt;br /&gt;&lt;br /&gt;&amp;nbsp; foreach ($xmlDoc-&amp;gt;getElementsByTagName("input") as $input) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($input-&amp;gt;getAttribute("name") == "_done") {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_done = $input-&amp;gt;getAttribute("value");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($input-&amp;gt;getAttribute("name") == "_ts") {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_ts = $input-&amp;gt;getAttribute("value");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($input-&amp;gt;getAttribute("name") == "_crumb") {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_crumb = $input-&amp;gt;getAttribute("value");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; // do login to yahoo messenger (mobile version)&lt;br /&gt;&amp;nbsp; $yahoo_id = "your_yahoo_id";&lt;br /&gt;&amp;nbsp; $yahoo_id_password = "your_yahoo_id_password";&lt;br /&gt;&lt;br /&gt;&amp;nbsp; $curl = curl_init();&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_URL, $urlPostLoginToYahoo);&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_POST, 1);&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_POSTFIELDS, "_authurl=auth&amp;amp;_done=" . $_done . "&amp;amp;_sig=&amp;amp;_src=&amp;amp;_ts=" . $_ts . "&amp;amp;_crumb=" . $_crumb . "&amp;amp;_pc=&amp;amp;_send_userhash=0&amp;amp;_partner_ts=&amp;amp;id=" . $yahoo_id . "&amp;amp;password=" . $yahoo_id_password . "&amp;amp;__submit=Sign+in");&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_ENCODING, "");&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14,52; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729)");&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_COOKIEFILE, getcwd() . '/cookies_yahoo_messenger.cookie');&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_COOKIEJAR, getcwd() . '/cookies_yahoo_messenger.cookie');&lt;br /&gt;&amp;nbsp; $curlData = curl_exec($curl);&lt;br /&gt;&amp;nbsp; curl_close($curl);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; // get home page url for sending message&lt;br /&gt;&amp;nbsp; $urlSendMessage = $curlData;&lt;br /&gt;&amp;nbsp; $urlSendMessage = substr($urlSendMessage, strpos($urlSendMessage, "&lt;a +="" 9);="" href="http://www.blogger.com/%5C%22/w/bp-messenger/sendmessage%22%29"&gt;&lt;br /&gt;&amp;nbsp; $urlSendMessage = substr($urlSendMessage, 0, strpos($urlSendMessage, "\""));&lt;br /&gt;&amp;nbsp; $urlSendMessage = str_replace("&amp;amp;", "&amp;amp;", $urlSendMessage);&lt;br /&gt;&amp;nbsp; $urlSendMessage = "http://us.m.yahoo.com" . $urlSendMessage;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; // get home page of mobile messenger to send message&lt;br /&gt;&amp;nbsp; $curl = curl_init();&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_URL, $urlSendMessage);&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_ENCODING, "");&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14,52; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729)");&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_COOKIEFILE, getcwd() . '/cookies_yahoo_messenger.cookie');&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_COOKIEJAR, getcwd() . '/cookies_yahoo_messenger.cookie');&lt;br /&gt;&amp;nbsp; $curlData = curl_exec($curl);&lt;br /&gt;&amp;nbsp; curl_close($curl);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; // debug: show the returned html&lt;br /&gt;&amp;nbsp; // echo $curlData; exit;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; $xml = $curlData;&lt;br /&gt;&amp;nbsp; $xmlDoc = new DOMDocument();&lt;br /&gt;&amp;nbsp; @$xmlDoc-&amp;gt;loadHTML($xml);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; $urlPostSendMessage = $xmlDoc-&amp;gt;getElementsByTagName("form")-&amp;gt;item(0)-&amp;gt;getAttribute("action");&lt;br /&gt;&amp;nbsp; $urlPostSendMessage = "http://us.m.yahoo.com" . $urlPostSendMessage;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; // do send message to yahoo messenger&lt;br /&gt;&amp;nbsp; $yahoo_username = "sonyarianto"; // this is Yahoo! ID target&lt;br /&gt;&amp;nbsp; $yahoo_message = "This is my message to you!"; // this is Yahoo! messenger message to the target&lt;br /&gt;&lt;br /&gt;&amp;nbsp; $curl = curl_init();&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_URL, $urlPostSendMessage);&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_POST, 1);&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_POSTFIELDS, "id=" . $yahoo_username . "&amp;amp;message=" . $yahoo_message . "&amp;amp;__submit=Send");&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_ENCODING, "");&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14,52; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729)");&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_COOKIEFILE, getcwd() . '/cookies_yahoo_messenger.cookie');&lt;br /&gt;&amp;nbsp; curl_setopt($curl, CURLOPT_COOKIEJAR, getcwd() . '/cookies_yahoo_messenger.cookie');&lt;br /&gt;&amp;nbsp; $curlData = curl_exec($curl);&lt;br /&gt;&amp;nbsp; curl_close($curl);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; echo "your message already sent to Yahoo! ID: " . $yahoo_username;&lt;br /&gt;?&amp;gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-8807791453819562872?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/8807791453819562872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2012/01/send-message-to-yahoo-messenger-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/8807791453819562872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/8807791453819562872'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2012/01/send-message-to-yahoo-messenger-from.html' title='Send Message to Yahoo! Messenger from PHP'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-389411710166470696</id><published>2011-10-21T18:33:00.000-07:00</published><updated>2011-11-14T21:28:06.803-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Install Oracle 10.2 on Centos 4</title><content type='html'>1.Install Centos 4 -&amp;gt; everything&lt;br /&gt;2.Login as root on Centos&lt;br /&gt;3.extract oracle db.zip ke /tmp&lt;br /&gt;&lt;br /&gt;yum update -y&lt;br /&gt;terus tunggu lama sekali utk update yum&lt;br /&gt;&lt;br /&gt;sysctl -a | grep shm&lt;br /&gt;&lt;br /&gt;utk ubah parameter:&lt;br /&gt;#vi /etc/sysctl.conf&lt;br /&gt;tambahkan:&lt;br /&gt;kernel.shmmax=2147483648&lt;br /&gt;kernel.sem=250 32000 100 128&lt;br /&gt;fs.file-max=65536&lt;br /&gt;net.ipv4.ip_local_port_range=1024 65000&lt;br /&gt;&lt;br /&gt;net.core.rmem_default = 262144 &lt;br /&gt;net.core.rmem_max = 262144 &lt;br /&gt;net.core.wmem_default = 262144 &lt;br /&gt;net.core.wmem_max = 262144 &lt;br /&gt;&lt;br /&gt;groupadd dba # group of users to be granted SYSDBA system privilege&lt;br /&gt;groupadd oinstall # group owner of Oracle files&lt;br /&gt;useradd -c "Oracle software owner" -g oinstall -G dba oracle&lt;br /&gt;passwd oracle&lt;br /&gt;&lt;br /&gt;mkdir -p /u01/app/oracle&lt;br /&gt;chown oracle.oinstall /u01/app/oracle&lt;br /&gt;&lt;br /&gt;su - oracle&lt;br /&gt;cat &amp;gt;&amp;gt; ~oracle/.bash_profile &amp;lt;&amp;lt; EOF export ORACLE_BASE=/u01/app/oracle export ORACLE_SID=orcl EOF  &lt;b&gt;RESTART dan login dg user = oracle&lt;br /&gt;&lt;br /&gt;PENTING !! = selalu RESTART dan login pertama dg oracle, bukan login dg root terus di terminal melakukan su oracle !&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;dg terminal, masuk ke folder /tmp/database, lakukan:&lt;br /&gt;./runInstaller&lt;br /&gt;&lt;br /&gt;NEXT NEXT NEXT&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-389411710166470696?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/389411710166470696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/10/install-oracle-102-on-centos-4.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/389411710166470696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/389411710166470696'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/10/install-oracle-102-on-centos-4.html' title='Install Oracle 10.2 on Centos 4'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-2812630894081381604</id><published>2011-10-18T21:50:00.000-07:00</published><updated>2011-10-18T22:07:51.535-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VPS 64MB'/><title type='text'>XEN VPS 64MB</title><content type='html'>&lt;h3&gt;Setting Up the VPS&lt;/h3&gt;After my order has been provisioned, I re-image the server with a Debian 5 “Lenny” image. I normally pick Debian or Ubuntu because &lt;code&gt;apt-get&lt;/code&gt; uses much less memory than RedHat/Fedora’s equivalent, and it’s also my personal preference. I named my new VPS “endor” as I usually just name my boxes after &lt;a href="http://starwars.wikia.com/wiki/List_of_systems"&gt;Star Wars systems&lt;/a&gt;. Re-imaging a VPS is pretty fast — 2 minutes later I have my root password sent to my email address so I can ssh in to set up the new system.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;$ &lt;b&gt;ssh root@endor&lt;/b&gt;&lt;br /&gt;root@endor's password:&lt;br /&gt;Linux 66671 2.6.18-53.1.13.el5xen #1 SMP Tue Feb 12 14:04:18 EST 2008 i686&lt;br /&gt;&lt;br /&gt;endor:~# &lt;b&gt;free&lt;/b&gt;&lt;br /&gt;             total       used       free     shared    buffers     cached&lt;br /&gt;Mem:         65704      64008       1696          0       5616      44100&lt;br /&gt;-/+ buffers/cache:      14292      51412&lt;br /&gt;Swap:       131064          0     131064&lt;br /&gt;endor:~# &lt;b&gt;cat /proc/cpuinfo&lt;/b&gt;&lt;br /&gt;processor       : 0&lt;br /&gt;vendor_id       : GenuineIntel&lt;br /&gt;cpu family      : 6&lt;br /&gt;model           : 15&lt;br /&gt;model name      : Intel(R) Core(TM)2 Duo CPU     E4500  @ 2.20GHz&lt;br /&gt;stepping        : 13&lt;br /&gt;cpu MHz         : 2194.496&lt;br /&gt;cache size      : 2048 KB&lt;br /&gt;fdiv_bug        : no&lt;br /&gt;hlt_bug         : no&lt;br /&gt;f00f_bug        : no&lt;br /&gt;coma_bug        : no&lt;br /&gt;fpu             : yes&lt;br /&gt;fpu_exception   : yes&lt;br /&gt;cpuid level     : 10&lt;br /&gt;wp              : yes&lt;br /&gt;flags           : fpu tsc msr pae mce cx8 apic mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc up pni monitor ds_cpl est tm2 cx16 xtpr lahf_lm&lt;br /&gt;bogomips        : 5558.81&lt;/pre&gt;&lt;pre class="code"&gt;&lt;/pre&gt;&lt;i&gt;Plenty&lt;/i&gt; of free memory and a single core of C2Duo E4500 — although not a high-end Xeon CPU, but should be more than sufficient to do what we need it to do. The next thing I want to do is to make sure every package is up to date.&lt;br /&gt;&lt;br /&gt;endor:~# &lt;b&gt;apt-get update &amp;amp;&amp;amp; apt-get upgrade&lt;/b&gt; Get:1 http://debrepo.mirror.vpslink.com lenny Release.gpg [386B] Get:2 http://debrepo.mirror.vpslink.com lenny Release [63.2kB] Get:3 http://debrepo.mirror.vpslink.com lenny/main Packages [5295kB] Get:4 http://security.debian.org lenny/updates Release.gpg [197B] Get:5 http://security.debian.org lenny/updates Release [40.8kB] Get:6 http://debrepo.mirror.vpslink.com lenny/contrib Packages [76.1kB] Ign http://security.debian.org lenny/updates/main Packages/DiffIndex Get:7 http://security.debian.org lenny/updates/contrib Packages [14B] Get:8 http://security.debian.org lenny/updates/main Packages [50.6kB] Fetched 5526kB in 4s (1330kB/s) Reading package lists... Done ...&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Setting Up Web Server&lt;/h3&gt;Okay. The 64MB VPS is now up and running. What should we do next? Installing a web server of course, so we can start serving our static pages! Which web server? Not Apache as it would be a waste of valuable memory here. Again my personal favourite is &lt;a href="http://nginx.net/"&gt;Nginx&lt;/a&gt; (pronounces Engine X), which currently powers LowEndBox.com. However, in this exercise I will go for &lt;a href="http://www.lighttpd.net/"&gt;Lighttpd&lt;/a&gt; because I found it easier to set up for abitary sites.&lt;br /&gt;First of all — get Lighttpd installed.&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;endor:~# &lt;b&gt;apt-get install lighttpd&lt;/b&gt;&lt;br /&gt;Reading package lists... Done&lt;br /&gt;Building dependency tree&lt;br /&gt;Reading state information... Done&lt;br /&gt;The following extra packages will be installed:&lt;br /&gt;...&lt;br /&gt;Setting up libterm-readkey-perl (2.30-4) ...&lt;br /&gt;Setting up libterm-readline-perl-perl (1.0302-1) ...&lt;br /&gt;Setting up lighttpd (1.4.19-5) ...&lt;br /&gt;Starting web server: lighttpd.&lt;br /&gt;endor:~# &lt;b&gt;ps -u www-data u&lt;/b&gt;&lt;br /&gt;USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND&lt;br /&gt;www-data  1690  0.0  1.5   5416  1008 ?        S    07:17   0:00 /usr/sbin/&lt;/pre&gt;&lt;br /&gt;Plain vanilla stripped down and un-configured 32 bit Lighttpd sits around 1MB RSS — not bad.&lt;br /&gt;Next, we need to get our websites up there and point Lighttpd to them. It’s a good idea to put the web sites in an organised structure inside the file system. I usually just place them this way:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;/var/www/&lt;i&gt;&lt;hostname&gt;&lt;/hostname&gt;&lt;/i&gt;/html&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;So if I have an HTML file at http://www.example.com/testing.html, it will sit on the file system at &lt;code&gt;/var/www/www.example.com/html/testing.html&lt;/code&gt;. Unfortunately I do not have 18 static sites. For testing purpose I am only going to display a very basic HTML page at http://test.lowendbox.com/.&lt;br /&gt;&lt;pre class="code"&gt;endor:~# &lt;b&gt;mkdir -p /var/www/test.lowendbox.com/html&lt;/b&gt;&lt;br /&gt;endor:~# &lt;b&gt;echo '&lt;h1&gt;Low End Box Rocks!&lt;/h1&gt;' &amp;gt; /var/www/test.lowendbox.com/html/index.html&lt;/b&gt;&lt;/pre&gt;So now our “website” is ready — how does Lighttpd, our webserver, knows where to find the files corresponding to the website? That’s where Lighttpd’s &lt;a href="http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModSimpleVhost"&gt;mod_simple_vhost&lt;/a&gt; comes in handy.&lt;br /&gt;&lt;pre class="code"&gt;endor:~# &lt;b&gt;lighttpd-enable-mod simple-vhost&lt;/b&gt;&lt;br /&gt;Available modules: auth cgi fastcgi proxy rrdtool simple-vhost ssi ssl status userdir&lt;br /&gt;Already enabled modules:&lt;br /&gt;Enabling simple-vhost: ok&lt;br /&gt;Run /etc/init.d/lighttpd force-reload to enable changes&lt;br /&gt;endor:~# &lt;b&gt;/etc/init.d/lighttpd force-reload&lt;/b&gt;&lt;br /&gt;Stopping web server: lighttpd.&lt;br /&gt;Starting web server: lighttpd.&lt;/pre&gt;Now navigate to test.lowendbox.com (which already has an A record to my new VPS’s IP address) — here we have it! Low End Box Rocks!!!&lt;br /&gt;&lt;div class="notes"&gt;Prerequisite:&lt;br /&gt;You must be already familiar with DNS and know how to create records to point to IP addresses. For free DNS hosting I recommend &lt;a href="http://www.everydns.com/"&gt;EveryDNS&lt;/a&gt;, which has also been hosting LowEndBox’s domain.&lt;/div&gt;You can now basically just dump static files at /var/www/&lt;i&gt;&lt;hostname&gt;&lt;/hostname&gt;&lt;/i&gt;/html, with &lt;hostname&gt; resolved to your VPS’s IP address, and you will have your static websites over there in no time. You do not even need to tell Lighttpd to reload, as mod_simple_vhost automatically maps the hostname to appropriate file name. Repeat it 18 times and problem solved!&lt;/hostname&gt;&lt;br /&gt;At 1 single testing site with no traffic, Lighttpd sits at around 1.5MB RSS, although I doubt it would increase significantly when you increase the number of sites or the traffic. Lighttpd and Nginx are single-threaded poll-based asynchronised web servers so for static file serving, the bottle-neck would be disk/network IO rather than amount of memory or CPU performance.&lt;br /&gt;There are still &lt;i&gt;lots&lt;/i&gt; of memory left. Maybe we can have some fun.&lt;br /&gt;&lt;h3&gt;Installing WordPress&lt;/h3&gt;So you think, “hey Low End Box rocks and it runs on &lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt;. So maybe I will have that installed as well!” Wow. But WordPress is a &lt;i&gt;content management system&lt;/i&gt; for creating &lt;i&gt;dynamic websites&lt;/i&gt;! It simply cannot be possible on a 64MB VPS, the WHT crowd says! Grrr!! Let’s give it a try.&lt;br /&gt;To run WordPress from your static-file serving Lighttpd, you need a few more packages — namely MySQL and PHP in CGI/FastCGI mode.&lt;br /&gt;&lt;pre class="code"&gt;endor:~# &lt;b&gt;apt-get install mysql-server php5-cgi php5-mysql&lt;/b&gt;&lt;br /&gt;Reading package lists... Done&lt;br /&gt;Building dependency tree&lt;br /&gt;Reading state information... Done&lt;br /&gt;The following extra packages will be installed:&lt;br /&gt;...&lt;br /&gt;Creating config file /etc/php5/cgi/php.ini with new version&lt;br /&gt;Setting up php5-mysql (5.2.6.dfsg.1-1+lenny2) ...&lt;br /&gt;Setting up sgml-base (1.26) ...&lt;br /&gt;Setting up xml-core (0.12) ...&lt;br /&gt;Setting up mailx (1:20071201-3) ...&lt;/pre&gt;I know it installs whole lot of other junks but don’t worry — we will live with them first and will try to optimise later. It also requires you to set up the root password for MySQL server, and I conveniently chose the most obscured password in this exercise — “root” (yes, don’t use that because I am already using it as my root password :)&lt;br /&gt;We then need to configure lighttpd to handle PHP files.&lt;br /&gt;&lt;pre class="code"&gt;endor:~# &lt;b&gt;cat &amp;gt; /etc/lighttpd/conf-enabled/10-cgi-php.conf&lt;br /&gt;server.modules += ("mod_cgi")&lt;br /&gt;cgi.assign = (".php" =&amp;gt; "/usr/bin/php5-cgi")&lt;/b&gt;&lt;i&gt;^D&lt;/i&gt;&lt;br /&gt;endor:~# &lt;b&gt;/etc/init.d/lighttpd force-reload&lt;/b&gt;&lt;br /&gt;Stopping web server: lighttpd.&lt;br /&gt;Starting web server: lighttpd.&lt;/pre&gt;Done! It should be able to serve PHP files. Just to test it out:&lt;br /&gt;&lt;pre class="code"&gt;endor:~# &lt;b&gt;echo '' &amp;gt; /var/www/test.lowendbox.com/html/phpinfo.php&lt;/b&gt;&lt;/pre&gt;Now navigate to http://test.lowendbox.com/phpinfo.php — you should be able to see the output of &lt;code&gt;phpinfo()&lt;/code&gt; function. What we are going to do next is to set up a WordPress blog under http://test.lowendbox.com/blog/. WordPress.org &lt;a href="http://codex.wordpress.org/Installing_WordPress"&gt;already provides a great tutorial on installing WordPress&lt;/a&gt;, but let’s do it &lt;i&gt;step by step&lt;/i&gt; on the command prompt.&lt;br /&gt;My plan:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Create database “test_blog”&lt;/li&gt;&lt;li&gt;Download the latest WordPress and unzip to test.lowendbox.com/blog&lt;/li&gt;&lt;li&gt;Set up configuration file and run the WordPress install&lt;/li&gt;&lt;li&gt;Update Lighttpd to provide clean URL, aka &lt;a href="http://codex.wordpress.org/Using_Permalinks"&gt;Pretty Permalinks&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;Let’s go!&lt;br /&gt;&lt;pre class="code"&gt;endor:~# &lt;b&gt;mysqladmin -uroot -proot create test_blog&lt;/b&gt;&lt;br /&gt;endor:~# &lt;b&gt;wget http://wordpress.org/latest.tar.gz&lt;/b&gt;&lt;br /&gt;Resolving wordpress.org... 72.233.56.138, 72.233.56.139&lt;br /&gt;Connecting to wordpress.org|72.233.56.138|:80... connected.&lt;br /&gt;HTTP request sent, awaiting response... 200 OK&lt;br /&gt;Length: unspecified [application/x-gzip]&lt;br /&gt;Saving to: `latest.tar.gz'&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;2009-03-17 13:03:15 (1.01 MB/s) - `latest.tar.gz' saved [1624416]&lt;br /&gt;&lt;br /&gt;endor:~# &lt;b&gt;tar zxf latest.tar.gz -C /var/www/test.lowendbox.com/html&lt;/b&gt;&lt;br /&gt;endor:~# &lt;b&gt;cd /var/www/test.lowendbox.com/html&lt;/b&gt;&lt;br /&gt;endor:/var/www/test.lowendbox.com/html# &lt;b&gt;mv wordpress blog&lt;/b&gt;&lt;br /&gt;endor:/var/www/test.lowendbox.com/html# &lt;b&gt;mv blog/wp-config-sample.php blog/wp-config.php&lt;/b&gt;&lt;br /&gt;endor:/var/www/test.lowendbox.com/html# &lt;b&gt;vi blog/wp-config.php&lt;/b&gt;&lt;/pre&gt;When you are editing WordPress’ configuration file, set &lt;code&gt;DB_NAME&lt;/code&gt; to “test_blog”, &lt;code&gt;DB_USER&lt;/code&gt; and &lt;code&gt;DB_PASSWORD&lt;/code&gt; to “root” for something quick, dirty and potentially insecure. Here is one final step — navigate to http://test.lowendbox.com/blog/, and WordPress will guide you through the rest of setup.&lt;br /&gt;It is also relatively easy to set up pretty permalinks for WordPress on Lighttpd. In our example,&lt;br /&gt;&lt;pre class="code"&gt;endor:~# &lt;b&gt;cat &amp;gt; /etc/lighttpd/conf-enabled/lowendbox.conf&lt;/b&gt;&lt;br /&gt;&lt;b&gt;$HTTP["host"] == "test.lowendbox.com" {&lt;/b&gt;&lt;br /&gt;&lt;b&gt;    $HTTP["url"] =~ "^/blog/" {&lt;/b&gt;&lt;br /&gt;&lt;b&gt;        server.error-handler-404 = "/blog/index.php"&lt;/b&gt;&lt;br /&gt;&lt;b&gt;    }&lt;/b&gt;&lt;br /&gt;&lt;b&gt;}&lt;/b&gt;&lt;i&gt;^D&lt;/i&gt;&lt;br /&gt;endor:~# &lt;b&gt;/etc/init.d/lighttpd force-reload&lt;/b&gt;&lt;br /&gt;Stopping web server: lighttpd.&lt;br /&gt;Starting web server: lighttpd.&lt;/pre&gt;That’s it! You can now go into WordPress to configure the desirable Permalink Structure. Do note that the current WordPress dashboard page is &lt;i&gt;very resource intensive&lt;/i&gt;, as it fetches development blog, other WP news, incoming links, etc from various sources, &lt;i&gt;concurrently&lt;/i&gt; on separate PHP CGI processes. There might be plugins to turn off this server-killing behavior (or just use older version of WordPress like 2.0.x which is still maintained). Likewise some WP caching plugin can be very useful in reducing the load. Google them and you shall find.&lt;br /&gt;&lt;h3&gt;Optimisation — Squeeze More Memory!&lt;/h3&gt;So now we have a Debian 5 web server box that can handle lots of static sites + a few WordPress blogs, and it fits “fine” on a 64MB Xen VPS. Let’s see what processes are running:&lt;br /&gt;&lt;pre class="code"&gt;endor:~# &lt;b&gt;ps aux&lt;/b&gt;&lt;br /&gt;USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND&lt;br /&gt;...&lt;br /&gt;root       325  0.0  0.4   2032   292 ?        Ss   04:25   0:00 udevd&lt;br /&gt;root       879  0.0  0.4   2788   304 ?        Ss   Mar17   0:00 /bin/bash --&lt;br /&gt;root      1216  0.0  0.0      0     0 ?        S    Mar17   0:00 [pdflush]&lt;br /&gt;root      1649  0.0  0.2   3144   188 ?        Ss   Mar17   0:00 /usr/sbin/famd&lt;br /&gt;root      6427  0.0  4.4   8024  2928 ?        Ss   Mar17   0:00 sshd: root@pts/&lt;br /&gt;root      6429  0.0  2.3   2804  1564 pts/0    Ss   Mar17   0:00 -bash&lt;br /&gt;root      6441  0.0  1.8  33092  1200 ?        Sl   Mar17   0:00 /usr/sbin/rsysl&lt;br /&gt;root      6453  0.0  1.4   5284   976 ?        Ss   Mar17   0:00 /usr/sbin/sshd&lt;br /&gt;root      6470  0.0  1.3   2048   896 ?        Ss   Mar17   0:00 /usr/sbin/cron&lt;br /&gt;daemon    6482  0.0  0.8   1772   560 ?        Ss   Mar17   0:00 /sbin/portmap&lt;br /&gt;www-data  6510  0.0  2.6   5848  1736 ?        S    Mar17   0:00 /usr/sbin/light&lt;br /&gt;root      6572  0.0  1.7   2488  1156 pts/0    S    Mar17   0:00 /bin/sh /usr/bi&lt;br /&gt;mysql     6611  0.0 26.2 143652 17228 pts/0    Sl   Mar17   0:00 /usr/sbin/mysql&lt;br /&gt;root      6613  0.0  0.8   1636   536 pts/0    S    Mar17   0:00 logger -p daemo&lt;br /&gt;103       6973  0.0  1.3   6112   908 ?        Ss   Mar17   0:00 /usr/sbin/exim4&lt;br /&gt;root      6986  0.0  1.3   2308   908 pts/0    R+   00:01   0:00 ps aux&lt;br /&gt;endor:~# &lt;b&gt;free&lt;/b&gt;&lt;br /&gt;             total       used       free     shared    buffers     cached&lt;br /&gt;Mem:         65704      51424      14280          0        936      22588&lt;br /&gt;-/+ buffers/cache:      27900      37804&lt;br /&gt;Swap:       131064        864     130200&lt;/pre&gt;&lt;br /&gt;Note that it’s an idle box. The swap is slightly used and at &lt;b&gt;37MB free&lt;/b&gt; it is actually not too bad. Let’s try to squeeze a little bit more memory out from the factory setup.&lt;br /&gt;&lt;br /&gt;MySQL is by far the biggest &lt;i&gt;offender&lt;/i&gt;, and I have &lt;a href="http://www.lowendbox.com/blog/reducing-mysql-memory-usage-for-low-end-boxes/"&gt;talked about how to reduce MySQL memory usage here&lt;/a&gt;. If you are just running simple CMS, InnoDB is probably not required — it uses more memory and a lot heavier on IO as well. We can simply use the LxAdmin’s mysql.cnf which I linked on the other blog post to get the bare-minimum MySQL running.&lt;br /&gt;&lt;pre class="code"&gt;endor:~# &lt;b&gt;cat &amp;gt; /etc/mysql/conf.d/lowendbox.cnf&lt;br /&gt;[mysqld]&lt;br /&gt;key_buffer = 16K&lt;br /&gt;max_allowed_packet = 1M&lt;br /&gt;table_cache = 4&lt;br /&gt;sort_buffer_size = 64K&lt;br /&gt;read_buffer_size = 256K&lt;br /&gt;read_rnd_buffer_size = 256K&lt;br /&gt;net_buffer_length = 2K&lt;br /&gt;thread_stack = 64K&lt;br /&gt;skip-bdb&lt;br /&gt;skip-innodb&lt;/b&gt;&lt;i&gt;^D&lt;/i&gt;&lt;/pre&gt;&lt;br /&gt;As &lt;code&gt;mysqld_safe&lt;/code&gt; script uses &lt;code&gt;/bin/sh&lt;/code&gt; for scripting, it’s also a good idea to check &lt;a href="http://www.lowendbox.com/blog/replacing-big-fat-bash-with-dash-for-scripting/"&gt;whether dash is used instead of bash&lt;/a&gt;.&lt;br /&gt;&lt;pre class="code"&gt;endor:~# &lt;b&gt;apt-get install dash&lt;/b&gt;&lt;br /&gt;Reading package lists... Done&lt;br /&gt;Building dependency tree&lt;br /&gt;Reading state information... Done&lt;br /&gt;The following NEW packages will be installed:&lt;br /&gt;...&lt;br /&gt;Unpacking dash (from .../dash_0.5.4-12_i386.deb) ...&lt;br /&gt;Processing triggers for man-db ...&lt;br /&gt;Setting up dash (0.5.4-12) ...&lt;br /&gt;endor:~# &lt;b&gt;dpkg-reconfigure dash&lt;/b&gt;&lt;br /&gt;Adding `diversion of /bin/sh to /bin/sh.distrib by dash'&lt;br /&gt;Adding `diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash'&lt;br /&gt;endor:~# &lt;b&gt;/etc/init.d/mysql restart&lt;/b&gt;&lt;br /&gt;Stopping MySQL database server: mysqld.&lt;br /&gt;Starting MySQL database server: mysqld.&lt;br /&gt;Checking for corrupt, not cleanly closed and upgrade needing tables..&lt;/pre&gt;&lt;br /&gt;One thing I don’t like about Debian 5 is its default inclusion of &lt;a href="http://www.rsyslog.com/"&gt;rsyslog&lt;/a&gt;. Well — it’s feature rich, but I don’t need MySQL and TCP syslog support. Weight at 1.2MB RSS is just a bit too fat I reckon. I am not game enough to go &lt;i&gt;without&lt;/i&gt; a syslog daemon, so I just go for &lt;a href="http://en.wikipedia.org/wiki/Syslog-ng"&gt;syslog-ng&lt;/a&gt;. Probably not the most light weight, but it’s just something I have been using for the last couple of years.&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;endor:~# &lt;b&gt;ps -C rsyslogd v&lt;/b&gt;&lt;br /&gt;  PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND&lt;br /&gt; 6441 ?        Sl     0:00      0   207 32936  1260  1.9 /usr/sbin/rsyslogd -c3&lt;br /&gt;endor:~# &lt;b&gt;apt-get install syslog-ng &amp;amp;&amp;amp; dpkg --purge rsyslog&lt;/b&gt;&lt;br /&gt;Reading package lists... Done&lt;br /&gt;Building dependency tree&lt;br /&gt;Reading state information... Done&lt;br /&gt;The following extra packages will be installed:&lt;br /&gt;...&lt;br /&gt;Setting up syslog-ng (2.0.9-4.1) ...&lt;br /&gt;Starting system logging: syslog-ng.&lt;br /&gt;(Reading database ... 16517 files and directories currently installed.)&lt;br /&gt;Removing rsyslog ...&lt;br /&gt;Purging configuration files for rsyslog ...&lt;br /&gt;endor:~# &lt;b&gt;ps -C syslog-ng v&lt;/b&gt;&lt;br /&gt;  PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND&lt;br /&gt; 8215 ?        Ss     0:00      0   105  2754   708  1.0 /usr/sbin/syslog-ng -p&lt;/pre&gt;&lt;br /&gt;Shedding 500kb RSS — not too bad I guess :)&lt;br /&gt;&lt;br /&gt;Next — &lt;a href="http://neil.brown.name/portmap/"&gt;Portmap&lt;/a&gt; and &lt;a href="http://savannah.nongnu.org/projects/fam/"&gt;FAM&lt;/a&gt; got installed when Lighttpd was first installed. Lighttpd does not &lt;i&gt;really&lt;/i&gt; need FAM. It’s used for stat cache to reduce seeks, but can live without. Not that I have noticed any performance difference anyway for small traffic anyway. Having both of them removed from the process list would give us extra 750KB.&lt;br /&gt;&lt;pre class="code"&gt;endor:~# &lt;b&gt;apt-get remove --purge portmap&lt;/b&gt;&lt;br /&gt;eading package lists... Done&lt;br /&gt;Building dependency tree&lt;br /&gt;Reading state information... Done&lt;br /&gt;The following packages will be REMOVED:&lt;br /&gt;...&lt;/pre&gt;&lt;br /&gt;OpenSSH can be &lt;a href="http://www.lowendbox.com/blog/replacing-openssh-with-dropbear/"&gt;replaced by dropbear&lt;/a&gt; to save memory.&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;endor:~# &lt;b&gt;touch /etc/ssh/sshd_not_to_be_run&lt;/b&gt;&lt;br /&gt;endor:~# &lt;b&gt;apt-get install dropbear&lt;/b&gt;&lt;br /&gt;...&lt;br /&gt;endor:~# &lt;b&gt;vi /etc/default/dropbear&lt;/b&gt;&lt;br /&gt;endor:~# &lt;b&gt;/etc/init.d/dropbear start&lt;/b&gt;&lt;br /&gt;Starting Dropbear SSH server: dropbear.&lt;/pre&gt;&lt;br /&gt;Just remember to set &lt;code&gt;NO_START=0&lt;/code&gt; in &lt;code&gt;/etc/default/dropbear&lt;/code&gt; so dropbear can run as a daemon. Dropbear daemon is using around 500KB less than OpenSSH daemon during idle, and for each connection it uses 1.5MB less on this Debian 5 box — that’s quite a saving!&lt;br /&gt;&lt;br /&gt;That’s probably it! Vixie cron can be replaced by a light weight &lt;a href="http://apollo.backplane.com/FreeSrc/"&gt;DCRON&lt;/a&gt; but I can’t seem to be able find it in Debian’s repository. Exim4 is probably one of the most light weight mail daemon you can have, but then again you might want to question — “do I need a mail daemon running”? You can probably bring it down, and just run &lt;code&gt;/usr/sbin/runq&lt;/code&gt; once every 2 hours to process the queue, in case the previous delivery failed. That would probably give you another 1MB to play with.&lt;br /&gt;&lt;br /&gt;You can also use &lt;a href="http://www.lowendbox.com/blog/replacing-that-big-fat-bash/"&gt;PDKSH&lt;/a&gt; to replace BASH as interactive shell to loose some weight.&lt;br /&gt;&lt;pre class="code"&gt;endor:~# &lt;b&gt;ps -C bash v&lt;/b&gt;&lt;br /&gt;  PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND&lt;br /&gt; 8409 pts/1    Ss     0:00      2   663  2140  1568  2.3 -bash&lt;br /&gt;endor:~# &lt;b&gt;apt-get install pdksh&lt;/b&gt;&lt;br /&gt;endor:~# &lt;b&gt;chsh -s /bin/pdksh&lt;/b&gt;&lt;br /&gt;&lt;i&gt;&lt;log and="" back="" in="" out="" ssh="" then=""&gt;&lt;/log&gt;&lt;/i&gt;&lt;br /&gt;# &lt;b&gt;ps -C pdksh v&lt;/b&gt;&lt;br /&gt;  PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND&lt;br /&gt; 8550 pts/0    Rs     0:00      0   174  1633   588  0.8 -pdksh&lt;/pre&gt;That’s 1 full megabyte off the scale! Also note that VPSLink’s &lt;code&gt;/etc/inittab&lt;/code&gt; automatically spawn a BASH process on the console — just in case you got locked out from firewall. For me it’s the last line of &lt;code&gt;inittab&lt;/code&gt; file. Change it to &lt;code&gt;/bin/sh&lt;/code&gt; or &lt;code&gt;/bin/pdksh&lt;/code&gt;, run &lt;code&gt;init q&lt;/code&gt; to reload init(1), and then kill that bash process.&lt;br /&gt;&lt;br /&gt;Here’s the end result:&lt;br /&gt;&lt;pre class="code"&gt;# &lt;b&gt;ps aux&lt;/b&gt;&lt;br /&gt;USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND&lt;br /&gt;...&lt;br /&gt;root       325  0.0  0.4   2032   292 ?        S&lt;br /&gt;root      1216  0.0  0.0      0     0 ?        S    Mar17   0:00 [pdflush]&lt;br /&gt;root      6470  0.0  1.3   2048   896 ?        Ss   Mar17   0:00 /usr/sbin/cron&lt;br /&gt;103       6973  0.0  1.3   6112   912 ?        Ss   Mar17   0:00 /usr/sbin/exim4&lt;br /&gt;root      7953  0.0  0.7   1716   524 ?        S    00:23   0:00 /bin/sh /usr/bi&lt;br /&gt;mysql     7992  0.0  8.2  37904  5404 ?        Sl   00:23   0:00 /usr/sbin/mysql&lt;br /&gt;root      7994  0.0  0.8   1636   536 ?        S    00:23   0:00 logger -p daemo&lt;br /&gt;root      8215  0.0  1.1   2860   776 ?        Ss   00:31   0:00 /usr/sbin/syslo&lt;br /&gt;www-data  8313  0.0  2.4   5712  1640 ?        S    00:37   0:00 /usr/sbin/light&lt;br /&gt;root      8418  0.0  0.7   2052   468 ?        Ss   00:51   0:00 /usr/sbin/dropb&lt;br /&gt;root      8527  0.0  0.7   1712   468 ?        Ss   01:19   0:00 /bin/sh --&lt;br /&gt;root      8549  0.0  1.9   2712  1300 ?        Ss   01:21   0:00 /usr/sbin/dropb&lt;br /&gt;root      8550  0.0  0.9   1808   600 pts/0    Rs   01:21   0:00 -pdksh&lt;br /&gt;root      8562  0.0  1.3   2308   908 pts/0    R+   01:26   0:00 ps aux&lt;br /&gt;# &lt;b&gt;free&lt;/b&gt;&lt;br /&gt;             total       used       free     shared    buffers     cached&lt;br /&gt;Mem:         65704      58852       6852          0       2180      40344&lt;br /&gt;-/+ buffers/cache:      16328      49376&lt;br /&gt;Swap:       131064        380     130684 &lt;/pre&gt;That’s 12MB trimmed, which can be used in disk cache to improve static file serving.&lt;br /&gt;&lt;h3&gt;Conclusion&lt;/h3&gt;So how do we conclude? &lt;b&gt;64MB is more than enough to serve a few low traffic static websites&lt;/b&gt;. You can actually run a few WordPress sites with a few hundred visitors a day — at the price equivalent to many heavily oversold shared hosting &lt;b&gt;and you get root access&lt;/b&gt;!&lt;br /&gt;&lt;br /&gt;One thing about root access though — in all my examples above I used root account and never bothered to use a &lt;i&gt;normal&lt;/i&gt; user account. It is &lt;i&gt;bad&lt;/i&gt; from security aspect so &lt;i&gt;don’t do it&lt;/i&gt;. Or at least don’t tell anyone that you use nothing but root :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;KOMENTAR &lt;br /&gt;Excellent work! If you need a DNS server, you can use maradns, that cost you only 2MB :)&lt;br /&gt;And if you need ftp, I recomend pure-ftpd.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-2812630894081381604?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/2812630894081381604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/10/xen-vps-64mb.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/2812630894081381604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/2812630894081381604'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/10/xen-vps-64mb.html' title='XEN VPS 64MB'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-8095301803296015797</id><published>2011-09-26T21:08:00.000-07:00</published><updated>2011-09-26T21:34:16.140-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='squirrelmail'/><title type='text'>Virtual Users And Domains With Postfix, Courier, MySQL And SquirrelMail (Ubuntu 10.04)</title><content type='html'>&lt;i&gt;This tutorial is Copyright (c) 2010 by Falko Timme. It is derived from a tutorial from Christoph Haas which you can find at &lt;a href="http://workaround.org/" target="_blank"&gt;http://workaround.org&lt;/a&gt;. You are free to use this tutorial under the Creative Commons license 2.5 or any later version.&lt;a name='more'&gt;&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;This document describes how to install a mail server based on Postfix that is based on virtual users and domains, i.e. users and domains that are in a MySQL database. I'll also demonstrate the installation and configuration of Courier (Courier-POP3, Courier-IMAP), so that Courier can authenticate against the same MySQL database Postfix uses.&lt;br /&gt;&lt;br /&gt;The resulting Postfix server is capable of &lt;b&gt;SMTP-AUTH&lt;/b&gt; and &lt;b&gt;TLS&lt;/b&gt; and &lt;b&gt;quota&lt;/b&gt; (quota is not built into Postfix by default, I'll show how to patch your Postfix appropriately). Passwords are stored in &lt;b&gt;encrypted&lt;/b&gt; form in the database (most documents I found were dealing with plain text passwords which is a security risk). In addition to that, this tutorial covers the installation of &lt;b&gt;Amavisd&lt;/b&gt;, &lt;b&gt;SpamAssassin&lt;/b&gt; and &lt;b&gt;ClamAV&lt;/b&gt; so that emails will be scanned for spam and viruses. I will also show how to install &lt;b&gt;SquirrelMail&lt;/b&gt; as a webmail interface so that users can read and send emails and change their passwords.&lt;br /&gt;&lt;br /&gt;The advantage of such a "virtual" setup (virtual users and domains in a MySQL database) is that it is far more performant than a setup that is based on "real" system users. With this virtual setup your mail server can handle thousands of domains and users. Besides, it is easier to administrate because you only have to deal with the MySQL database when you add new users/domains or edit existing ones. No more postmap commands to create db files, no more reloading of Postfix, etc. For the administration of the MySQL database you can use web based tools like phpMyAdmin which will also be installed in this howto. The third advantage is that users have an email address as user name (instead of a user name + an email address) which is easier to understand and keep in mind.&lt;br /&gt;&lt;br /&gt;This howto is meant as a practical guide; it does not cover the theoretical backgrounds. They are treated in a lot of other documents in the web.&lt;br /&gt;&lt;br /&gt;This document comes without warranty of any kind! I want to say that this is not the only way of setting up such a system. There are many ways of achieving this goal but this is the way I take. I do not issue any guarantee that this will work for you!&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;1 Preliminary Note&lt;/h3&gt;This tutorial is based on Ubuntu 10.04 Server (Lucid Lynx), so you should set up a basic Ubuntu 10.04 server installation before you continue with this tutorial (e.g. as shown on the pages 1 - 3 in this tutorial: &lt;a href="http://www.howtoforge.com/perfect-server-ubuntu-10.04-lucid-lynx-ispconfig-2" target="_blank"&gt;The Perfect Server - Ubuntu Lucid Lynx (Ubuntu 10.04) [ISPConfig 2]&lt;/a&gt;). The system should have a static IP address. I use &lt;span class="system"&gt;192.168.0.100&lt;/span&gt; as my IP address in this tutorial and &lt;span class="system"&gt;server1.example.com&lt;/span&gt; as the hostname.&lt;br /&gt;Make sure that you are logged in as root (type in&lt;br /&gt;&lt;div class="command"&gt;sudo su&lt;/div&gt;to become root), because we must run all the steps from this tutorial as root user.&lt;br /&gt;It is very important that you make &lt;span class="system"&gt;/bin/sh&lt;/span&gt; a symlink to &lt;span class="system"&gt;/bin/bash&lt;/span&gt;...&lt;br /&gt;&lt;div class="command"&gt;dpkg-reconfigure dash&lt;/div&gt;&lt;span class="system"&gt;Install dash as /bin/sh?&lt;/span&gt; &lt;span class="highlight"&gt;&amp;lt;-- No&lt;/span&gt;&lt;br /&gt;... and that you disable AppArmor:&lt;br /&gt;&lt;div class="command"&gt;/etc/init.d/apparmor stop&lt;br /&gt;update-rc.d -f apparmor remove&lt;br /&gt;aptitude remove apparmor apparmor-utils&lt;/div&gt;&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3&gt;2 Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin&lt;/h3&gt;To install Postfix, Courier, Saslauthd, MySQL, and phpMyAdmin, we simply run&lt;br /&gt;&lt;div class="command"&gt;aptitude install postfix postfix-mysql postfix-doc mysql-client mysql-server 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 phpmyadmin apache2 libapache2-mod-php5 php5 php5-mysql libpam-smbpass&lt;/div&gt;You will be asked a few questions:&lt;br /&gt;&lt;span class="system"&gt;New password for the MySQL "root" user:&lt;/span&gt; &lt;span class="highlight"&gt;&amp;lt;-- yourrootsqlpassword&lt;/span&gt;&lt;br /&gt;&lt;span class="system"&gt;Repeat password for the MySQL "root" user:&lt;/span&gt; &lt;span class="highlight"&gt;&amp;lt;-- yourrootsqlpassword&lt;/span&gt;&lt;br /&gt;&lt;span class="system"&gt;Create directories for web-based administration?&lt;/span&gt; &lt;span class="highlight"&gt;&amp;lt;-- No&lt;/span&gt;&lt;br /&gt;&lt;span class="system"&gt;General type of mail configuration:&lt;/span&gt; &lt;span class="highlight"&gt;&amp;lt;-- Internet Site&lt;/span&gt;&lt;br /&gt;&lt;span class="system"&gt;System mail name:&lt;/span&gt; &lt;span class="highlight"&gt;&amp;lt;-- server1.example.com&lt;/span&gt;&lt;br /&gt;&lt;span class="system"&gt;SSL certificate required&lt;/span&gt; &lt;span class="highlight"&gt;&amp;lt;-- Ok&lt;/span&gt;&lt;br /&gt;&lt;span class="system"&gt;Web server to reconfigure automatically:&lt;/span&gt; &lt;span class="highlight"&gt;&amp;lt;-- apache2&lt;br /&gt;&lt;/span&gt;&lt;span class="system"&gt;Configure database for phpmyadmin with dbconfig-common? &lt;/span&gt;&lt;span class="highlight"&gt;&amp;lt;-- No&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;3 Apply The Quota Patch To Postfix&lt;/h3&gt;We have to get the Postfix sources, patch it with the quota patch, build new Postfix &lt;span class="system"&gt;.deb&lt;/span&gt; packages and install those &lt;span class="system"&gt;.deb&lt;/span&gt; packages:&lt;br /&gt;&lt;div class="command"&gt;aptitude build-dep postfix&lt;/div&gt;&lt;div class="command"&gt;cd /usr/src&lt;br /&gt;apt-get source postfix&lt;/div&gt;(Make sure you use the correct Postfix version in the following commands. I have Postfix 2.7.0 installed. You can find out your Postfix version by running&lt;br /&gt;&lt;div class="command"&gt;postconf -d | grep mail_version&lt;/div&gt;The output should look like this:&lt;br /&gt;&lt;div class="system"&gt;root@server1:/usr/src# postconf -d | grep mail_version&lt;br /&gt;mail_version = 2.7.0&lt;br /&gt;milter_macro_v = $mail_name $mail_version&lt;br /&gt;root@server1:/usr/src#&lt;/div&gt;)&lt;br /&gt;&lt;br /&gt;&lt;div class="command"&gt;wget http://vda.sourceforge.net/VDA/postfix-vda-2.7.0.patch&lt;br /&gt;cd postfix-2.7.0&lt;br /&gt;patch -p1 &amp;lt; ../postfix-vda-2.7.0.patch&lt;br /&gt;dpkg-buildpackage&lt;/div&gt;Now we go one directory up, that's where the new &lt;span class="system"&gt;.deb&lt;/span&gt; packages have been created:&lt;br /&gt;&lt;div class="command"&gt;cd ..&lt;/div&gt;The command&lt;br /&gt;&lt;div class="command"&gt;ls -l&lt;/div&gt;shows you the available packages:&lt;br /&gt;&lt;div class="system"&gt;root@server1:/usr/src#&amp;nbsp;ls&amp;nbsp;-l&lt;br /&gt;total&amp;nbsp;6396&lt;br /&gt;drwxr-xr-x&amp;nbsp;24&amp;nbsp;root&amp;nbsp;root&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4096&amp;nbsp;2010-04-29&amp;nbsp;14:00&amp;nbsp;linux-headers-2.6.32-21&lt;br /&gt;drwxr-xr-x&amp;nbsp;&amp;nbsp;7&amp;nbsp;root&amp;nbsp;root&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4096&amp;nbsp;2010-04-29&amp;nbsp;14:00&amp;nbsp;linux-headers-2.6.32-21-server&lt;br /&gt;drwxr-xr-x&amp;nbsp;19&amp;nbsp;root&amp;nbsp;root&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4096&amp;nbsp;2010-06-04&amp;nbsp;16:02&amp;nbsp;postfix-2.7.0&lt;br /&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;1&amp;nbsp;root&amp;nbsp;src&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3700&amp;nbsp;2010-06-04&amp;nbsp;16:03&amp;nbsp;postfix_2.7.0-1_amd64.changes&lt;br /&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;1&amp;nbsp;root&amp;nbsp;src&amp;nbsp;&amp;nbsp;1418996&amp;nbsp;2010-06-04&amp;nbsp;16:03&amp;nbsp;postfix_2.7.0-1_amd64.deb&lt;br /&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;1&amp;nbsp;root&amp;nbsp;src&amp;nbsp;&amp;nbsp;&amp;nbsp;240154&amp;nbsp;2010-06-04&amp;nbsp;16:00&amp;nbsp;postfix_2.7.0-1.diff.gz&lt;br /&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;1&amp;nbsp;root&amp;nbsp;src&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1191&amp;nbsp;2010-06-04&amp;nbsp;16:00&amp;nbsp;postfix_2.7.0-1.dsc&lt;br /&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;1&amp;nbsp;root&amp;nbsp;src&amp;nbsp;&amp;nbsp;3418064&amp;nbsp;2010-02-18&amp;nbsp;07:05&amp;nbsp;postfix_2.7.0.orig.tar.gz&lt;br /&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;1&amp;nbsp;root&amp;nbsp;src&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;42522&amp;nbsp;2010-06-04&amp;nbsp;16:03&amp;nbsp;postfix-cdb_2.7.0-1_amd64.deb&lt;br /&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;1&amp;nbsp;root&amp;nbsp;src&amp;nbsp;&amp;nbsp;&amp;nbsp;146842&amp;nbsp;2010-06-04&amp;nbsp;16:03&amp;nbsp;postfix-dev_2.7.0-1_all.deb&lt;br /&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;1&amp;nbsp;root&amp;nbsp;src&amp;nbsp;&amp;nbsp;&amp;nbsp;999490&amp;nbsp;2010-06-04&amp;nbsp;16:03&amp;nbsp;postfix-doc_2.7.0-1_all.deb&lt;br /&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;1&amp;nbsp;root&amp;nbsp;src&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;50142&amp;nbsp;2010-06-04&amp;nbsp;16:03&amp;nbsp;postfix-ldap_2.7.0-1_amd64.deb&lt;br /&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;1&amp;nbsp;root&amp;nbsp;src&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;44278&amp;nbsp;2010-06-04&amp;nbsp;16:03&amp;nbsp;postfix-mysql_2.7.0-1_amd64.deb&lt;br /&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;1&amp;nbsp;root&amp;nbsp;src&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;44304&amp;nbsp;2010-06-04&amp;nbsp;16:03&amp;nbsp;postfix-pcre_2.7.0-1_amd64.deb&lt;br /&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;1&amp;nbsp;root&amp;nbsp;src&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;44336&amp;nbsp;2010-06-04&amp;nbsp;16:03&amp;nbsp;postfix-pgsql_2.7.0-1_amd64.deb&lt;br /&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;1&amp;nbsp;root&amp;nbsp;src&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;59667&amp;nbsp;2010-03-03&amp;nbsp;09:32&amp;nbsp;postfix-vda-2.7.0.patch&lt;br /&gt;root@server1:/usr/src#&lt;/div&gt;Pick the &lt;span class="system"&gt;postfix&lt;/span&gt; and &lt;span class="system"&gt;postfix-mysql&lt;/span&gt; packages and install them like this: &lt;br /&gt;&lt;div class="command"&gt;dpkg -i postfix_2.7.0-1_amd64.deb postfix-mysql_2.7.0-1_amd64.deb&lt;/div&gt;&lt;br /&gt;&lt;h3&gt;4 Create The MySQL Database For Postfix/Courier&lt;/h3&gt;Now we create a database called &lt;span class="system"&gt;mail&lt;/span&gt;:&lt;br /&gt;&lt;div class="command"&gt;mysqladmin -u root -p create mail&lt;/div&gt;Next, we go to the MySQL shell:&lt;br /&gt;&lt;div class="command"&gt;mysql -u root -p&lt;/div&gt;On the MySQL shell, we create the user &lt;span class="system"&gt;mail_admin&lt;/span&gt; with the passwort &lt;span class="system"&gt;mail_admin_password&lt;/span&gt; (replace it with your own password) who has &lt;span class="system"&gt;SELECT,INSERT,UPDATE,DELETE&lt;/span&gt; privileges on the &lt;span class="system"&gt;mail&lt;/span&gt; database. This user will be used by Postfix and Courier to connect to the mail database:&lt;br /&gt;&lt;div class="command"&gt;GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost' IDENTIFIED BY 'mail_admin_password';&lt;br /&gt;GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost.localdomain' IDENTIFIED BY 'mail_admin_password';&lt;br /&gt;FLUSH PRIVILEGES;&lt;/div&gt;Still on the MySQL shell, we create the tables needed by Postfix and Courier:&lt;br /&gt;&lt;div class="command"&gt;USE mail;&lt;/div&gt;&lt;div class="command"&gt;CREATE TABLE domains (&lt;br /&gt;domain varchar(50) NOT NULL,&lt;br /&gt;PRIMARY KEY (domain) )&lt;br /&gt;TYPE=MyISAM;&lt;/div&gt;&lt;div class="command"&gt;CREATE TABLE forwardings (&lt;br /&gt;source varchar(80) NOT NULL,&lt;br /&gt;destination TEXT NOT NULL,&lt;br /&gt;PRIMARY KEY (source) )&lt;br /&gt;TYPE=MyISAM;&lt;/div&gt;&lt;div class="command"&gt;CREATE TABLE users (&lt;br /&gt;email varchar(80) NOT NULL,&lt;br /&gt;password varchar(20) NOT NULL,&lt;br /&gt;quota INT(10) DEFAULT '10485760',&lt;br /&gt;PRIMARY KEY (email)&lt;br /&gt;) TYPE=MyISAM;&lt;/div&gt;&lt;div class="command"&gt;CREATE TABLE transport (&lt;br /&gt;domain varchar(128) NOT NULL default '',&lt;br /&gt;transport varchar(128) NOT NULL default '',&lt;br /&gt;UNIQUE KEY domain (domain)&lt;br /&gt;) TYPE=MyISAM;&lt;/div&gt;&lt;div class="command"&gt;quit;&lt;/div&gt;As you may have noticed, with the &lt;span class="system"&gt;quit;&lt;/span&gt; command we have left the MySQL shell and are back on the Linux shell.&lt;br /&gt;The &lt;i class="system"&gt;domains &lt;/i&gt; table will store each virtual domain that Postfix should receive emails for (e.g. &lt;i class="system"&gt;example.com&lt;/i&gt;). &lt;br /&gt;&lt;table border="1" cellpadding="5" cellspacing="0" class="" style="border: 1px solid rgb(0, 0, 0);"&gt;&lt;tbody&gt;&lt;tr&gt;     &lt;td class=""&gt;&lt;i&gt;&lt;b&gt;domain &lt;/b&gt;&lt;/i&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;     &lt;td class=""&gt;example.com &lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;The &lt;i class="system"&gt;forwardings &lt;/i&gt; table is for aliasing one email address to another, e.g. forward emails for &lt;i class="system"&gt;info@example.com &lt;/i&gt; to &lt;i class="system"&gt;sales@example.com&lt;/i&gt;. &lt;br /&gt;&lt;table border="1" cellpadding="5" cellspacing="0" class="" style="border: 1px solid rgb(0, 0, 0);"&gt;&lt;tbody&gt;&lt;tr&gt;     &lt;td class=""&gt;&lt;i&gt;&lt;b&gt;source &lt;/b&gt;&lt;/i&gt;&lt;/td&gt;     &lt;td class=""&gt;&lt;i&gt;&lt;b&gt;destination &lt;/b&gt;&lt;/i&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;     &lt;td class=""&gt;info@example.com &lt;/td&gt;     &lt;td class=""&gt;sales@example.com &lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;The &lt;i class="system"&gt;users &lt;/i&gt; table stores all virtual users (i.e. email addresses, because the email address and user name is the same) and passwords (in &lt;b&gt;encrypted &lt;/b&gt; form!) and a quota value for each mail box (in this example the default value is 10485760 bytes which means 10MB). &lt;br /&gt;&lt;table border="1" cellpadding="5" cellspacing="0" class="" style="border: 1px solid rgb(0, 0, 0);"&gt;&lt;tbody&gt;&lt;tr&gt;     &lt;td class=""&gt;&lt;b&gt;&lt;i&gt;email &lt;/i&gt;&lt;/b&gt;&lt;/td&gt;     &lt;td class=""&gt;&lt;b&gt;&lt;i&gt;password &lt;/i&gt;&lt;/b&gt;&lt;/td&gt;     &lt;td class=""&gt;&lt;b&gt;&lt;i&gt;quota &lt;/i&gt;&lt;/b&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;     &lt;td class=""&gt;sales@example.com &lt;/td&gt;     &lt;td class=""&gt;No9.E4skNvGa. ("secret" in encrypted form) &lt;/td&gt;     &lt;td class=""&gt;10485760 &lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;The &lt;i class="system"&gt;transport &lt;/i&gt; table is optional, it is for advanced users. It allows to forward mails for single users, whole domains or all mails to another server. For example, &lt;br /&gt;&lt;table border="1" cellpadding="5" cellspacing="0" class="" style="border: 1px solid rgb(0, 0, 0);"&gt;&lt;tbody&gt;&lt;tr&gt;     &lt;td class=""&gt;&lt;b&gt;&lt;i&gt;domain &lt;/i&gt;&lt;/b&gt;&lt;/td&gt;     &lt;td class=""&gt;&lt;b&gt;&lt;i&gt;transport &lt;/i&gt;&lt;/b&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;     &lt;td class=""&gt;example.com &lt;/td&gt;     &lt;td class=""&gt;smtp:[1.2.3.4] &lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;would forward all emails for &lt;i class="system"&gt;example.com &lt;/i&gt; via the smtp protocol to the server with the IP address &lt;i class="system"&gt;1.2.3.4 &lt;/i&gt; (the square brackets &lt;i&gt;[] &lt;/i&gt; mean "do not make a lookup of the MX DNS record" (which makes sense for IP addresses...). If you use a fully qualified domain name (FQDN) instead you would not use the square brackets.).&lt;br /&gt;&lt;br /&gt;BTW, (I'm assuming that the IP address of your mail server system is &lt;span class="system"&gt;192.168.0.100&lt;/span&gt;) you can access phpMyAdmin over &lt;span class="system"&gt;http://192.168.0.100/phpmyadmin/&lt;/span&gt; in a browser and log in as &lt;span class="system"&gt;mail_admin&lt;/span&gt;. Then you can have a look at the database. Later on you can use phpMyAdmin to administrate your mail server.&lt;br /&gt;&lt;h3&gt;5 Configure Postfix&lt;/h3&gt;Now we have to tell Postfix where it can find all the information in the database. Therefore we have to create six text files. You will notice that I tell Postfix to connect to MySQL on the IP address &lt;span class="system"&gt;127.0.0.1&lt;/span&gt; instead of &lt;span class="system"&gt;localhost&lt;/span&gt;. This is because Postfix is running in a chroot jail and does not have access to the MySQL socket which it would try to connect if I told Postfix to use &lt;span class="system"&gt;localhost&lt;/span&gt;. If I use &lt;span class="system"&gt;127.0.0.1&lt;/span&gt; Postfix uses TCP networking to connect to MySQL which is no problem even in a chroot jail (the alternative would be to move the MySQL socket into the chroot jail which causes some other problems).&lt;br /&gt;Please make sure that &lt;span class="system"&gt;/etc/mysql/my.cnf&lt;/span&gt; contains the following line:&lt;br /&gt;&lt;div class="command"&gt;vi /etc/mysql/my.cnf&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;         &lt;td class=""&gt;&lt;pre&gt;[...]&lt;br /&gt;# Instead of skip-networking the default is now to listen only on&lt;br /&gt;# localhost which is more compatible and is not less secure.&lt;br /&gt;#bind-address           = 127.0.0.1&lt;br /&gt;[...]&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;If you had to modify &lt;span class="system"&gt;/etc/mysql/my.cnf&lt;/span&gt;, please restart MySQL now:&lt;br /&gt;&lt;div class="command"&gt;/etc/init.d/mysql restart&lt;/div&gt;Run&lt;br /&gt;&lt;div class="command"&gt;netstat -tap | grep mysql&lt;/div&gt;to make sure that MySQL is listening on &lt;span class="system"&gt;127.0.0.1&lt;/span&gt; (&lt;span class="system"&gt;localhost.localdomain&lt;/span&gt;):&lt;br /&gt;&lt;div class="system"&gt;root@server1:/usr/src#&amp;nbsp;netstat&amp;nbsp;-tap&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;mysql&lt;br /&gt;tcp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;*:mysql&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*:*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17431/mysqld&lt;br /&gt;root@server1:/usr/src#&lt;/div&gt;Now let's create our six text files. &lt;br /&gt;&lt;div class="command"&gt;vi /etc/postfix/mysql-virtual_domains.cf&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;         &lt;td class=""&gt;&lt;pre&gt;user = mail_admin&lt;br /&gt;password = mail_admin_password&lt;br /&gt;dbname = mail&lt;br /&gt;query = SELECT domain AS virtual FROM domains WHERE domain='%s'&lt;br /&gt;hosts = 127.0.0.1&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="command"&gt;vi /etc/postfix/mysql-virtual_forwardings.cf&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;         &lt;td class=""&gt;&lt;pre&gt;user = mail_admin&lt;br /&gt;password = mail_admin_password&lt;br /&gt;dbname = mail&lt;br /&gt;query = SELECT destination FROM forwardings WHERE source='%s'&lt;br /&gt;hosts = 127.0.0.1&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="command"&gt;vi /etc/postfix/mysql-virtual_mailboxes.cf&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;         &lt;td class=""&gt;&lt;pre&gt;user = mail_admin&lt;br /&gt;password = mail_admin_password&lt;br /&gt;dbname = mail&lt;br /&gt;query = SELECT CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') FROM users WHERE email='%s'&lt;br /&gt;hosts = 127.0.0.1&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="command"&gt;vi /etc/postfix/mysql-virtual_email2email.cf&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;         &lt;td class=""&gt;&lt;pre&gt;user = mail_admin&lt;br /&gt;password = mail_admin_password&lt;br /&gt;dbname = mail&lt;br /&gt;query = SELECT email FROM users WHERE email='%s'&lt;br /&gt;hosts = 127.0.0.1&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="command"&gt;vi /etc/postfix/mysql-virtual_transports.cf&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;         &lt;td class=""&gt;&lt;pre&gt;user = mail_admin&lt;br /&gt;password = mail_admin_password&lt;br /&gt;dbname = mail&lt;br /&gt;query = SELECT transport FROM transport WHERE domain='%s'&lt;br /&gt;hosts = 127.0.0.1&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="command"&gt;vi /etc/postfix/mysql-virtual_mailbox_limit_maps.cf&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;         &lt;td class=""&gt;&lt;pre&gt;user = mail_admin&lt;br /&gt;password = mail_admin_password&lt;br /&gt;dbname = mail&lt;br /&gt;query = SELECT quota FROM users WHERE email='%s'&lt;br /&gt;hosts = 127.0.0.1&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Then change the permissions and the group of these files:&lt;br /&gt;&lt;div class="command"&gt;chmod o= /etc/postfix/mysql-virtual_*.cf&lt;br /&gt;chgrp postfix /etc/postfix/mysql-virtual_*.cf&lt;/div&gt;Now we create a user and group called &lt;span class="system"&gt;vmail&lt;/span&gt; with the home directory &lt;span class="system"&gt;/home/vmail&lt;/span&gt;. This is where all mail boxes will be stored. &lt;br /&gt;&lt;div class="command"&gt;groupadd -g 5000 vmail&lt;br /&gt;useradd -g vmail -u 5000 vmail -d /home/vmail -m&lt;/div&gt;Next we do some Postfix configuration. &lt;span class="highlight"&gt;Go sure that you replace server1.example.com with a valid FQDN, otherwise your Postfix might not work properly!&lt;/span&gt;&lt;br /&gt;&lt;div class="command"&gt;postconf -e 'myhostname = server1.example.com'&lt;br /&gt;postconf -e 'mydestination = server1.example.com, localhost, localhost.localdomain'&lt;br /&gt;postconf -e 'mynetworks = 127.0.0.0/8'&lt;br /&gt;postconf -e 'virtual_alias_domains ='&lt;br /&gt;postconf -e 'virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf'&lt;br /&gt;postconf -e 'virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf'&lt;br /&gt;postconf -e 'virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf'&lt;br /&gt;postconf -e 'virtual_mailbox_base = /home/vmail'&lt;br /&gt;postconf -e 'virtual_uid_maps = static:5000'&lt;br /&gt;postconf -e 'virtual_gid_maps = static:5000'&lt;br /&gt;postconf -e 'smtpd_sasl_auth_enable = yes'&lt;br /&gt;postconf -e 'broken_sasl_auth_clients = yes'&lt;br /&gt;postconf -e 'smtpd_sasl_authenticated_header = yes'&lt;br /&gt;postconf -e 'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination'&lt;br /&gt;postconf -e 'smtpd_use_tls = yes'&lt;br /&gt;postconf -e 'smtpd_tls_cert_file = /etc/postfix/smtpd.cert'&lt;br /&gt;postconf -e 'smtpd_tls_key_file = /etc/postfix/smtpd.key'&lt;br /&gt;postconf -e 'transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf'&lt;br /&gt;postconf -e 'virtual_create_maildirsize = yes'&lt;br /&gt;postconf -e 'virtual_maildir_extended = yes'&lt;br /&gt;postconf -e 'virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf'&lt;br /&gt;postconf -e 'virtual_mailbox_limit_override = yes'&lt;br /&gt;postconf -e 'virtual_maildir_limit_message = "The user you are trying to reach is over quota."'&lt;br /&gt;postconf -e 'virtual_overquota_bounce = yes'&lt;br /&gt;postconf -e 'proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps'&lt;/div&gt;Afterwards we create the SSL certificate that is needed for &lt;span class="system"&gt;TLS&lt;/span&gt;:&lt;br /&gt;&lt;div class="command"&gt;cd /etc/postfix&lt;br /&gt;openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509&lt;/div&gt;&lt;span class="system"&gt;Country Name (2 letter code) [AU]: &lt;/span&gt;&lt;span class="highlight"&gt;&amp;lt;-- Enter your Country Name (e.g., "DE").&lt;/span&gt;&lt;span class="system"&gt;&lt;br /&gt;State or Province Name (full name) [Some-State]: &lt;/span&gt;&lt;span class="highlight"&gt;&amp;lt;-- Enter your State or Province Name.&lt;/span&gt;&lt;span class="system"&gt;&lt;br /&gt;Locality Name (eg, city) []: &lt;/span&gt;&lt;span class="highlight"&gt;&amp;lt;-- Enter your City.&lt;/span&gt;&lt;span class="system"&gt;&lt;br /&gt;Organization Name (eg, company) [Internet Widgits Pty Ltd]: &lt;/span&gt;&lt;span class="highlight"&gt;&amp;lt;-- Enter your Organization Name (e.g., the name of your company).&lt;/span&gt;&lt;span class="system"&gt;&lt;br /&gt;Organizational Unit Name (eg, section) []: &lt;/span&gt;&lt;span class="highlight"&gt;&amp;lt;-- Enter your Organizational Unit Name (e.g. "IT Department").&lt;/span&gt;&lt;span class="system"&gt;&lt;br /&gt;Common Name (eg, YOUR name) []: &lt;/span&gt;&lt;span class="highlight"&gt;&amp;lt;-- Enter the Fully Qualified Domain Name of the system (e.g. "server1.example.com").&lt;/span&gt;&lt;span class="system"&gt;&lt;br /&gt;Email Address []: &lt;/span&gt;&lt;span class="highlight"&gt;&amp;lt;-- Enter your Email Address.&lt;/span&gt;&lt;br /&gt;Then change the permissions of the &lt;span class="system"&gt;smtpd.key&lt;/span&gt;:&lt;br /&gt;&lt;div class="command"&gt;chmod o= /etc/postfix/smtpd.key&lt;/div&gt;&lt;br /&gt;&lt;h3&gt;6 Configure Saslauthd&lt;/h3&gt;First run&lt;br /&gt;&lt;div class="command"&gt;mkdir -p /var/spool/postfix/var/run/saslauthd&lt;/div&gt;Then edit &lt;span class="system"&gt;/etc/default/saslauthd&lt;/span&gt;. Set &lt;span class="system"&gt;START&lt;/span&gt; to &lt;span class="system"&gt;yes&lt;/span&gt; and change the line &lt;span class="system"&gt;OPTIONS="-c -m /var/run/saslauthd"&lt;/span&gt; to &lt;span class="system"&gt;OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"&lt;/span&gt;:&lt;br /&gt;&lt;div class="command"&gt;vi /etc/default/saslauthd&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;         &lt;td class=""&gt;&lt;pre&gt;#&lt;br /&gt;# Settings for saslauthd daemon&lt;br /&gt;# Please read /usr/share/doc/sasl2-bin/README.Debian for details.&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;# Should saslauthd run automatically on startup? (default: no)&lt;br /&gt;START=yes&lt;br /&gt;&lt;br /&gt;# Description of this saslauthd instance. Recommended.&lt;br /&gt;# (suggestion: SASL Authentication Daemon)&lt;br /&gt;DESC="SASL Authentication Daemon"&lt;br /&gt;&lt;br /&gt;# Short name of this saslauthd instance. Strongly recommended.&lt;br /&gt;# (suggestion: saslauthd)&lt;br /&gt;NAME="saslauthd"&lt;br /&gt;&lt;br /&gt;# Which authentication mechanisms should saslauthd use? (default: pam)&lt;br /&gt;#&lt;br /&gt;# Available options in this Debian package:&lt;br /&gt;# getpwent  -- use the getpwent() library function&lt;br /&gt;# kerberos5 -- use Kerberos 5&lt;br /&gt;# pam       -- use PAM&lt;br /&gt;# rimap     -- use a remote IMAP server&lt;br /&gt;# shadow    -- use the local shadow password file&lt;br /&gt;# sasldb    -- use the local sasldb database file&lt;br /&gt;# ldap      -- use LDAP (configuration is in /etc/saslauthd.conf)&lt;br /&gt;#&lt;br /&gt;# Only one option may be used at a time. See the saslauthd man page&lt;br /&gt;# for more information.&lt;br /&gt;#&lt;br /&gt;# Example: MECHANISMS="pam"&lt;br /&gt;MECHANISMS="pam"&lt;br /&gt;&lt;br /&gt;# Additional options for this mechanism. (default: none)&lt;br /&gt;# See the saslauthd man page for information about mech-specific options.&lt;br /&gt;MECH_OPTIONS=""&lt;br /&gt;&lt;br /&gt;# How many saslauthd processes should we run? (default: 5)&lt;br /&gt;# A value of 0 will fork a new process for each connection.&lt;br /&gt;THREADS=5&lt;br /&gt;&lt;br /&gt;# Other options (default: -c -m /var/run/saslauthd)&lt;br /&gt;# Note: You MUST specify the -m option or saslauthd won't run!&lt;br /&gt;#&lt;br /&gt;# WARNING: DO NOT SPECIFY THE -d OPTION.&lt;br /&gt;# The -d option will cause saslauthd to run in the foreground instead of as&lt;br /&gt;# a daemon. This will PREVENT YOUR SYSTEM FROM BOOTING PROPERLY. If you wish&lt;br /&gt;# to run saslauthd in debug mode, please run it by hand to be safe.&lt;br /&gt;#&lt;br /&gt;# See /usr/share/doc/sasl2-bin/README.Debian for Debian-specific information.&lt;br /&gt;# See the saslauthd man page and the output of 'saslauthd -h' for general&lt;br /&gt;# information about these options.&lt;br /&gt;#&lt;br /&gt;# Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd"&lt;br /&gt;#OPTIONS="-c -m /var/run/saslauthd"&lt;br /&gt;OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Then create the file &lt;span class="system"&gt;/etc/pam.d/smtp&lt;/span&gt;. It should contain only the following two lines (go sure to fill in your correct database details):&lt;br /&gt;&lt;div class="command"&gt;vi /etc/pam.d/smtp&lt;/div&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;auth    required   pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1&lt;br /&gt;account sufficient pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1&lt;/pre&gt;&lt;br /&gt;Next create the file &lt;span class="system"&gt;/etc/postfix/sasl/smtpd.conf&lt;/span&gt;. It should look like this:&lt;br /&gt;&lt;div class="command"&gt;vi /etc/postfix/sasl/smtpd.conf&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;         &lt;td class=""&gt;&lt;pre&gt;pwcheck_method: saslauthd&lt;br /&gt;mech_list: plain login&lt;br /&gt;allow_plaintext: true&lt;br /&gt;auxprop_plugin: mysql&lt;br /&gt;sql_hostnames: 127.0.0.1&lt;br /&gt;sql_user: mail_admin&lt;br /&gt;sql_passwd: mail_admin_password&lt;br /&gt;sql_database: mail&lt;br /&gt;sql_select: select password from users where email = '%u'&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Next add the &lt;span class="system"&gt;postfix&lt;/span&gt; user to the &lt;span class="system"&gt;sasl&lt;/span&gt; group (this makes sure that Postfix has the permission to access saslauthd):&lt;br /&gt;&lt;div class="command"&gt;adduser postfix sasl&lt;/div&gt;Then restart Postfix and Saslauthd:&lt;br /&gt;&lt;div class="command"&gt;/etc/init.d/postfix restart&lt;br /&gt;/etc/init.d/saslauthd restart&lt;/div&gt;&lt;br /&gt;&lt;h3&gt;7 Configure Courier&lt;/h3&gt;Now we have to tell Courier that it should authenticate against our MySQL database. First, edit &lt;span class="system"&gt;/etc/courier/authdaemonrc&lt;/span&gt; and change the value of &lt;span class="system"&gt;authmodulelist&lt;/span&gt; so that it reads: &lt;br /&gt;&lt;div class="command"&gt;vi /etc/courier/authdaemonrc&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;         &lt;td class=""&gt;&lt;pre&gt;[...]&lt;br /&gt;authmodulelist="authmysql"&lt;br /&gt;[...]&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Then make a backup of &lt;span class="system"&gt;/etc/courier/authmysqlrc&lt;/span&gt; and empty the old file:&lt;br /&gt;&lt;div class="command"&gt;cp /etc/courier/authmysqlrc /etc/courier/authmysqlrc_orig&lt;br /&gt;cat /dev/null &amp;gt; /etc/courier/authmysqlrc&lt;/div&gt;Then open &lt;span class="system"&gt;/etc/courier/authmysqlrc&lt;/span&gt; and put the following lines into it:&lt;br /&gt;&lt;div class="command"&gt;vi /etc/courier/authmysqlrc&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;         &lt;td class=""&gt;&lt;pre&gt;MYSQL_SERVER localhost&lt;br /&gt;MYSQL_USERNAME mail_admin&lt;br /&gt;MYSQL_PASSWORD mail_admin_password&lt;br /&gt;MYSQL_PORT 0&lt;br /&gt;MYSQL_DATABASE mail&lt;br /&gt;MYSQL_USER_TABLE users&lt;br /&gt;MYSQL_CRYPT_PWFIELD password&lt;br /&gt;#MYSQL_CLEAR_PWFIELD password&lt;br /&gt;MYSQL_UID_FIELD 5000&lt;br /&gt;MYSQL_GID_FIELD 5000&lt;br /&gt;MYSQL_LOGIN_FIELD email&lt;br /&gt;MYSQL_HOME_FIELD "/home/vmail"&lt;br /&gt;MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')&lt;br /&gt;#MYSQL_NAME_FIELD&lt;br /&gt;MYSQL_QUOTA_FIELD quota&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;During the installation, the SSL certificates for IMAP-SSL and POP3-SSL are created with the hostname &lt;span class="system"&gt;localhost&lt;/span&gt;. To change this to the correct hostname (&lt;span class="system"&gt;server1.example.com&lt;/span&gt; in this tutorial), delete the certificates...&lt;br /&gt;&lt;div class="command"&gt;cd /etc/courier&lt;br /&gt;rm -f /etc/courier/imapd.pem&lt;br /&gt;rm -f /etc/courier/pop3d.pem&lt;/div&gt;... and modify the following two files; replace &lt;span class="system"&gt;CN=localhost&lt;/span&gt; with &lt;span class="system"&gt;CN=server1.example.com&lt;/span&gt; (you can also modify the other values, if necessary):&lt;br /&gt;&lt;div class="command"&gt;vi /etc/courier/imapd.cnf&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;     &lt;td class=""&gt;&lt;pre&gt;[...]&lt;br /&gt;CN=server1.example.com&lt;br /&gt;[...]&lt;/pre&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="command"&gt;vi /etc/courier/pop3d.cnf &lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;     &lt;td class=""&gt;&lt;pre&gt;[...]&lt;br /&gt;CN=server1.example.com&lt;br /&gt;[...]&lt;/pre&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Then recreate the certificates...&lt;br /&gt;&lt;div class="command"&gt;mkimapdcert&lt;br /&gt;mkpop3dcert&lt;/div&gt;... and restart Courier:&lt;br /&gt;&lt;div class="command"&gt;/etc/init.d/courier-authdaemon restart&lt;br /&gt;/etc/init.d/courier-imap restart&lt;br /&gt;/etc/init.d/courier-imap-ssl restart&lt;br /&gt;/etc/init.d/courier-pop restart&lt;br /&gt;/etc/init.d/courier-pop-ssl restart&lt;/div&gt;By running&lt;br /&gt;&lt;div class="command"&gt;telnet localhost pop3&lt;/div&gt;you can see if your POP3 server is working correctly. It should give back &lt;span class="system"&gt;+OK Hello there&lt;/span&gt;. (Type &lt;span class="system"&gt;quit&lt;/span&gt; to get back to the Linux shell.)    &lt;br /&gt;&lt;div class="system"&gt;root@server1:/etc/courier# telnet localhost pop3&lt;br /&gt;Trying ::1...&lt;br /&gt;Connected to localhost.localdomain.&lt;br /&gt;Escape character is '^]'.&lt;br /&gt;+OK Hello there.&lt;br /&gt;quit&lt;br /&gt;+OK Better luck next time.&lt;br /&gt;Connection closed by foreign host.&lt;br /&gt;root@server1:/etc/courier#&lt;/div&gt;&lt;br /&gt;&lt;h3&gt;8 Modify /etc/aliases&lt;/h3&gt;Now we should open &lt;span class="system"&gt;/etc/aliases&lt;/span&gt;. Make sure that &lt;span class="system"&gt;postmaster&lt;/span&gt; points to &lt;span class="system"&gt;root&lt;/span&gt; and &lt;span class="system"&gt;root&lt;/span&gt; to your own username or your email address, e.g. like this: &lt;br /&gt;&lt;div class="command"&gt;vi /etc/aliases&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;         &lt;td class=""&gt;&lt;pre&gt;[...]&lt;br /&gt;postmaster: root&lt;br /&gt;root: postmaster@yourdomain.tld&lt;br /&gt;[...]&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;or like this (if &lt;span class="system"&gt;administrator&lt;/span&gt; is your own username):&lt;br /&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;         &lt;td class=""&gt;&lt;pre&gt;[...]&lt;br /&gt;postmaster: root&lt;br /&gt;root:   administrator&lt;br /&gt;[...]&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Whenever you modify &lt;span class="system"&gt;/etc/aliases&lt;/span&gt;, you must run&lt;br /&gt;&lt;div class="command"&gt;newaliases&lt;/div&gt;afterwards and restart Postfix:&lt;br /&gt;&lt;div class="command"&gt;/etc/init.d/postfix restart&lt;br /&gt;&lt;h3&gt;9 Install amavisd-new, SpamAssassin, And ClamAV&lt;/h3&gt;To install amavisd-new, spamassassin and clamav, run the following command: &lt;br /&gt;&lt;div class="command"&gt;aptitude install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 libnet-ph-perl libnet-snpp-perl libnet-telnet-perl nomarch lzop pax&lt;/div&gt;Because this command installs AppArmor again as a dependency, we must disable it again:&lt;br /&gt;&lt;div class="command"&gt;/etc/init.d/apparmor stop&lt;br /&gt;update-rc.d -f apparmor remove&lt;br /&gt;aptitude remove apparmor apparmor-utils&lt;/div&gt;Afterwards we must configure amavisd-new. The configuration is split up in various files which reside in the &lt;span class="system"&gt;/etc/amavis/conf.d&lt;/span&gt; directory. Take a look at each of them to become familiar with the configuration. Most settings are fine, however we must modify three files:&lt;br /&gt;First we must enable ClamAV and SpamAssassin in &lt;span class="system"&gt;/etc/amavis/conf.d/15-content_filter_mode&lt;/span&gt; by uncommenting the &lt;span class="system"&gt;@bypass_virus_checks_maps&lt;/span&gt; and the &lt;span class="system"&gt;@bypass_spam_checks_maps&lt;/span&gt; lines:&lt;br /&gt;&lt;div class="command"&gt;vi /etc/amavis/conf.d/15-content_filter_mode&lt;/div&gt;The file should look like this:&lt;br /&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;     &lt;td class=""&gt;&lt;pre&gt;use strict;&lt;br /&gt;&lt;br /&gt;# You can modify this file to re-enable SPAM checking through spamassassin&lt;br /&gt;# and to re-enable antivirus checking.&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# Default antivirus checking mode&lt;br /&gt;# Please note, that anti-virus checking is DISABLED by&lt;br /&gt;# default.&lt;br /&gt;# If You wish to enable it, please uncomment the following lines:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;@bypass_virus_checks_maps = (&lt;br /&gt;   \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# Default SPAM checking mode&lt;br /&gt;# Please note, that anti-spam checking is DISABLED by&lt;br /&gt;# default.&lt;br /&gt;# If You wish to enable it, please uncomment the following lines:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;@bypass_spam_checks_maps = (&lt;br /&gt;   \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);&lt;br /&gt;&lt;br /&gt;1;  # ensure a defined return&lt;/pre&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;And then you should take a look at the spam settings and the actions for spam-/virus-mails in &lt;span class="system"&gt;/etc/amavis/conf.d/20-debian_defaults&lt;/span&gt;. There's no need to change anything if the default settings are ok for you. The file contains many explanations so there's no need to explain the settings here:&lt;br /&gt;&lt;div class="command"&gt;vi /etc/amavis/conf.d/20-debian_defaults&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;     &lt;td class=""&gt;&lt;pre&gt;[...]&lt;br /&gt;$QUARANTINEDIR = "$MYHOME/virusmails";&lt;br /&gt;$quarantine_subdir_levels = 1; # enable quarantine dir hashing&lt;br /&gt;&lt;br /&gt;$log_recip_templ = undef;    # disable by-recipient level-0 log entries&lt;br /&gt;$DO_SYSLOG = 1;              # log via syslogd (preferred)&lt;br /&gt;$syslog_ident = 'amavis';    # syslog ident tag, prepended to all messages&lt;br /&gt;$syslog_facility = 'mail';&lt;br /&gt;$syslog_priority = 'debug';  # switch to info to drop debug output, etc&lt;br /&gt;&lt;br /&gt;$enable_db = 1;              # enable use of BerkeleyDB/libdb (SNMP and nanny)&lt;br /&gt;$enable_global_cache = 1;    # enable use of libdb-based cache if $enable_db=1&lt;br /&gt;&lt;br /&gt;$inet_socket_port = 10024;   # default listening socket&lt;br /&gt;&lt;br /&gt;$sa_spam_subject_tag = '***SPAM*** ';&lt;br /&gt;$sa_tag_level_deflt  = 2.0;  # add spam info headers if at, or above that level&lt;br /&gt;$sa_tag2_level_deflt = 6.31; # add 'spam detected' headers at that level&lt;br /&gt;$sa_kill_level_deflt = 6.31; # triggers spam evasive actions&lt;br /&gt;$sa_dsn_cutoff_level = 10;   # spam level beyond which a DSN is not sent&lt;br /&gt;[...]&lt;br /&gt;$final_virus_destiny      = D_DISCARD;  # (data not lost, see virus quarantine)&lt;br /&gt;$final_banned_destiny     = D_BOUNCE;   # D_REJECT when front-end MTA&lt;br /&gt;$final_spam_destiny       = D_BOUNCE;&lt;br /&gt;$final_bad_header_destiny = D_PASS;     # False-positive prone (for spam)&lt;br /&gt;[...]&lt;/pre&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Finally, edit &lt;span class="system"&gt;/etc/amavis/conf.d/50-user&lt;/span&gt; and add the line &lt;span class="system"&gt;$pax='pax';&lt;/span&gt; in the middle:&lt;br /&gt;&lt;div class="command"&gt;vi /etc/amavis/conf.d/50-user&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;         &lt;td class=""&gt;&lt;pre&gt;use strict;&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# Place your configuration directives here.  They will override those in&lt;br /&gt;# earlier files.&lt;br /&gt;#&lt;br /&gt;# See /usr/share/doc/amavisd-new/ for documentation and examples of&lt;br /&gt;# the directives you can use in this file&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;$pax='pax';&lt;br /&gt;&lt;br /&gt;#------------ Do not modify anything below this line -------------&lt;br /&gt;1;  # ensure a defined return&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Afterwards, run these commands to add the &lt;span class="system"&gt;clamav&lt;/span&gt; user to the &lt;span class="system"&gt;amavis&lt;/span&gt; group and to restart amavisd-new and ClamAV: &lt;br /&gt;&lt;div class="command"&gt;adduser clamav amavis&lt;br /&gt;/etc/init.d/amavis restart&lt;br /&gt;/etc/init.d/clamav-daemon restart&lt;br /&gt;/etc/init.d/clamav-freshclam restart&lt;/div&gt;Now we have to configure Postfix to pipe incoming email through amavisd-new:&lt;br /&gt;&lt;div class="command"&gt;postconf -e 'content_filter = amavis:[127.0.0.1]:10024'&lt;br /&gt;postconf -e 'receive_override_options = no_address_mappings'&lt;/div&gt;Afterwards append the following lines to &lt;span class="system"&gt;/etc/postfix/master.cf&lt;/span&gt;:&lt;br /&gt;&lt;div class="command"&gt;vi /etc/postfix/master.cf&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;     &lt;td class=""&gt;&lt;pre&gt;[...]&lt;br /&gt;amavis unix - - - - 2 smtp&lt;br /&gt;        -o smtp_data_done_timeout=1200&lt;br /&gt;        -o smtp_send_xforward_command=yes&lt;br /&gt;&lt;br /&gt;127.0.0.1:10025 inet n - - - - smtpd&lt;br /&gt;        -o content_filter=&lt;br /&gt;        -o local_recipient_maps=&lt;br /&gt;        -o relay_recipient_maps=&lt;br /&gt;        -o smtpd_restriction_classes=&lt;br /&gt;        -o smtpd_client_restrictions=&lt;br /&gt;        -o smtpd_helo_restrictions=&lt;br /&gt;        -o smtpd_sender_restrictions=&lt;br /&gt;        -o smtpd_recipient_restrictions=permit_mynetworks,reject&lt;br /&gt;        -o mynetworks=127.0.0.0/8&lt;br /&gt;        -o strict_rfc821_envelopes=yes&lt;br /&gt;        -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks&lt;br /&gt;        -o smtpd_bind_address=127.0.0.1&lt;/pre&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Then restart Postfix:&lt;br /&gt;&lt;div class="command"&gt;/etc/init.d/postfix restart&lt;/div&gt;Now run&lt;br /&gt;&lt;div class="command"&gt;netstat -tap&lt;/div&gt;and you should see Postfix (&lt;span class="system"&gt;master&lt;/span&gt;) listening on port 25 (&lt;span class="system"&gt;smtp&lt;/span&gt;) and 10025, and amavisd-new on port 10024:&lt;br /&gt;&lt;div class="system"&gt;root@server1:/etc/courier#&amp;nbsp;netstat&amp;nbsp;-tap&lt;br /&gt;Active&amp;nbsp;Internet&amp;nbsp;connections&amp;nbsp;(servers&amp;nbsp;and&amp;nbsp;established)&lt;br /&gt;Proto&amp;nbsp;Recv-Q&amp;nbsp;Send-Q&amp;nbsp;Local&amp;nbsp;Address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Foreign&amp;nbsp;Address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;State&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PID/Program&amp;nbsp;name&lt;br /&gt;tcp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;*:mysql&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*:*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17431/mysqld&lt;br /&gt;tcp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;*:www&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*:*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3543/apache2&lt;br /&gt;tcp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;*:ssh&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*:*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;532/sshd&lt;br /&gt;tcp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;*:smtp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*:*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;21581/master&lt;br /&gt;tcp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;localhost.localdo:10024&amp;nbsp;*:*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20454/amavisd&amp;nbsp;(mast&lt;br /&gt;tcp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;localhost.localdo:10025&amp;nbsp;*:*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;21581/master&lt;br /&gt;tcp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;52&amp;nbsp;server1.example.com:ssh&amp;nbsp;192.168.0.200:4604&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ESTABLISHED&amp;nbsp;624/0&lt;br /&gt;tcp6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;[::]:pop3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[::]:*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17891/couriertcpd&lt;br /&gt;tcp6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;[::]:imap2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[::]:*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17831/couriertcpd&lt;br /&gt;tcp6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;[::]:ssh&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[::]:*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;532/sshd&lt;br /&gt;tcp6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;[::]:imaps&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[::]:*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17864/couriertcpd&lt;br /&gt;tcp6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;[::]:pop3s&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[::]:*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17924/couriertcpd&lt;br /&gt;root@server1:/etc/courier#&lt;/div&gt;&lt;div class="system"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3&gt;10 Install Razor, Pyzor And DCC And Configure SpamAssassin&lt;/h3&gt;Razor, Pyzor and DCC are spamfilters that use a collaborative filtering network. To install Razor and Pyzor, run &lt;br /&gt;&lt;div class="command"&gt;aptitude install razor pyzor&lt;/div&gt;&lt;br /&gt;DCC isn't available in the Ubuntu 10.04 repositories, so we install it as follows: &lt;br /&gt;&lt;div class="command"&gt;cd /tmp&lt;br /&gt;wget http://www.dcc-servers.net/dcc/source/dcc-dccproc.tar.Z&lt;br /&gt;tar xzvf dcc-dccproc.tar.Z&lt;br /&gt;cd dcc-dccproc-1.3.126&lt;br /&gt;./configure --with-uid=amavis&lt;br /&gt;make&lt;br /&gt;make install&lt;br /&gt;chown -R amavis:amavis /var/dcc&lt;br /&gt;ln -s /var/dcc/libexec/dccifd /usr/local/bin/dccifd&lt;/div&gt;Now we have to tell SpamAssassin to use these three programs. Edit &lt;span class="system"&gt;/etc/spamassassin/local.cf&lt;/span&gt; and add the following lines to it:&lt;br /&gt;&lt;div class="command"&gt;vi /etc/spamassassin/local.cf&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;     &lt;td class=""&gt;&lt;pre&gt;[...]&lt;br /&gt;#dcc&lt;br /&gt;use_dcc 1&lt;br /&gt;dcc_path /usr/local/bin/dccproc&lt;br /&gt;&lt;br /&gt;#pyzor&lt;br /&gt;use_pyzor 1&lt;br /&gt;pyzor_path /usr/bin/pyzor&lt;br /&gt;&lt;br /&gt;#razor&lt;br /&gt;use_razor2 1&lt;br /&gt;razor_config /etc/razor/razor-agent.conf&lt;br /&gt;&lt;br /&gt;#bayes&lt;br /&gt;use_bayes 1&lt;br /&gt;use_bayes_rules 1&lt;br /&gt;bayes_auto_learn 1&lt;/pre&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Then we must enable the DCC plugin in SpamAssassin. Open &lt;span class="system"&gt;/etc/spamassassin/v310.pre&lt;/span&gt; and uncomment the &lt;span class="system"&gt;loadplugin Mail::SpamAssassin::Plugin::DCC&lt;/span&gt; line:&lt;br /&gt;&lt;div class="command"&gt;vi /etc/spamassassin/v310.pre&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;     &lt;td class=""&gt;&lt;pre&gt;[...]&lt;br /&gt;# DCC - perform DCC message checks.&lt;br /&gt;#&lt;br /&gt;# DCC is disabled here because it is not open source.  See the DCC&lt;br /&gt;# license for more details.&lt;br /&gt;#&lt;br /&gt;loadplugin Mail::SpamAssassin::Plugin::DCC&lt;br /&gt;[...]&lt;/pre&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;You can check your SpamAssassin configuration by executing:&lt;br /&gt;&lt;div class="command"&gt;spamassassin --lint&lt;/div&gt;It shouldn't show any errors. &lt;br /&gt;Restart amavisd-new afterwards:&lt;br /&gt;&lt;div class="command"&gt;/etc/init.d/amavis restart&lt;/div&gt;Now we update our SpamAssassin rulesets as follows:&lt;br /&gt;&lt;div class="command"&gt;sa-update --no-gpg&lt;/div&gt;We create a cron job so that the rulesets will be updated regularly. Run&lt;br /&gt;&lt;div class="command"&gt;crontab -e&lt;/div&gt;to open the cron job editor. Create the following cron job:&lt;br /&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;     &lt;td class=""&gt;&lt;pre&gt;23 4 */2 * * /usr/bin/sa-update --no-gpg &amp;amp;&amp;gt; /dev/null&lt;/pre&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;This will update the rulesets every second day at 4.23h.&lt;br /&gt;&amp;nbsp;     &lt;br /&gt;&lt;h3&gt;11 Quota Exceedance Notifications&lt;/h3&gt;If you want to get notifications about all the email accounts that are over quota, then create the file &lt;span class="system"&gt;/usr/local/sbin/quota_notify&lt;/span&gt;: &lt;br /&gt;&lt;div class="command"&gt;cd /usr/local/sbin/&lt;br /&gt;vi quota_notify&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;     &lt;td class=""&gt;&lt;pre&gt;#!/usr/bin/perl -w&lt;br /&gt;&lt;br /&gt;# Author &lt;jps@tntmax.com&gt;&lt;br /&gt;#&lt;br /&gt;# This script assumes that virtual_mailbox_base in defined&lt;br /&gt;# in postfix's main.cf file. This directory is assumed to contain&lt;br /&gt;# directories which themselves contain your virtual user's maildirs.&lt;br /&gt;# For example:&lt;br /&gt;#&lt;br /&gt;# -----------/&lt;br /&gt;#            |&lt;br /&gt;#            |&lt;br /&gt;#    home/vmail/domains/&lt;br /&gt;#        |          |&lt;br /&gt;#        |          |&lt;br /&gt;#  example.com/  foo.com/&lt;br /&gt;#                   |&lt;br /&gt;#                   |&lt;br /&gt;#           -----------------&lt;br /&gt;#           |       |       |&lt;br /&gt;#           |       |       |&lt;br /&gt;#         user1/   user2/  user3/&lt;br /&gt;#                           |&lt;br /&gt;#                           |&lt;br /&gt;#                        maildirsize&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;use strict;&lt;br /&gt;&lt;br /&gt;my $POSTFIX_CF = "/etc/postfix/main.cf";&lt;br /&gt;my $MAILPROG = "/usr/sbin/sendmail -t";&lt;br /&gt;my $WARNPERCENT = 80;&lt;br /&gt;my @POSTMASTERS = ('postmaster@domain.tld');&lt;br /&gt;my $CONAME = 'My Company';&lt;br /&gt;my $COADDR = 'postmaster@domain.tld';&lt;br /&gt;my $SUADDR = 'postmaster@domain.tld';&lt;br /&gt;my $MAIL_REPORT = 1;&lt;br /&gt;my $MAIL_WARNING = 1;&lt;br /&gt;&lt;br /&gt;#get virtual mailbox base from postfix config&lt;br /&gt;open(PCF, "&amp;lt; $POSTFIX_CF") or die $!;&lt;br /&gt;my $mboxBase;&lt;br /&gt;while (&lt;pcf&gt;) {&lt;br /&gt;   next unless /virtual_mailbox_base\s*=\s*(.*)\s*/;&lt;br /&gt;   $mboxBase = $1;&lt;br /&gt;}&lt;br /&gt;close(PCF);&lt;br /&gt;&lt;br /&gt;#assume one level of subdirectories for domain names&lt;br /&gt;my @domains;&lt;br /&gt;opendir(DIR, $mboxBase) or die $!;&lt;br /&gt;while (defined(my $name = readdir(DIR))) {&lt;br /&gt;   next if $name =~ /^\.\.?$/;        #skip '.' and '..'&lt;br /&gt;   next unless (-d "$mboxBase/$name");&lt;br /&gt;   push(@domains, $name);&lt;br /&gt;}&lt;br /&gt;closedir(DIR);&lt;br /&gt;#iterate through domains for username/maildirsize files&lt;br /&gt;my @users;&lt;br /&gt;chdir($mboxBase);&lt;br /&gt;foreach my $domain (@domains) {&lt;br /&gt;        opendir(DIR, $domain) or die $!;&lt;br /&gt;        while (defined(my $name = readdir(DIR))) {&lt;br /&gt;           next if $name =~ /^\.\.?$/;        #skip '.' and '..'&lt;br /&gt;           next unless (-d "$domain/$name");&lt;br /&gt;      push(@users, {"$name\@$domain" =&amp;gt; "$mboxBase/$domain/$name"});&lt;br /&gt;        }&lt;br /&gt;}&lt;br /&gt;closedir(DIR);&lt;br /&gt;&lt;br /&gt;#get user quotas and percent used&lt;br /&gt;my (%lusers, $report);&lt;br /&gt;foreach my $href (@users) {&lt;br /&gt;   foreach my $user (keys %$href) {&lt;br /&gt;      my $quotafile = "$href-&amp;gt;{$user}/maildirsize";&lt;br /&gt;      next unless (-f $quotafile);&lt;br /&gt;      open(QF, "&amp;lt; $quotafile") or die $!;&lt;br /&gt;      my ($firstln, $quota, $used);&lt;br /&gt;      while (&lt;qf&gt;) {&lt;br /&gt;         my $line = $_;&lt;br /&gt;              if (! $firstln) {&lt;br /&gt;                 $firstln = 1;&lt;br /&gt;                 die "Error: corrupt quotafile $quotafile"&lt;br /&gt;                    unless ($line =~ /^(\d+)S/);&lt;br /&gt;                 $quota = $1;&lt;br /&gt;            last if (! $quota);&lt;br /&gt;            next;&lt;br /&gt;         }&lt;br /&gt;         die "Error: corrupt quotafile $quotafile"&lt;br /&gt;            unless ($line =~ /\s*(-?\d+)/);&lt;br /&gt;         $used += $1;&lt;br /&gt;      }&lt;br /&gt;      close(QF);&lt;br /&gt;      next if (! $used);&lt;br /&gt;      my $percent = int($used / $quota * 100);&lt;br /&gt;      $lusers{$user} = $percent unless not $percent;&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#send a report to the postmasters&lt;br /&gt;if ($MAIL_REPORT) {&lt;br /&gt;   open(MAIL, "| $MAILPROG");&lt;br /&gt;   select(MAIL);&lt;br /&gt;   map {print "To: $_\n"} @POSTMASTERS;&lt;br /&gt;   print "From: $COADDR\n";&lt;br /&gt;   print "Subject: Daily Quota Report.\n";&lt;br /&gt;   print "DAILY QUOTA REPORT:\n\n";&lt;br /&gt;   print "----------------------------------------------\n";&lt;br /&gt;   print "| % USAGE |            ACCOUNT NAME          |\n";&lt;br /&gt;   print "----------------------------------------------\n";&lt;br /&gt;   foreach my $luser ( sort { $lusers{$b} &amp;lt;=&amp;gt; $lusers{$a} } keys %lusers ) {&lt;br /&gt;      printf("|   %3d   | %32s |\n", $lusers{$luser}, $luser);&lt;br /&gt;      print "---------------------------------------------\n";&lt;br /&gt;   }&lt;br /&gt;        print "\n--\n";&lt;br /&gt;        print "$CONAME\n";&lt;br /&gt;        close(MAIL);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#email a warning to people over quota&lt;br /&gt;if ($MAIL_WARNING) {&lt;br /&gt;        foreach my $luser (keys (%lusers)) {&lt;br /&gt;           next unless $lusers{$luser} &amp;gt;= $WARNPERCENT;       # skip those under quota&lt;br /&gt;           open(MAIL, "| $MAILPROG");&lt;br /&gt;           select(MAIL);&lt;br /&gt;           print "To: $luser\n";&lt;br /&gt;      map {print "BCC: $_\n"} @POSTMASTERS;&lt;br /&gt;           print "From: $SUADDR\n";&lt;br /&gt;           print "Subject: WARNING: Your mailbox is $lusers{$luser}% full.\n";&lt;br /&gt;           print "Reply-to: $SUADDR\n";&lt;br /&gt;           print "Your mailbox: $luser is $lusers{$luser}% full.\n\n";&lt;br /&gt;           print "Once your e-mail box has exceeded your monthly storage quota\n";&lt;br /&gt;      print "your monthly billing will be automatically adjusted.\n";&lt;br /&gt;      print "Please consider deleting e-mail and emptying your trash folder to clear some space.\n\n";&lt;br /&gt;           print "Contact &amp;lt;$SUADDR&amp;gt; for further assistance.\n\n";&lt;br /&gt;           print "Thank You.\n\n";&lt;br /&gt;           print "--\n";&lt;br /&gt;           print "$CONAME\n";&lt;br /&gt;           close(MAIL);&lt;br /&gt;        }&lt;br /&gt;}&lt;/qf&gt;&lt;/pcf&gt;&lt;/jps@tntmax.com&gt;&lt;/pre&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Make sure that you adjust the variables at the top (especially the &lt;span class="system"&gt;postmaster@domain.tld&lt;/span&gt; email address).&lt;br /&gt;We must make the file executable:&lt;br /&gt;&lt;div class="command"&gt;chmod 755 quota_notify &lt;/div&gt;Run&lt;br /&gt;&lt;div class="command"&gt;crontab -e&lt;/div&gt;to create a cron job for that script: &lt;br /&gt;&lt;pre&gt;0 0 * * * /usr/local/sbin/quota_notify &amp;amp;&amp;gt; /dev/null&lt;/pre&gt;&lt;h3&gt;12 Test Postfix&lt;/h3&gt;To see if Postfix is ready for SMTP-AUTH and TLS, run&lt;br /&gt;&lt;div class="command"&gt;telnet localhost 25&lt;/div&gt;After you have established the connection to your Postfix mail server type&lt;br /&gt;&lt;div class="command"&gt;ehlo localhost&lt;/div&gt;If you see the lines&lt;br /&gt;&lt;div class="system"&gt;250-STARTTLS&lt;/div&gt;and&lt;br /&gt;&lt;div class="system"&gt;250-AUTH LOGIN PLAIN&lt;/div&gt;everything is fine:&lt;br /&gt;&lt;div class="system"&gt;root@server1:/usr/local/sbin# telnet localhost 25&lt;br /&gt;Trying ::1...&lt;br /&gt;Trying 127.0.0.1...&lt;br /&gt;Connected to localhost.&lt;br /&gt;Escape character is '^]'.&lt;br /&gt;220 server1.example.com ESMTP Postfix (Ubuntu)&lt;br /&gt;ehlo localhost&lt;br /&gt;250-server1.example.com&lt;br /&gt;250-PIPELINING&lt;br /&gt;250-SIZE 10240000&lt;br /&gt;250-VRFY&lt;br /&gt;250-ETRN&lt;br /&gt;250-STARTTLS&lt;br /&gt;250-AUTH LOGIN PLAIN&lt;br /&gt;250-AUTH=LOGIN PLAIN&lt;br /&gt;250-ENHANCEDSTATUSCODES&lt;br /&gt;250-8BITMIME&lt;br /&gt;250 DSN&lt;br /&gt;quit&lt;br /&gt;221 2.0.0 Bye&lt;br /&gt;Connection closed by foreign host.&lt;br /&gt;root@server1:/usr/local/sbin#&lt;/div&gt;Type&lt;br /&gt;&lt;div class="command"&gt;quit&lt;/div&gt;to return to the system shell.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;13 Populate The Database And Test&lt;/h3&gt;To populate the database you can use the MySQL shell: &lt;br /&gt;&lt;div class="command"&gt;mysql -u root -p&lt;/div&gt;&lt;div class="command"&gt;  USE mail;&lt;/div&gt;At least you have to create entries in the tables &lt;em class="system"&gt;domains &lt;/em&gt; and &lt;em class="system"&gt;users&lt;/em&gt;: &lt;br /&gt;&lt;div class="command"&gt;INSERT INTO `domains` (`domain`) VALUES ('example.com');&lt;br /&gt;INSERT INTO `users` (`email`, `password`, `quota`) VALUES ('sales@example.com', ENCRYPT('secret'), 10485760);&lt;/div&gt;(Please take care that you use the &lt;span class="system"&gt;ENCRYPT&lt;/span&gt; syntax in the second &lt;span class="system"&gt;INSERT&lt;/span&gt; statement in order to encrypt the password!)&lt;br /&gt;If you want to make entries in the other two tables, that would look like this:&lt;br /&gt;&lt;div class="command"&gt;INSERT INTO `forwardings` (`source`, `destination`) VALUES ('info@example.com', 'sales@example.com');&lt;br /&gt;INSERT INTO `transport` (`domain`, `transport`) VALUES ('example.com', 'smtp:mail.example.com');&lt;/div&gt;&lt;br /&gt;To leave the MySQL shell, type&lt;br /&gt;&lt;div class="command"&gt;quit;&lt;/div&gt;For most people it is easier if they have a graphical front-end to MySQL; therefore you can also use phpMyAdmin (in this example under &lt;em class="system"&gt;http://192.168.0.100/phpmyadmin/ &lt;/em&gt;or &lt;span class="system"&gt;http://server1.example.com/phpmyadmin/&lt;/span&gt;) to administrate the &lt;em class="system"&gt;mail &lt;/em&gt; database. Again, when you create a user, go sure that you use the &lt;span class="system"&gt;ENCRYPT &lt;/span&gt; function to encrypt the password: &lt;br /&gt;&lt;img height="189" src="http://static.howtoforge.com/images/virtual_users_and_domains_with_postfix_on_ubuntu_10.04/1.png" width="550" /&gt;&lt;br /&gt;I do not think I have to explain the &lt;span class="system"&gt;domains &lt;/span&gt; and &lt;span class="system"&gt;users &lt;/span&gt; table further. &lt;br /&gt;The &lt;span class="system"&gt;forwardings &lt;/span&gt; table can have entries like the following: &lt;br /&gt;&lt;table border="1" cellpadding="5" cellspacing="0" class="" style="border: 1px solid rgb(0, 0, 0);"&gt;&lt;tbody&gt;&lt;tr&gt;     &lt;td class=""&gt;&lt;em&gt;&lt;strong&gt;source &lt;/strong&gt;&lt;/em&gt;&lt;/td&gt;     &lt;td class=""&gt;&lt;em&gt;&lt;strong&gt;destination &lt;/strong&gt;&lt;/em&gt;&lt;/td&gt;     &lt;td class=""&gt;&amp;nbsp;&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;     &lt;td class=""&gt;info@example.com &lt;/td&gt;     &lt;td class=""&gt;sales@example.com &lt;/td&gt;     &lt;td class=""&gt;Redirects emails for info@example.com to sales@example.com &lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;     &lt;td class=""&gt;@example.com &lt;/td&gt;     &lt;td class=""&gt;thomas@example.com &lt;/td&gt;     &lt;td class=""&gt;Creates a &lt;span class="system"&gt;Catch-All &lt;/span&gt; account for thomas@example.com. All emails to example.com will arrive at thomas@example.com, except those that exist in the &lt;span class="system"&gt;users &lt;/span&gt; table (i.e., if sales@example.com exists in the &lt;span class="system"&gt;users &lt;/span&gt; table, mails to sales@example.com will still arrive at sales@example.com). &lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;     &lt;td class=""&gt;@example.com &lt;/td&gt;     &lt;td class=""&gt;@anotherdomain.tld &lt;/td&gt;     &lt;td class=""&gt;This redirects all emails to example.com to the same user at anotherdomain.tld. E.g., emails to thomas@example.com will be forwarded to thomas@anotherdomain.tld. &lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;     &lt;td class=""&gt;info@example.com &lt;/td&gt;     &lt;td class=""&gt;sales@example.com, billing@anotherdomain.tld &lt;/td&gt;     &lt;td class=""&gt;Forward emails for info@example.com to two or more email addresses. All listed email addresses under &lt;span class="system"&gt;destination &lt;/span&gt; receive a copy of the email. &lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;The &lt;span class="system"&gt;transport &lt;/span&gt; table can have entries like these: &lt;br /&gt;&lt;table border="1" cellpadding="5" cellspacing="0" class="" style="border: 1px solid rgb(0, 0, 0);"&gt;&lt;tbody&gt;&lt;tr&gt;     &lt;td class=""&gt;&lt;em&gt;&lt;strong&gt;domain &lt;/strong&gt;&lt;/em&gt;&lt;/td&gt;     &lt;td class=""&gt;&lt;em&gt;&lt;strong&gt;transport &lt;/strong&gt;&lt;/em&gt;&lt;/td&gt;     &lt;td class=""&gt;&amp;nbsp;&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;     &lt;td class=""&gt;example.com &lt;/td&gt;     &lt;td class=""&gt;: &lt;/td&gt;     &lt;td class=""&gt;Delivers emails for example.com locally. This is as if this record would not exist in this table at all. &lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;     &lt;td class=""&gt;example.com &lt;/td&gt;     &lt;td class=""&gt;smtp:mail.anotherdomain.tld &lt;/td&gt;     &lt;td class=""&gt;Delivers all emails for example.com via smtp to the server mail.anotherdomain.com. &lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;     &lt;td class=""&gt;example.com &lt;/td&gt;     &lt;td class=""&gt;smtp:mail.anotherdomain.tld:2025 &lt;/td&gt;     &lt;td class=""&gt;Delivers all emails for example.com via smtp to the server mail.anotherdomain.com, but on port 2025, not 25 which is the default port for smtp. &lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;     &lt;td class=""&gt;example.com &lt;/td&gt;     &lt;td class=""&gt;smtp:[1.2.3.4] &lt;br /&gt;smtp:[1.2.3.4]:2025 &lt;br /&gt;smtp:[mail.anotherdomain.tld] &lt;/td&gt;     &lt;td class=""&gt;The square brackets prevent Postfix from doing lookups of the MX DNS record for the address in square brackets. Makes sense for IP addresses. &lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;     &lt;td class=""&gt;.example.com &lt;/td&gt;     &lt;td class=""&gt;smtp:mail.anotherdomain.tld &lt;/td&gt;     &lt;td class=""&gt;Mail for any subdomain of example.com is delivered to mail.anotherdomain.tld. &lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;     &lt;td class=""&gt;* &lt;/td&gt;     &lt;td class=""&gt;smtp:mail.anotherdomain.tld &lt;/td&gt;     &lt;td class=""&gt;All emails are delivered to mail.anotherdomain.tld. &lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;     &lt;td class=""&gt;joe@example.com &lt;/td&gt;     &lt;td class=""&gt;smtp:mail.anotherdomain.tld &lt;/td&gt;     &lt;td class=""&gt;Emails for joe@example.com are delivered to mail.anotherdomain.tld. &lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;See &lt;br /&gt;&lt;div class="command"&gt;man transport &lt;/div&gt;for more details. &lt;br /&gt;Please keep in mind that the order of entries in the &lt;span class="system"&gt;transport &lt;/span&gt; table is important! The entries will be followed from the top to the bottom. &lt;br /&gt;&lt;strong&gt;Important: &lt;/strong&gt; Postfix uses a caching mechanism for the transports, therefore it might take a while until you changes in the &lt;span class="system"&gt;transport &lt;/span&gt; table take effect. If you want them to take effect immediately, run &lt;br /&gt;&lt;div class="command"&gt;postfix reload &lt;/div&gt;after you have made your changes in the &lt;span class="system"&gt;transport &lt;/span&gt; table. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;14 Send A Welcome Email For Creating Maildir&lt;/h3&gt;When you create a new email account and try to fetch emails from it (with POP3/IMAP) you will probably get error messages saying that the Maildir doesn't exist. The Maildir is created automatically when the first email arrives for the new account. Therefore it's a good idea to send a welcome email to a new account. &lt;br /&gt;First, we install the &lt;span class="system"&gt;mailx&lt;/span&gt; package:&lt;br /&gt;&lt;div class="command"&gt;aptitude install mailutils&lt;/div&gt;To send a welcome email to &lt;span class="system"&gt;sales@example.com&lt;/span&gt;, we do this:&lt;br /&gt;&lt;div class="command"&gt;mailx sales@example.com&lt;/div&gt;You will be prompted for the subject. Type in the subject (e.g. &lt;span class="system"&gt;Welcome&lt;/span&gt;), then press &lt;span class="system"&gt;ENTER&lt;/span&gt;, and in the next line type your message. When the message is finished, press &lt;span class="system"&gt;ENTER&lt;/span&gt; again so that you are in a new line, then press &lt;span class="system"&gt;CTRL+D&lt;/span&gt;; if you don't want to cc the mail, press &lt;span class="system"&gt;ENTER&lt;/span&gt; again: &lt;br /&gt;&lt;span class="system"&gt;root@server1:/usr/local/sbin# mailx sales@example.com&lt;br /&gt;Cc:&lt;/span&gt; &lt;span class="highlight"&gt;&amp;lt;-- ENTER&lt;/span&gt;&lt;br /&gt;&lt;span class="system"&gt;Subject: Welcome&lt;/span&gt; &lt;span class="highlight"&gt;&amp;lt;-- ENTER&lt;/span&gt;&lt;br /&gt;&lt;span class="system"&gt;Welcome! Have fun with your new mail account.&lt;/span&gt; &lt;span class="highlight"&gt;&amp;lt;-- ENTER&lt;/span&gt;&lt;br /&gt;&lt;span class="highlight"&gt;&amp;lt;-- CTRL+D&lt;/span&gt;&lt;br /&gt;&lt;span class="system"&gt;root@server1:/usr/local/sbin#&lt;/span&gt;&lt;br /&gt;&lt;h3&gt;15 Installing SquirrelMail&lt;/h3&gt;SquirrelMail is a webmail interface that will let your users send and receive emails in a browser. This chapter shows how to install it and adjust it to our setup so that users can even change their email account password from the SquirrelMail interface.&lt;br /&gt;To install SquirrelMail, we run:&lt;br /&gt;&lt;div class="command"&gt;aptitude install squirrelmail php-pear&lt;/div&gt;Next we copy the Apache configuration that comes with the SquirrelMail package to the &lt;span class="system"&gt;/etc/apache2/conf.d&lt;/span&gt; directory and restart Apache: &lt;br /&gt;&lt;div class="command"&gt;cp /etc/squirrelmail/apache.conf /etc/apache2/conf.d/squirrelmail.conf&lt;br /&gt;/etc/init.d/apache2 restart&lt;/div&gt;SquirrelMail comes with some pre-installed plugins, unfortunately none of them is capable of letting us change our email password in our MySQL database. But there's the &lt;a href="http://www.squirrelmail.org/plugin_view.php?id=25" target="_blank"&gt;Change SQL Password plugin&lt;/a&gt; which we can install manually:&lt;br /&gt;The plugin depends on the Pear-DB package so we install it:&lt;br /&gt;&lt;div class="command"&gt;pear install DB&lt;/div&gt;Then we install the &lt;span class="system"&gt;Change SQL Password&lt;/span&gt; plugin itself:&lt;br /&gt;&lt;div class="command"&gt;cd /usr/share/squirrelmail/plugins&lt;br /&gt;wget http://www.squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fchange_sqlpass-3.3-1.2.tar.gz&lt;br /&gt;tar xvfz change_sqlpass-3.3-1.2.tar.gz&lt;br /&gt;cd change_sqlpass&lt;br /&gt;cp config.php.sample config.php&lt;/div&gt;Now we must edit &lt;span class="system"&gt;config.php&lt;/span&gt; and adjust it to our setup. Please adjust the &lt;span class="system"&gt;$csp_dsn&lt;/span&gt;, &lt;span class="system"&gt;$lookup_password_query&lt;/span&gt;, &lt;span class="system"&gt;$password_update_queries&lt;/span&gt;, &lt;span class="system"&gt;$password_encryption&lt;/span&gt;, &lt;span class="system"&gt;$csp_salt_static&lt;/span&gt;, and &lt;span class="system"&gt;$csp_delimiter&lt;/span&gt; variables as follows and comment out &lt;span class="system"&gt;$csp_salt_query&lt;/span&gt;:&lt;br /&gt;&lt;div class="command"&gt;vi config.php&lt;/div&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;     &lt;td class=""&gt;       &lt;pre&gt;[...]&lt;br /&gt;$csp_dsn = 'mysql://mail_admin:mail_admin_password@localhost/mail';&lt;br /&gt;[...]&lt;br /&gt;$lookup_password_query = 'SELECT count(*) FROM users WHERE email = "%1" AND password = %4';&lt;br /&gt;[...]&lt;br /&gt;$password_update_queries = array('UPDATE users SET password = %4 WHERE email = "%1"');&lt;br /&gt;[...]&lt;br /&gt;$password_encryption = 'MYSQLENCRYPT';&lt;br /&gt;[...]&lt;br /&gt;$csp_salt_static = 'LEFT(password, 2)';&lt;br /&gt;[...]&lt;br /&gt;//$csp_salt_query = 'SELECT salt FROM users WHERE username = "%1"';&lt;br /&gt;[...]&lt;br /&gt;$csp_delimiter = '@';&lt;br /&gt;[...]&lt;/pre&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;The complete file looks as follows:&lt;br /&gt;&lt;table align="center" bgcolor="#cccccc" border="1" cellpadding="2" cellspacing="0" class=""&gt;&lt;tbody&gt;&lt;tr&gt;     &lt;td class=""&gt;       &lt;pre&gt;/**&lt;br /&gt;  * SquirrelMail Change SQL Password Plugin&lt;br /&gt;  * Copyright (C) 2001-2002 Tyler Akins&lt;br /&gt;  *               2002 Thijs Kinkhorst &lt;kink@users.sourceforge.net&gt;&lt;br /&gt;  *               2002-2005 Paul Lesneiwski &lt;paul@openguild.net&gt;&lt;br /&gt;  * This program is licensed under GPL. See COPYING for details&lt;br /&gt;  *&lt;br /&gt;  * @package plugins&lt;br /&gt;  * @subpackage Change SQL Password&lt;br /&gt;  *&lt;br /&gt;  */&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   // Global Variables, don't touch these unless you want to break the plugin&lt;br /&gt;   //&lt;br /&gt;   global $csp_dsn, $password_update_queries, $lookup_password_query,&lt;br /&gt;          $force_change_password_check_query, $password_encryption,&lt;br /&gt;          $csp_salt_query, $csp_salt_static, $csp_secure_port,&lt;br /&gt;          $csp_non_standard_http_port, $csp_delimiter, $csp_debug,&lt;br /&gt;          $min_password_length, $max_password_length, $include_digit_in_password,&lt;br /&gt;          $include_uppercase_letter_in_password, $include_lowercase_letter_in_password,&lt;br /&gt;          $include_nonalphanumeric_in_password;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   // csp_dsn&lt;br /&gt;   //&lt;br /&gt;   // Theoretically, any SQL database supported by Pear should be supported&lt;br /&gt;   // here.  The DSN (data source name) must contain the information needed&lt;br /&gt;   // to connect to your database backend. A MySQL example is included below.&lt;br /&gt;   // For more details about DSN syntax and list of supported database types,&lt;br /&gt;   // please see:&lt;br /&gt;   //   http://pear.php.net/manual/en/package.database.db.intro-dsn.php&lt;br /&gt;   //&lt;br /&gt;   //$csp_dsn = 'mysql://user:password@localhost/email_users';&lt;br /&gt;   $csp_dsn = 'mysql://mail_admin:mail_admin_password@localhost/mail';&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   // lookup_password_query&lt;br /&gt;   //&lt;br /&gt;   // This plugin will always verify the user's old password&lt;br /&gt;   // against their login password, but an extra check can also&lt;br /&gt;   // be done against the database for more security if you&lt;br /&gt;   // desire.  If you do not need the extra password check,&lt;br /&gt;   // make sure this setting is empty.&lt;br /&gt;   //&lt;br /&gt;   // This is a query that returns a positive value if a user&lt;br /&gt;   // and password pair are found in the database.&lt;br /&gt;   //&lt;br /&gt;   // This query should return one value (one row, one column), the&lt;br /&gt;   // value being ideally a one or a zero, simply indicating that&lt;br /&gt;   // the user/password pair does in fact exist in the database.&lt;br /&gt;   //&lt;br /&gt;   //   %1 in this query will be replaced with the full username&lt;br /&gt;   //      (including domain), such as "jose@example.com"&lt;br /&gt;   //   %2 in this query will be replaced with the username (without&lt;br /&gt;   //      any domain portion), such as "jose"&lt;br /&gt;   //   %3 in this query will be replaced with the domain name,&lt;br /&gt;   //      such as "example.com"&lt;br /&gt;   //   %4 in this query will be replaced with the current (old)&lt;br /&gt;   //      password in whatever encryption format is needed per other&lt;br /&gt;   //      plugin configuration settings (Note that the syntax of&lt;br /&gt;   //      the password will be provided depending on your encryption&lt;br /&gt;   //      choices, so you NEVER need to provide quotes around this&lt;br /&gt;   //      value in the query here.)&lt;br /&gt;   //   %5 in this query will be replaced with the current (old)&lt;br /&gt;   //      password in unencrypted plain text.  If you do not use any&lt;br /&gt;   //      password encryption, %4 and %5 will be the same values,&lt;br /&gt;   //      except %4 will have double quotes around it and %5 will not.&lt;br /&gt;   //&lt;br /&gt;   //$lookup_password_query = '';&lt;br /&gt;   // TERRIBLE SECURITY: $lookup_password_query = 'SELECT count(*) FROM users WHERE username = "%1" AND plain_password = "%5"';&lt;br /&gt;   //$lookup_password_query = 'SELECT count(*) FROM users WHERE username = "%1" AND crypt_password = %4';&lt;br /&gt;   $lookup_password_query = 'SELECT count(*) FROM users WHERE email = "%1" AND password = %4';&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   // password_update_queries&lt;br /&gt;   //&lt;br /&gt;   // An array of SQL queries that will all be executed&lt;br /&gt;   // whenever a password change attempt is made.&lt;br /&gt;   //&lt;br /&gt;   // Any number of queries may be included here.&lt;br /&gt;   // The queries will be executed in the order given here.&lt;br /&gt;   //&lt;br /&gt;   //   %1 in all queries will be replaced with the full username&lt;br /&gt;   //      (including domain), such as "jose@example.com"&lt;br /&gt;   //   %2 in all queries will be replaced with the username (without&lt;br /&gt;   //      any domain portion), such as "jose"&lt;br /&gt;   //   %3 in all queries will be replaced with the domain name,&lt;br /&gt;   //      such as "example.com"&lt;br /&gt;   //   %4 in all queries will be replaced with the new password&lt;br /&gt;   //      in whatever encryption format is needed per other&lt;br /&gt;   //      plugin configuration settings (Note that the syntax of&lt;br /&gt;   //      the password will be provided depending on your&lt;br /&gt;   //      encryption choices, so you NEVER need to provide quotes&lt;br /&gt;   //      around this value in the queries here.)&lt;br /&gt;   //   %5 in all queries will be replaced with the new password&lt;br /&gt;   //      in unencrypted plain text - BEWARE!  If you do not use&lt;br /&gt;   //      any password encryption, %4 and %5 will be the same&lt;br /&gt;   //      values, except %4 will have double quotes around it&lt;br /&gt;   //      and %5 will not.&lt;br /&gt;   //&lt;br /&gt;//   $password_update_queries = array(&lt;br /&gt;//            'UPDATE users SET crypt_password = %4 WHERE username = "%1"',&lt;br /&gt;//            'UPDATE user_flags SET force_change_pwd = 0 WHERE username = "%1"',&lt;br /&gt;//            'UPDATE users SET crypt_password = %4, force_change_pwd = 0 WHERE username = "%1"',&lt;br /&gt;//                                   );&lt;br /&gt;   $password_update_queries = array('UPDATE users SET password = %4 WHERE email = "%1"');&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   // force_change_password_check_query&lt;br /&gt;   //&lt;br /&gt;   // A query that checks for a flag that indicates if a user&lt;br /&gt;   // should be forced to change their password.  This query&lt;br /&gt;   // should return one value (one row, one column) which is&lt;br /&gt;   // zero if the user does NOT need to change their password,&lt;br /&gt;   // or one if the user should be forced to change it now.&lt;br /&gt;   //&lt;br /&gt;   // This setting should be an empty string if you do not wish&lt;br /&gt;   // to enable this functionality.&lt;br /&gt;   //&lt;br /&gt;   //   %1 in this query will be replaced with the full username&lt;br /&gt;   //      (including domain), such as "jose@example.com"&lt;br /&gt;   //   %2 in this query will be replaced with the username (without&lt;br /&gt;   //      any domain portion), such as "jose"&lt;br /&gt;   //   %3 in this query will be replaced with the domain name,&lt;br /&gt;   //      such as "example.com"&lt;br /&gt;   //&lt;br /&gt;   //$force_change_password_check_query = 'SELECT IF(force_change_pwd = "yes", 1, 0) FROM users WHERE username = "%1"';&lt;br /&gt;   //$force_change_password_check_query = 'SELECT force_change_pwd FROM users WHERE username = "%1"';&lt;br /&gt;   $force_change_password_check_query = '';&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   // password_encryption&lt;br /&gt;   //&lt;br /&gt;   // What encryption method do you use to store passwords&lt;br /&gt;   // in your database?  Please use one of the following,&lt;br /&gt;   // exactly as you see it:&lt;br /&gt;   //&lt;br /&gt;   //   NONE          Passwords are stored as plain text only&lt;br /&gt;   //   MYSQLPWD      Passwords are stored using the MySQL password() function&lt;br /&gt;   //   MYSQLENCRYPT  Passwords are stored using the MySQL encrypt() function&lt;br /&gt;   //   PHPCRYPT      Passwords are stored using the PHP crypt() function&lt;br /&gt;   //   MD5CRYPT      Passwords are stored using encrypted MD5 algorithm&lt;br /&gt;   //   MD5           Passwords are stored as MD5 hash&lt;br /&gt;   //&lt;br /&gt;   //$password_encryption = 'MYSQLPWD';&lt;br /&gt;   $password_encryption = 'MYSQLENCRYPT';&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   // csp_salt_query&lt;br /&gt;   // csp_salt_static&lt;br /&gt;   //&lt;br /&gt;   // Encryption types that need a salt need to know where to get&lt;br /&gt;   // that salt.  If you have a constant, known salt value, you&lt;br /&gt;   // should define it in $csp_salt_static.  Otherwise, leave that&lt;br /&gt;   // value empty and define a value for the $csp_salt_query.&lt;br /&gt;   //&lt;br /&gt;   // Leave both values empty if you do not need (or use) salts&lt;br /&gt;   // to encrypt your passwords.&lt;br /&gt;   //&lt;br /&gt;   // The query should return one value (one row, one column) which&lt;br /&gt;   // is the salt value for the current user's password.  This&lt;br /&gt;   // query is ignored if $csp_salt_static is anything but empty.&lt;br /&gt;   //&lt;br /&gt;   //   %1 in this query will be replaced with the full username&lt;br /&gt;   //      (including domain), such as "jose@example.com"&lt;br /&gt;   //   %2 in this query will be replaced with the username (without&lt;br /&gt;   //      any domain portion), such as "jose"&lt;br /&gt;   //   %3 in this query will be replaced with the domain name,&lt;br /&gt;   //      such as "example.com"&lt;br /&gt;   //&lt;br /&gt;   //$csp_salt_static = 'LEFT(crypt_password, 2)';&lt;br /&gt;   //$csp_salt_static = '"a4"';  // use this format with MYSQLENCRYPT&lt;br /&gt;   //$csp_salt_static = '$2$blowsomefish$';  // use this format with PHPCRYPT&lt;br /&gt;   //$csp_salt_static = '';&lt;br /&gt;   $csp_salt_static = 'LEFT(password, 2)';&lt;br /&gt;&lt;br /&gt;   //$csp_salt_query = 'SELECT SUBSTRING_INDEX(crypt_password, '$', 1) FROM users WHERE username = "%1"';&lt;br /&gt;   //$csp_salt_query = 'SELECT SUBSTRING(crypt_password, (LENGTH(SUBSTRING_INDEX(crypt_password, '$', 2)) + 2)) FROM users WHERE username = "%1"';&lt;br /&gt;   //$csp_salt_query = 'SELECT salt FROM users WHERE username = "%1"';&lt;br /&gt;   //$csp_salt_query = '';&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   // csp_secure_port&lt;br /&gt;   //&lt;br /&gt;   // You may ensure that SSL encryption is used during password&lt;br /&gt;   // change by setting this to the port that your HTTPS is served&lt;br /&gt;   // on (443 is typical).  Set to zero if you do not wish to force&lt;br /&gt;   // an HTTPS connection when users are changing their passwords.&lt;br /&gt;   //&lt;br /&gt;   // You may override this value for certain domains, users, or&lt;br /&gt;   // service levels through the Virtual Host Login (vlogin) plugin&lt;br /&gt;   // by setting a value(s) for $vlogin_csp_secure_port in the vlogin&lt;br /&gt;   // configuration.&lt;br /&gt;   //&lt;br /&gt;   $csp_secure_port = 0;&lt;br /&gt;   //$csp_secure_port = 443;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   // csp_non_standard_http_port&lt;br /&gt;   //&lt;br /&gt;   // If you serve standard HTTP web requests on a non-standard&lt;br /&gt;   // port (anything other than port 80), you should specify that&lt;br /&gt;   // port number here.  Set to zero otherwise.&lt;br /&gt;   //&lt;br /&gt;   // You may override this value for certain domains, users, or&lt;br /&gt;   // service levels through the Virtual Host Login (vlogin) plugin&lt;br /&gt;   // by setting a value(s) for $vlogin_csp_non_standard_http_port&lt;br /&gt;   // in the vlogin configuration.&lt;br /&gt;   //&lt;br /&gt;   //$csp_non_standard_http_port = 8080;&lt;br /&gt;   $csp_non_standard_http_port = 0;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   // min_password_length&lt;br /&gt;   // max_password_length&lt;br /&gt;   // include_digit_in_password&lt;br /&gt;   // include_uppercase_letter_in_password&lt;br /&gt;   // include_lowercase_letter_in_password&lt;br /&gt;   // include_nonalphanumeric_in_password&lt;br /&gt;   //&lt;br /&gt;   // You can set the minimum and maximum password lengths that&lt;br /&gt;   // you accept or leave those settings as zero to indicate that&lt;br /&gt;   // no limit should be applied.&lt;br /&gt;   //&lt;br /&gt;   // Turn on any of the other settings here to check that the&lt;br /&gt;   // new password contains at least one digit, upper case letter,&lt;br /&gt;   // lower case letter and/or one non-alphanumeric character.&lt;br /&gt;   //&lt;br /&gt;   $min_password_length = 6;&lt;br /&gt;   $max_password_length = 0;&lt;br /&gt;   $include_digit_in_password = 0;&lt;br /&gt;   $include_uppercase_letter_in_password = 0;&lt;br /&gt;   $include_lowercase_letter_in_password = 0;&lt;br /&gt;   $include_nonalphanumeric_in_password = 0;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   // csp_delimiter&lt;br /&gt;   //&lt;br /&gt;   // if your system has usernames with something other than&lt;br /&gt;   // an "@" sign separating the user and domain portion,&lt;br /&gt;   // specify that character here&lt;br /&gt;   //&lt;br /&gt;   //$csp_delimiter = '|';&lt;br /&gt;   $csp_delimiter = '@';&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   // debug mode&lt;br /&gt;   //&lt;br /&gt;   $csp_debug = 0;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;/paul@openguild.net&gt;&lt;/kink@users.sourceforge.net&gt;&lt;/pre&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;The &lt;span class="system"&gt;Change SQL Password&lt;/span&gt; plugin also depends on the &lt;a href="http://www.squirrelmail.org/plugin_view.php?id=152" target="_blank"&gt;Compatibility plugin&lt;/a&gt; which we install as follows:&lt;br /&gt;&lt;div class="command"&gt;cd /usr/share/squirrelmail/plugins&lt;br /&gt;wget http://www.squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fcompatibility-2.0.16-1.0.tar.gz&lt;br /&gt;tar xvfz compatibility-2.0.16-1.0.tar.gz&lt;/div&gt;Now we must go into the SquirrelMail configuration and tell SquirrelMail that we use Courier as our POP3 and IMAP server and enable the &lt;span class="system"&gt;Change SQL Password&lt;/span&gt; and the &lt;span class="system"&gt;Compatibility&lt;/span&gt; plugins: &lt;br /&gt;&lt;div class="command"&gt;/usr/sbin/squirrelmail-configure&lt;/div&gt;&lt;br /&gt;You'll see the following menu. Navigate through it as indicated:&lt;br /&gt;&lt;span class="system"&gt;SquirrelMail&amp;nbsp;Configuration&amp;nbsp;:&amp;nbsp;Read:&amp;nbsp;config.php&amp;nbsp;(1.4.0)&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;Main&amp;nbsp;Menu&amp;nbsp;--&lt;br /&gt;1.&amp;nbsp;&amp;nbsp;Organization&amp;nbsp;Preferences&lt;br /&gt;2.&amp;nbsp;&amp;nbsp;Server&amp;nbsp;Settings&lt;br /&gt;3.&amp;nbsp;&amp;nbsp;Folder&amp;nbsp;Defaults&lt;br /&gt;4.&amp;nbsp;&amp;nbsp;General&amp;nbsp;Options&lt;br /&gt;5.&amp;nbsp;&amp;nbsp;Themes&lt;br /&gt;6.&amp;nbsp;&amp;nbsp;Address&amp;nbsp;Books&lt;br /&gt;7.&amp;nbsp;&amp;nbsp;Message&amp;nbsp;of&amp;nbsp;the&amp;nbsp;Day&amp;nbsp;(MOTD)&lt;br /&gt;8.&amp;nbsp;&amp;nbsp;Plugins&lt;br /&gt;9.&amp;nbsp;&amp;nbsp;Database&lt;br /&gt;10.&amp;nbsp;Languages&lt;br /&gt;&lt;br /&gt;D.&amp;nbsp;&amp;nbsp;Set&amp;nbsp;pre-defined&amp;nbsp;settings&amp;nbsp;for&amp;nbsp;specific&amp;nbsp;IMAP&amp;nbsp;servers&lt;br /&gt;&lt;br /&gt;C&amp;nbsp;&amp;nbsp;&amp;nbsp;Turn&amp;nbsp;color&amp;nbsp;on&lt;br /&gt;S&amp;nbsp;&amp;nbsp;&amp;nbsp;Save&amp;nbsp;data&lt;br /&gt;Q&amp;nbsp;&amp;nbsp;&amp;nbsp;Quit&lt;br /&gt;&lt;br /&gt;Command&amp;nbsp;&amp;gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span class="highlight"&gt;&amp;lt;-- D&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="system"&gt;SquirrelMail&amp;nbsp;Configuration&amp;nbsp;:&amp;nbsp;Read:&amp;nbsp;config.php&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;While&amp;nbsp;we&amp;nbsp;have&amp;nbsp;been&amp;nbsp;building&amp;nbsp;SquirrelMail,&amp;nbsp;we&amp;nbsp;have&amp;nbsp;discovered&amp;nbsp;some&lt;br /&gt;preferences&amp;nbsp;that&amp;nbsp;work&amp;nbsp;better&amp;nbsp;with&amp;nbsp;some&amp;nbsp;servers&amp;nbsp;that&amp;nbsp;don't&amp;nbsp;work&amp;nbsp;so&lt;br /&gt;well&amp;nbsp;with&amp;nbsp;others.&amp;nbsp;&amp;nbsp;If&amp;nbsp;you&amp;nbsp;select&amp;nbsp;your&amp;nbsp;IMAP&amp;nbsp;server,&amp;nbsp;this&amp;nbsp;option&amp;nbsp;will&lt;br /&gt;set&amp;nbsp;some&amp;nbsp;pre-defined&amp;nbsp;settings&amp;nbsp;for&amp;nbsp;that&amp;nbsp;server.&lt;br /&gt;&lt;br /&gt;Please&amp;nbsp;note&amp;nbsp;that&amp;nbsp;you&amp;nbsp;will&amp;nbsp;still&amp;nbsp;need&amp;nbsp;to&amp;nbsp;go&amp;nbsp;through&amp;nbsp;and&amp;nbsp;make&amp;nbsp;sure&lt;br /&gt;everything&amp;nbsp;is&amp;nbsp;correct.&amp;nbsp;&amp;nbsp;This&amp;nbsp;does&amp;nbsp;not&amp;nbsp;change&amp;nbsp;everything.&amp;nbsp;&amp;nbsp;There&amp;nbsp;are&lt;br /&gt;only&amp;nbsp;a&amp;nbsp;few&amp;nbsp;settings&amp;nbsp;that&amp;nbsp;this&amp;nbsp;will&amp;nbsp;change.&lt;br /&gt;&lt;br /&gt;Please&amp;nbsp;select&amp;nbsp;your&amp;nbsp;IMAP&amp;nbsp;server:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bincimap&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;Binc&amp;nbsp;IMAP&amp;nbsp;server&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;courier&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;Courier&amp;nbsp;IMAP&amp;nbsp;server&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cyrus&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;Cyrus&amp;nbsp;IMAP&amp;nbsp;server&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dovecot&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;Dovecot&amp;nbsp;Secure&amp;nbsp;IMAP&amp;nbsp;server&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exchange&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;Microsoft&amp;nbsp;Exchange&amp;nbsp;IMAP&amp;nbsp;server&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hmailserver&amp;nbsp;=&amp;nbsp;hMailServer&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;macosx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;Mac&amp;nbsp;OS&amp;nbsp;X&amp;nbsp;Mailserver&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mercury32&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;Mercury/32&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uw&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;University&amp;nbsp;of&amp;nbsp;Washington's&amp;nbsp;IMAP&amp;nbsp;server&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gmail&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;IMAP&amp;nbsp;access&amp;nbsp;to&amp;nbsp;Google&amp;nbsp;mail&amp;nbsp;(Gmail)&amp;nbsp;accounts&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;quit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;Do&amp;nbsp;not&amp;nbsp;change&amp;nbsp;anything&lt;br /&gt;Command&amp;nbsp;&amp;gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span class="highlight"&gt;&amp;lt;-- courier&lt;/span&gt;&lt;br /&gt;&lt;span class="system"&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;imap_server_type&amp;nbsp;=&amp;nbsp;courier&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default_folder_prefix&amp;nbsp;=&amp;nbsp;INBOX.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trash_folder&amp;nbsp;=&amp;nbsp;Trash&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sent_folder&amp;nbsp;=&amp;nbsp;Sent&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;draft_folder&amp;nbsp;=&amp;nbsp;Drafts&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;show_prefix_option&amp;nbsp;=&amp;nbsp;false&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default_sub_of_inbox&amp;nbsp;=&amp;nbsp;false&lt;br /&gt;show_contain_subfolders_option&amp;nbsp;=&amp;nbsp;false&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;optional_delimiter&amp;nbsp;=&amp;nbsp;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;delete_folder&amp;nbsp;=&amp;nbsp;true&lt;br /&gt;&lt;br /&gt;Press&amp;nbsp;any&amp;nbsp;key&amp;nbsp;to&amp;nbsp;continue...&lt;/span&gt; &lt;span class="highlight"&gt;&amp;lt;-- press some key&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="system"&gt;SquirrelMail&amp;nbsp;Configuration&amp;nbsp;:&amp;nbsp;Read:&amp;nbsp;config.php&amp;nbsp;(1.4.0)&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;Main&amp;nbsp;Menu&amp;nbsp;--&lt;br /&gt;1.&amp;nbsp;&amp;nbsp;Organization&amp;nbsp;Preferences&lt;br /&gt;2.&amp;nbsp;&amp;nbsp;Server&amp;nbsp;Settings&lt;br /&gt;3.&amp;nbsp;&amp;nbsp;Folder&amp;nbsp;Defaults&lt;br /&gt;4.&amp;nbsp;&amp;nbsp;General&amp;nbsp;Options&lt;br /&gt;5.&amp;nbsp;&amp;nbsp;Themes&lt;br /&gt;6.&amp;nbsp;&amp;nbsp;Address&amp;nbsp;Books&lt;br /&gt;7.&amp;nbsp;&amp;nbsp;Message&amp;nbsp;of&amp;nbsp;the&amp;nbsp;Day&amp;nbsp;(MOTD)&lt;br /&gt;8.&amp;nbsp;&amp;nbsp;Plugins&lt;br /&gt;9.&amp;nbsp;&amp;nbsp;Database&lt;br /&gt;10.&amp;nbsp;Languages&lt;br /&gt;&lt;br /&gt;D.&amp;nbsp;&amp;nbsp;Set&amp;nbsp;pre-defined&amp;nbsp;settings&amp;nbsp;for&amp;nbsp;specific&amp;nbsp;IMAP&amp;nbsp;servers&lt;br /&gt;&lt;br /&gt;C&amp;nbsp;&amp;nbsp;&amp;nbsp;Turn&amp;nbsp;color&amp;nbsp;on&lt;br /&gt;S&amp;nbsp;&amp;nbsp;&amp;nbsp;Save&amp;nbsp;data&lt;br /&gt;Q&amp;nbsp;&amp;nbsp;&amp;nbsp;Quit&lt;br /&gt;&lt;br /&gt;Command&amp;nbsp;&amp;gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span class="highlight"&gt;&amp;lt;-- 8&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="system"&gt;SquirrelMail&amp;nbsp;Configuration&amp;nbsp;:&amp;nbsp;Read:&amp;nbsp;config.php&amp;nbsp;(1.4.0)&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;Plugins&lt;br /&gt;&amp;nbsp;&amp;nbsp;Installed&amp;nbsp;Plugins&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.&amp;nbsp;view_as_html&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Available&amp;nbsp;Plugins:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.&amp;nbsp;administrator&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.&amp;nbsp;bug_report&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.&amp;nbsp;calendar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5.&amp;nbsp;change_sqlpass&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6.&amp;nbsp;compatibility&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7.&amp;nbsp;delete_move_next&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8.&amp;nbsp;demo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9.&amp;nbsp;filters&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.&amp;nbsp;fortune&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;11.&amp;nbsp;info&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;12.&amp;nbsp;listcommands&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;13.&amp;nbsp;mail_fetch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;14.&amp;nbsp;message_details&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15.&amp;nbsp;newmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;16.&amp;nbsp;sent_subfolders&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17.&amp;nbsp;spamcop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;18.&amp;nbsp;squirrelspell&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;19.&amp;nbsp;test&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20.&amp;nbsp;translate&lt;br /&gt;&lt;br /&gt;R&amp;nbsp;&amp;nbsp;&amp;nbsp;Return&amp;nbsp;to&amp;nbsp;Main&amp;nbsp;Menu&lt;br /&gt;C&amp;nbsp;&amp;nbsp;&amp;nbsp;Turn&amp;nbsp;color&amp;nbsp;on&lt;br /&gt;S&amp;nbsp;&amp;nbsp;&amp;nbsp;Save&amp;nbsp;data&lt;br /&gt;Q&amp;nbsp;&amp;nbsp;&amp;nbsp;Quit&lt;br /&gt;&lt;br /&gt;Command&amp;nbsp;&amp;gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span class="highlight"&gt;&amp;lt;-- 6 (or whatever number the compatibility plugin has - it's needed by the change_sqlpass plugin)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="system"&gt;SquirrelMail&amp;nbsp;Configuration&amp;nbsp;:&amp;nbsp;Read:&amp;nbsp;config.php&amp;nbsp;(1.4.0)&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;Plugins&lt;br /&gt;&amp;nbsp;&amp;nbsp;Installed&amp;nbsp;Plugins&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.&amp;nbsp;view_as_html&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.&amp;nbsp;compatibility&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Available&amp;nbsp;Plugins:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.&amp;nbsp;administrator&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.&amp;nbsp;bug_report&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5.&amp;nbsp;calendar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6.&amp;nbsp;change_sqlpass&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7.&amp;nbsp;delete_move_next&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8.&amp;nbsp;demo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9.&amp;nbsp;filters&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.&amp;nbsp;fortune&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;11.&amp;nbsp;info&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;12.&amp;nbsp;listcommands&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;13.&amp;nbsp;mail_fetch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;14.&amp;nbsp;message_details&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15.&amp;nbsp;newmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;16.&amp;nbsp;sent_subfolders&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17.&amp;nbsp;spamcop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;18.&amp;nbsp;squirrelspell&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;19.&amp;nbsp;test&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20.&amp;nbsp;translate&lt;br /&gt;&lt;br /&gt;R&amp;nbsp;&amp;nbsp;&amp;nbsp;Return&amp;nbsp;to&amp;nbsp;Main&amp;nbsp;Menu&lt;br /&gt;C&amp;nbsp;&amp;nbsp;&amp;nbsp;Turn&amp;nbsp;color&amp;nbsp;on&lt;br /&gt;S&amp;nbsp;&amp;nbsp;&amp;nbsp;Save&amp;nbsp;data&lt;br /&gt;Q&amp;nbsp;&amp;nbsp;&amp;nbsp;Quit&lt;br /&gt;&lt;br /&gt;Command&amp;nbsp;&amp;gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span class="highlight"&gt;&amp;lt;-- 6 (the number of the change_sqlpass plugin)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="system"&gt;SquirrelMail&amp;nbsp;Configuration&amp;nbsp;:&amp;nbsp;Read:&amp;nbsp;config.php&amp;nbsp;(1.4.0)&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;Plugins&lt;br /&gt;&amp;nbsp;&amp;nbsp;Installed&amp;nbsp;Plugins&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.&amp;nbsp;view_as_html&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.&amp;nbsp;compatibility&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.&amp;nbsp;change_sqlpass&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Available&amp;nbsp;Plugins:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.&amp;nbsp;administrator&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5.&amp;nbsp;bug_report&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6.&amp;nbsp;calendar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7.&amp;nbsp;delete_move_next&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8.&amp;nbsp;demo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9.&amp;nbsp;filters&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.&amp;nbsp;fortune&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;11.&amp;nbsp;info&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;12.&amp;nbsp;listcommands&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;13.&amp;nbsp;mail_fetch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;14.&amp;nbsp;message_details&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15.&amp;nbsp;newmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;16.&amp;nbsp;sent_subfolders&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17.&amp;nbsp;spamcop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;18.&amp;nbsp;squirrelspell&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;19.&amp;nbsp;test&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20.&amp;nbsp;translate&lt;br /&gt;&lt;br /&gt;R&amp;nbsp;&amp;nbsp;&amp;nbsp;Return&amp;nbsp;to&amp;nbsp;Main&amp;nbsp;Menu&lt;br /&gt;C&amp;nbsp;&amp;nbsp;&amp;nbsp;Turn&amp;nbsp;color&amp;nbsp;on&lt;br /&gt;S&amp;nbsp;&amp;nbsp;&amp;nbsp;Save&amp;nbsp;data&lt;br /&gt;Q&amp;nbsp;&amp;nbsp;&amp;nbsp;Quit&lt;br /&gt;&lt;br /&gt;Command&amp;nbsp;&amp;gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span class="highlight"&gt;&amp;lt;-- S&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="system"&gt;SquirrelMail&amp;nbsp;Configuration&amp;nbsp;:&amp;nbsp;Read:&amp;nbsp;config.php&amp;nbsp;(1.4.0)&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;Plugins&lt;br /&gt;&amp;nbsp;&amp;nbsp;Installed&amp;nbsp;Plugins&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.&amp;nbsp;view_as_html&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.&amp;nbsp;compatibility&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.&amp;nbsp;change_sqlpass&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Available&amp;nbsp;Plugins:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.&amp;nbsp;administrator&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5.&amp;nbsp;bug_report&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6.&amp;nbsp;calendar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7.&amp;nbsp;delete_move_next&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8.&amp;nbsp;demo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9.&amp;nbsp;filters&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.&amp;nbsp;fortune&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;11.&amp;nbsp;info&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;12.&amp;nbsp;listcommands&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;13.&amp;nbsp;mail_fetch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;14.&amp;nbsp;message_details&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15.&amp;nbsp;newmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;16.&amp;nbsp;sent_subfolders&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17.&amp;nbsp;spamcop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;18.&amp;nbsp;squirrelspell&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;19.&amp;nbsp;test&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20.&amp;nbsp;translate&lt;br /&gt;&lt;br /&gt;R&amp;nbsp;&amp;nbsp;&amp;nbsp;Return&amp;nbsp;to&amp;nbsp;Main&amp;nbsp;Menu&lt;br /&gt;C&amp;nbsp;&amp;nbsp;&amp;nbsp;Turn&amp;nbsp;color&amp;nbsp;on&lt;br /&gt;S&amp;nbsp;&amp;nbsp;&amp;nbsp;Save&amp;nbsp;data&lt;br /&gt;Q&amp;nbsp;&amp;nbsp;&amp;nbsp;Quit&lt;br /&gt;&lt;br /&gt;Command&amp;nbsp;&amp;gt;&amp;gt;&amp;nbsp;S&lt;br /&gt;&lt;br /&gt;Data&amp;nbsp;saved&amp;nbsp;in&amp;nbsp;config.php&lt;br /&gt;Press&amp;nbsp;enter&amp;nbsp;to&amp;nbsp;continue...&lt;/span&gt; &lt;span class="highlight"&gt;&amp;lt;-- press some key&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="system"&gt;SquirrelMail&amp;nbsp;Configuration&amp;nbsp;:&amp;nbsp;Read:&amp;nbsp;config.php&amp;nbsp;(1.4.0)&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;Plugins&lt;br /&gt;&amp;nbsp;&amp;nbsp;Installed&amp;nbsp;Plugins&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.&amp;nbsp;view_as_html&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.&amp;nbsp;compatibility&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.&amp;nbsp;change_sqlpass&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Available&amp;nbsp;Plugins:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.&amp;nbsp;administrator&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5.&amp;nbsp;bug_report&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6.&amp;nbsp;calendar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7.&amp;nbsp;delete_move_next&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8.&amp;nbsp;demo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9.&amp;nbsp;filters&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.&amp;nbsp;fortune&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;11.&amp;nbsp;info&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;12.&amp;nbsp;listcommands&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;13.&amp;nbsp;mail_fetch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;14.&amp;nbsp;message_details&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15.&amp;nbsp;newmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;16.&amp;nbsp;sent_subfolders&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17.&amp;nbsp;spamcop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;18.&amp;nbsp;squirrelspell&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;19.&amp;nbsp;test&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20.&amp;nbsp;translate&lt;br /&gt;&lt;br /&gt;R&amp;nbsp;&amp;nbsp;&amp;nbsp;Return&amp;nbsp;to&amp;nbsp;Main&amp;nbsp;Menu&lt;br /&gt;C&amp;nbsp;&amp;nbsp;&amp;nbsp;Turn&amp;nbsp;color&amp;nbsp;on&lt;br /&gt;S&amp;nbsp;&amp;nbsp;&amp;nbsp;Save&amp;nbsp;data&lt;br /&gt;Q&amp;nbsp;&amp;nbsp;&amp;nbsp;Quit&lt;br /&gt;&lt;br /&gt;Command&amp;nbsp;&amp;gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span class="highlight"&gt;&amp;lt;-- Q&lt;/span&gt;&lt;br /&gt;Now you can type in &lt;span class="system"&gt;http://server1.example.com/squirrelmail&lt;/span&gt; or &lt;span class="system"&gt;http://192.168.0.100/squirrelmail&lt;/span&gt; in your browser to access SquirrelMail.&lt;br /&gt;Log in with your email address (e.g. &lt;span class="system"&gt;sales@example.com&lt;/span&gt;) and your password:&lt;br /&gt;&lt;a class="thickbox" href="http://static.howtoforge.com/images/virtual_users_and_domains_with_postfix_on_ubuntu_10.04/big/2.png"&gt;&lt;img height="399" src="http://static.howtoforge.com/images/virtual_users_and_domains_with_postfix_on_ubuntu_10.04/2.png" width="550" /&gt;&lt;div&gt;&lt;img alt="Click to enlarge" border="0" height="12" src="http://static.howtoforge.com/images/click_to_enlarge.png" width="100" /&gt; &lt;/div&gt;&lt;/a&gt;(JavaScript must be enabled in your browser to view the large image as an image overlay.)&lt;br /&gt;You should find the welcome email in your inbox:&lt;br /&gt;&lt;a class="thickbox" href="http://static.howtoforge.com/images/virtual_users_and_domains_with_postfix_on_ubuntu_10.04/big/3.png"&gt;&lt;img height="399" src="http://static.howtoforge.com/images/virtual_users_and_domains_with_postfix_on_ubuntu_10.04/3.png" width="550" /&gt;&lt;div&gt;&lt;img alt="Click to enlarge" border="0" height="12" src="http://static.howtoforge.com/images/click_to_enlarge.png" width="100" /&gt; &lt;/div&gt;&lt;/a&gt;(JavaScript must be enabled in your browser to view the large image as an image overlay.)&lt;br /&gt;&lt;a class="thickbox" href="http://static.howtoforge.com/images/virtual_users_and_domains_with_postfix_on_ubuntu_10.04/big/4.png"&gt;&lt;img height="399" src="http://static.howtoforge.com/images/virtual_users_and_domains_with_postfix_on_ubuntu_10.04/4.png" width="550" /&gt;&lt;div&gt;&lt;img alt="Click to enlarge" border="0" height="12" src="http://static.howtoforge.com/images/click_to_enlarge.png" width="100" /&gt; &lt;/div&gt;&lt;/a&gt;(JavaScript must be enabled in your browser to view the large image as an image overlay.)&lt;br /&gt;To change your password, go to &lt;span class="system"&gt;Options&lt;/span&gt; and then select &lt;span class="system"&gt;Change Password&lt;/span&gt;:&lt;br /&gt;&lt;a class="thickbox" href="http://static.howtoforge.com/images/virtual_users_and_domains_with_postfix_on_ubuntu_10.04/big/5.png"&gt;&lt;img height="399" src="http://static.howtoforge.com/images/virtual_users_and_domains_with_postfix_on_ubuntu_10.04/5.png" width="550" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a class="thickbox" href="http://static.howtoforge.com/images/virtual_users_and_domains_with_postfix_on_ubuntu_10.04/big/5.png"&gt;&lt;img alt="Click to enlarge" border="0" height="12" src="http://static.howtoforge.com/images/click_to_enlarge.png" width="100" /&gt; &lt;/a&gt;&lt;/div&gt;(JavaScript must be enabled in your browser to view the large image as an image overlay.) Type in your current password and then your new password twice:&lt;br /&gt;&lt;a class="thickbox" href="http://static.howtoforge.com/images/virtual_users_and_domains_with_postfix_on_ubuntu_10.04/big/6.png"&gt;&lt;img height="399" src="http://static.howtoforge.com/images/virtual_users_and_domains_with_postfix_on_ubuntu_10.04/6.png" width="550" /&gt;&lt;div&gt;&lt;img alt="Click to enlarge" border="0" height="12" src="http://static.howtoforge.com/images/click_to_enlarge.png" width="100" /&gt; &lt;/div&gt;&lt;/a&gt;(JavaScript must be enabled in your browser to view the large image as an image overlay.)&lt;br /&gt;If the password has been changed successfully, you will see the following error message which means you must log in again with your new password (because the old one isn't active anymore): &lt;br /&gt;&lt;a class="thickbox" href="http://static.howtoforge.com/images/virtual_users_and_domains_with_postfix_on_ubuntu_10.04/big/7.png"&gt;&lt;img height="399" src="http://static.howtoforge.com/images/virtual_users_and_domains_with_postfix_on_ubuntu_10.04/7.png" width="550" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a class="thickbox" href="http://static.howtoforge.com/images/virtual_users_and_domains_with_postfix_on_ubuntu_10.04/big/7.png"&gt;&lt;img alt="Click to enlarge" border="0" height="12" src="http://static.howtoforge.com/images/click_to_enlarge.png" width="100" /&gt; &lt;/a&gt;&lt;/div&gt;(JavaScript must be enabled in your browser to view the large image as an image overlay.) &lt;br /&gt;&lt;h3&gt;16 References &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Tutorial: ISP-style Email Service with Debian-Sarge and Postfix 2.1: &lt;a href="http://workaround.org/articles/ispmail-sarge/" target="_blank"&gt;http://workaround.org/articles/ispmail-sarge/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Postfix + Quota: &lt;a href="http://vhcs.net/new/modules/newbb/viewtopic.php?topic_id=3496&amp;amp;forum=17" target="_blank"&gt;http://vhcs.net/new/modules/newbb/viewtopic.php?topic_id=3496&amp;amp;forum=17&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Mail Passwords Encrypted using saslauthd: &lt;a href="http://www.syscp.de/docs/public/contrib/cryptedmailpws" target="_blank"&gt;http://www.syscp.de/docs/public/contrib/cryptedmailpws&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h3&gt;17 Links &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Postfix MTA: &lt;a href="http://www.postfix.org/" target="_blank"&gt;http://www.postfix.org/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Postfix Quota Patch: &lt;a href="http://web.onda.com.br/nadal/" target="_blank"&gt;http://web.onda.com.br/nadal/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;phpMyAdmin: &lt;a href="http://www.phpmyadmin.net/" target="_blank"&gt;http://www.phpmyadmin.net/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;SquirrelMail: &lt;a href="http://www.squirrelmail.org/" target="_blank"&gt;http://www.squirrelmail.org/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Ubuntu: &lt;a href="http://www.ubuntu.com/" target="_blank"&gt;http://www.ubuntu.com/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-8095301803296015797?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/8095301803296015797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/09/virtual-users-and-domains-with-postfix.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/8095301803296015797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/8095301803296015797'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/09/virtual-users-and-domains-with-postfix.html' title='Virtual Users And Domains With Postfix, Courier, MySQL And SquirrelMail (Ubuntu 10.04)'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-1560380432113055182</id><published>2011-09-24T19:53:00.000-07:00</published><updated>2011-09-24T19:53:31.443-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xubuntu'/><title type='text'>VNC on XUBUNTU</title><content type='html'>install ubuntu 10.4 LTS server, with no desktop &lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get upgrade&lt;br /&gt;sudo apt-get install vnc4server&lt;br /&gt;restart&lt;br /&gt;&lt;br /&gt;sudo apt-get install xubuntu-desktop&lt;br /&gt;restart&lt;br /&gt;&lt;br /&gt;setup vnc: vnc4server dikasih password&lt;br /&gt;ubah xstartupnya menjadi:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;( while true; do xterm; done ) &amp;amp;&lt;br /&gt;# Uncomment the following two lines for normal desktop:&lt;br /&gt;unset SESSION_MANAGER&lt;br /&gt;exec /etc/X11/xinit/xinitrc&lt;br /&gt;&lt;br /&gt;[ -x /etc/vnc/xstartup ] &amp;amp;&amp;amp; exec /etc/vnc/xstartup&lt;br /&gt;[ -r $HOME/.Xresources ] &amp;amp;&amp;amp; xrdb $HOME/.Xresources&lt;br /&gt;xsetroot -solid grey&lt;br /&gt;#vncconfig -iconic &amp;amp;&lt;br /&gt;#xterm -geometry 1024x768 -ls -title "$VNCDESKTOP Desktop" &amp;amp;&lt;br /&gt;#x-window-manager &amp;amp;&lt;br /&gt;xfwm4 &amp;amp;&lt;br /&gt;xfce4-panel &amp;amp;&lt;br /&gt;xfdesktop &amp;amp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;restart&lt;br /&gt;&lt;br /&gt;run vnc4server n konek dg vnc&lt;br /&gt;KALO TIDAK BISA KELUAR DESKTOP, maka 3 baris terakhir dipanggil di xterm di vnc/remote &lt;br /&gt;&lt;br /&gt;coba install wine&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-1560380432113055182?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/1560380432113055182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/09/vnc-on-xubuntu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/1560380432113055182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/1560380432113055182'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/09/vnc-on-xubuntu.html' title='VNC on XUBUNTU'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-3542921602530053864</id><published>2011-09-20T02:22:00.001-07:00</published><updated>2011-09-20T02:22:50.338-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vnc'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Windows XP on Linux VPS</title><content type='html'>install ubuntu 11&lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get upgrade&lt;br /&gt;sudo apt-get install vnc4server&lt;br /&gt;sudo apt-get install ubuntu-desktop&lt;br /&gt;sudo apt-get install qemu qemulator&lt;br /&gt;sudo apt-get install qemu-launcher&lt;br /&gt;qemu-img create -f qcow windows.img 4G&lt;br /&gt;install windows xp di qemu --&amp;gt; mouse bergerak tidak sesuai! tp oke lah krn harga murah&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-3542921602530053864?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/3542921602530053864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/09/windows-xp-on-linux-vps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/3542921602530053864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/3542921602530053864'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/09/windows-xp-on-linux-vps.html' title='Windows XP on Linux VPS'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-1624122609892398040</id><published>2011-09-14T16:21:00.001-07:00</published><updated>2011-09-14T16:21:41.442-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Upgrade ubuntu 10.04 to 10.10 command line</title><content type='html'>Open up a terminal window and issue these two commands:&lt;br /&gt;&lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get upgrade&lt;br /&gt;&lt;br /&gt;Of course, you will have to enter your sudo password for the first command. Once that is complete you may need to restart your computer (depending on if the kernel is updated or not). After that, you are ready for the upgrade. The first step is to issue the following command:&lt;br /&gt;&lt;br /&gt;sudo apt-get install update-manager-core&lt;br /&gt;&lt;br /&gt;Now we need to make a simple edit to the /etc/update-manager/release-upgrades. This file determines the default behavior for the release upgrader. The line you need to change is at the bottom of this file. Change it from:&lt;br /&gt;&lt;br /&gt;Prompt=lts&lt;br /&gt;&lt;br /&gt;to&lt;br /&gt;&lt;br /&gt;Prompt=normal&lt;br /&gt;&lt;br /&gt;Save and close that file and then issue the command:&lt;br /&gt;&lt;br /&gt;sudo do-release-upgrade -d&lt;br /&gt;&lt;br /&gt;When&amp;nbsp; prompted, click Y to continue on with the upgrade. Once the upgrade is complete, you will need to restart you computer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-1624122609892398040?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/1624122609892398040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/09/upgrade-ubuntu-1004-to-1010-command.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/1624122609892398040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/1624122609892398040'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/09/upgrade-ubuntu-1004-to-1010-command.html' title='Upgrade ubuntu 10.04 to 10.10 command line'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-7385864249703348316</id><published>2011-09-07T20:37:00.000-07:00</published><updated>2011-09-07T20:37:15.189-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wine'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Install wine di ubuntu 10.10</title><content type='html'>**:rebuild ubuntu 11.04&lt;br /&gt;#sudo add-apt-repository ppa:ubuntu-wine/ppa&lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install wine1.3&lt;br /&gt;&lt;br /&gt;**terus install &lt;a href="http://note88.blogspot.com/2011/08/install-desktop-on-ubuntu-server-remote.html"&gt;vnc untuk VPS Ubuntu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;konek ke vnc, cek wine&lt;br /&gt;*tambahkan dll yg perlu / winetricks v???&lt;br /&gt;*tambahkan fonts yg perlu&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-7385864249703348316?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/7385864249703348316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/09/install-wine-di-ubuntu-1010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/7385864249703348316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/7385864249703348316'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/09/install-wine-di-ubuntu-1010.html' title='Install wine di ubuntu 10.10'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-1290459320910137601</id><published>2011-08-23T20:29:00.000-07:00</published><updated>2011-08-23T20:29:07.013-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='download'/><title type='text'>Download semua isi website dengan wget</title><content type='html'>wget --wait=20 --limit-rate=20K -r -p -U Mozilla [ganti dengan nama website] --no-parent&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-1290459320910137601?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/1290459320910137601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/08/download-semua-isi-website-dengan-wget.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/1290459320910137601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/1290459320910137601'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/08/download-semua-isi-website-dengan-wget.html' title='Download semua isi website dengan wget'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-3801497534516543648</id><published>2011-08-10T23:45:00.000-07:00</published><updated>2011-08-10T23:48:23.239-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Configure Network Interface Using Command-Line</title><content type='html'>You can configure a network interface from the command line using the networking utilities. You configure your network client hosts with the command line by using commands to change your current settings or by editing a number of system files.&lt;br /&gt;&lt;b&gt;Configuring DHCP address for your network card&lt;/b&gt;&lt;br /&gt;If you want to configure DHCP address you need to edit the /etc/network/interfaces and you need to enter the following lines replace eth0 with your network interface card&lt;br /&gt;&lt;blockquote&gt;sudo vi /etc/network/interfaces&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/blockquote&gt;Note :- Use vi editor if you don’t have GUI installed&lt;br /&gt;If you have GUI use the following command&lt;br /&gt;&lt;blockquote&gt;gksudo gedit /etc/network/interfaces&lt;/blockquote&gt;&lt;blockquote&gt;# The primary network interface - use DHCP to find our address&lt;br /&gt;auto eth0&lt;br /&gt;iface eth0 inet dhcp&lt;/blockquote&gt;&lt;b&gt;Configuring Static IP address for your network card&lt;/b&gt;&lt;br /&gt;If you want to configure Static IP address you need to edit the /etc/network/interfaces and you need to enter the following lines replace eth0 with your network interface card&lt;br /&gt;&lt;blockquote&gt;sudo vi /etc/network/interfaces&lt;/blockquote&gt;Note :- Use vi editor if you don’t have GUI installed&lt;br /&gt;If you have GUI use the following command&lt;br /&gt;&lt;blockquote&gt;gksudo gedit /etc/network/interfaces&lt;/blockquote&gt;&lt;blockquote&gt;# The primary network interface&lt;br /&gt;auto eth0&lt;br /&gt;iface eth0 inet static&lt;br /&gt;address 192.168.3.90&lt;br /&gt;gateway 192.168.3.1&lt;br /&gt;netmask 255.255.255.0&lt;br /&gt;network 192.168.3.0&lt;br /&gt;broadcast 192.168.3.255&lt;/blockquote&gt;After entering all the details you need to restart networking services using the following command&lt;br /&gt;&lt;blockquote&gt;sudo /etc/init.d/networking restart&lt;/blockquote&gt;&lt;b&gt;Setting up Second IP address or Virtual IP address in Ubuntu&lt;/b&gt;&lt;br /&gt;If you are a server system administrator or normal user some time you need to assign a second ipaddress to your Ubuntu machine.For this you need to edit the /etc/network/interfaces file and you need to add the following syntax.Below one is the only example you need to chnage according to your ip address settings&lt;br /&gt;&lt;blockquote&gt;sudo vi /etc/network/interfaces&lt;/blockquote&gt;Note :- Use vi editor if you don’t have GUI installed&lt;br /&gt;If you have GUI use the following command&lt;br /&gt;&lt;blockquote&gt;gksudo gedit /etc/network/interfaces&lt;/blockquote&gt;&lt;blockquote&gt;auto eth0:1&lt;br /&gt;iface eth0:1 inet static&lt;br /&gt;address 192.168.1.60&lt;br /&gt;netmask 255.255.255.0&lt;br /&gt;network x.x.x.x&lt;br /&gt;broadcast x.x.x.x&lt;br /&gt;gateway x.x.x.x&lt;/blockquote&gt;You need to enter all the details like address,netmask,network,broadcast and gateways values after entering all the values save this file and you need to restart networking services in debian using the following command to take effect of our new ipaddress.&lt;br /&gt;After entering all the details you need to restart networking services using the following command&lt;br /&gt;&lt;blockquote&gt;sudo /etc/init.d/networking restart&lt;/blockquote&gt;&lt;b&gt;Setting your ubuntu stytem hostname &lt;/b&gt;&lt;br /&gt;Setting up your hostname upon a ubuntu installation is very straightforward. You can directly query, or set, the hostname with the hostname command.&lt;br /&gt;As an user you can see your current hostname with&lt;br /&gt;&lt;blockquote&gt;sudo /bin/hostname&lt;/blockquote&gt;&lt;b&gt;Example&lt;/b&gt;&lt;br /&gt;To set the hostname directly you can become root and run&lt;br /&gt;&lt;blockquote&gt;sudo /bin/hostname newname&lt;/blockquote&gt;When your system boots it will automatically read the hostname from the file /etc/hostname&lt;br /&gt;If you want to know more about how to setup host name check &lt;a href="http://www.debianadmin.com/change-hostname-or-server-name-of-a-linux-machine.html" target="_blank"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Setting up DNS&lt;/b&gt;&lt;br /&gt;When it comes to DNS setup Ubuntu doesn’t differ from other distributions. You can add hostname and IP addresses to the file /etc/hosts for static lookups.&lt;br /&gt;To cause your machine to consult with a particular server for name lookups you simply add their addresses to /etc/resolv.conf.&lt;br /&gt;For example a machine which should perform lookups from the DNS server at IP address 192.168.3.2 would have a resolv.conf file looking like this&lt;br /&gt;&lt;blockquote&gt;sudo vi /etc/resolv.conf&lt;/blockquote&gt;Note :- Use vi editor if you don’t have GUI installed&lt;br /&gt;If you have GUI use the following command&lt;br /&gt;&lt;blockquote&gt;gksudo gedit /etc/resolv.conf&lt;/blockquote&gt;enter the following details&lt;br /&gt;&lt;blockquote&gt;search test.com&lt;br /&gt;nameserver 192.168.3.2&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-3801497534516543648?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/3801497534516543648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/08/configure-network-interface-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/3801497534516543648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/3801497534516543648'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/08/configure-network-interface-using.html' title='Configure Network Interface Using Command-Line'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-7307387435567530548</id><published>2011-08-08T23:40:00.000-07:00</published><updated>2011-08-08T23:40:23.084-07:00</updated><title type='text'>update your Ubuntu Distro</title><content type='html'>sudo do-release-upgrade&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-7307387435567530548?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/7307387435567530548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/08/update-your-ubuntu-distro.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/7307387435567530548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/7307387435567530548'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/08/update-your-ubuntu-distro.html' title='update your Ubuntu Distro'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-4685688981394294752</id><published>2011-08-08T23:30:00.000-07:00</published><updated>2011-08-17T19:47:59.047-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><title type='text'>ssh tanpa password dari server A ke B</title><content type='html'>Lakukan ini di server A di home nya&lt;br /&gt;Bila login dg user root, maka lakukan di server A di folder: /root#&lt;br /&gt;&lt;br /&gt;&lt;code&gt;ssh-keygen -t rsa&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;(tekan enter 3 kali saja sampai keluar) &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;ssh username@serverB mkdir -p .ssh&lt;/code&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;(masukin password di server B)&amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;bila ada error&amp;nbsp;&lt;/code&gt;&lt;br /&gt;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;&lt;br /&gt;&lt;code&gt;maka perlu dihapus dulu di serverA:&lt;/code&gt;&lt;br /&gt;&lt;code&gt;ssh-keygen -R serverB&lt;/code&gt;&lt;code&gt; &lt;/code&gt;&lt;br /&gt;&lt;code&gt;ULANGI DARI ATAS LAGI &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;cat .ssh/id_rsa.pub | ssh username@&lt;/code&gt;&lt;code&gt;serverB&lt;/code&gt;&lt;code&gt; 'cat &amp;gt;&amp;gt; .ssh/authorized_keys'&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;(masukin password di server B) &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;Selesai :)&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-4685688981394294752?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/4685688981394294752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/08/ssh-tanpa-password-dari-server-ke-b.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/4685688981394294752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/4685688981394294752'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/08/ssh-tanpa-password-dari-server-ke-b.html' title='ssh tanpa password dari server A ke B'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-8130735128907523734</id><published>2011-08-08T21:14:00.000-07:00</published><updated>2011-08-08T21:14:14.895-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle Report Startup and Shutdown</title><content type='html'>STARTUP enterprise manager control:&lt;br /&gt;login sebagai user &lt;b&gt;oracle &lt;/b&gt;&lt;br /&gt;[/oracle/rep/bin]#./emctl start iasconsole&lt;br /&gt;&lt;br /&gt;Akses &lt;b&gt;http://[server]:1156/emd/&lt;/b&gt; untuk menghidupkan report servicenya&lt;br /&gt;atau dari command line:&lt;br /&gt;[/oracle/rep/opmn/bin]# &lt;b&gt;./opmnctl startall&lt;/b&gt;&lt;br /&gt;************&lt;br /&gt;&lt;br /&gt;STOP&lt;br /&gt;login sebagai user &lt;b&gt;oracle &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;[/oracle/rep/bin]#./emctl stop iasconsole&lt;br /&gt;[/oracle/rep/opmn/bin]# &lt;b&gt;./opmnctl stopall&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-8130735128907523734?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/8130735128907523734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/08/oracle-report-startup-and-shutdown.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/8130735128907523734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/8130735128907523734'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/08/oracle-report-startup-and-shutdown.html' title='Oracle Report Startup and Shutdown'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-4817684703773085243</id><published>2011-08-08T02:37:00.000-07:00</published><updated>2011-08-08T02:38:36.861-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Install desktop on ubuntu server remote</title><content type='html'>1. Ubuntu VPS linux also doesn’t have window manager (GUI) hence we must install it first:&lt;br /&gt;sudo apt-get install ubuntu-desktop or sudo apt-get install kubuntu-desktop &lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;2. Configure the Gnome Desktop Manager and XServer&lt;br /&gt;sudo /etc/init.d/gdm start&lt;br /&gt;sudo dpkg-reconfigure xserver-xorg&lt;br /&gt;&lt;br /&gt;3. After we installed a window manager, next step is to install the remote desktop server, for linux we use TightVNC&lt;br /&gt;sudo apt-get install tightvncserver&lt;br /&gt;&lt;br /&gt;4. Next we need to configure the remote desktop server and create a password to access the VPS via its GUI. This&lt;br /&gt;command will start the server, you will be asked for a password, this password will be used as authentication when&lt;br /&gt;you connect to the VPS, make sure you have a strong password.&lt;br /&gt;vncserver :1 -geometry 1024×768 -depth 16 -pixelformat rgb565&lt;br /&gt;5. Now, if you execute command&lt;br /&gt;ps aux&lt;br /&gt;You should see an Xtightvnc process:&lt;br /&gt;Xtightvnc :1 -desktop X –auth&lt;br /&gt;This means the setting is OK and VNC server is running fine.&lt;br /&gt;6. The default VNC server doesn’t use Gnome window manager as default, to run Gnome as default we must do some&lt;br /&gt;changes on the configuration file.&lt;br /&gt;sudo nano ~/.vnc/xstartup&lt;br /&gt;Add this on the end of file:&lt;br /&gt;gnome-session &amp;amp;&lt;br /&gt;&lt;br /&gt;7. Next, do a reboot. Usually a reboot is not needed, but just to make sure you can do it.&lt;br /&gt;sudo reboot&lt;br /&gt;&lt;br /&gt;8. Start the VNC server:&lt;br /&gt;vncserver :1 -geometry 1024×768 -depth 16 -pixelformat rgb565&lt;br /&gt;&lt;br /&gt;9. Download Tight VNC client here: http://www.tightvnc.com/download.html&lt;br /&gt;&lt;br /&gt;10. After you install it, run the VNC client and insert your VPS IP address and VNC server number on the VNC Server&lt;br /&gt;field and click on “Connect”. In this tutorial the VNC server number is :1, so you must fill in :1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-4817684703773085243?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/4817684703773085243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/08/install-desktop-on-ubuntu-server-remote.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/4817684703773085243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/4817684703773085243'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/08/install-desktop-on-ubuntu-server-remote.html' title='Install desktop on ubuntu server remote'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-4384006182691512754</id><published>2011-07-28T20:35:00.000-07:00</published><updated>2011-07-28T20:35:28.489-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle Database 11g Release 1 (11.1) Installation On Enterprise Linux 4.5 and 5.0</title><content type='html'>This article describes the installation of Oracle Database 11g Release 1 (11.1) on &lt;a href="http://edelivery.oracle.com/linux"&gt;Enterprise Linux 4.5 and 5.0&lt;/a&gt;, but these instructions work perfectly for the original &lt;a href="http://www.redhat.com/"&gt;Red Hat Enterprise Linux 4 and 5&lt;/a&gt; distributions, or any other clones such as &lt;a href="http://www.centos.org/"&gt;CentOS 4 and 5&lt;/a&gt;. The article is based on a server installation with a minimum of 2G swap, secure Linux disabled. Oracle recommend a default server installation, but for these installations the following package groups installed:&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Oracle Enterprise Linux 4.5:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;X Window System&lt;/li&gt;&lt;li&gt;GNOME Desktop Environment&lt;/li&gt;&lt;li&gt;Editors&lt;/li&gt;&lt;li&gt;Graphical Internet&lt;/li&gt;&lt;li&gt;Server Configuration Tools&lt;/li&gt;&lt;li&gt;Development Tools&lt;/li&gt;&lt;li&gt;Administration Tools&lt;/li&gt;&lt;li&gt;System Tools&lt;/li&gt;&lt;/ul&gt;Oracle Enterprise Linux 5.0:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;GNOME Desktop Environment&lt;/li&gt;&lt;li&gt;Editors&lt;/li&gt;&lt;li&gt;Graphical Internet&lt;/li&gt;&lt;li&gt;Text-based Internet&lt;/li&gt;&lt;li&gt;Development Libraries&lt;/li&gt;&lt;li&gt;Development Tools&lt;/li&gt;&lt;li&gt;Server Configuration Tools&lt;/li&gt;&lt;li&gt;Administration Tools&lt;/li&gt;&lt;li&gt;Base&lt;/li&gt;&lt;li&gt;System Tools&lt;/li&gt;&lt;li&gt;X Window System&lt;/li&gt;&lt;/ul&gt;An example of these types of Linux installations can be seen in the following locations:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/linux/OracleEnterpriseLinux4Installation.php"&gt;OEL 4.5&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/linux/OracleEnterpriseLinux5Installation.php"&gt;OEL 5&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Alternative installations may require more packages to be loaded, in addition to the ones listed below.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/OracleDB11gR1InstallationOnEnterpriseLinux4and5.php#DownloadSoftware"&gt;Download Software&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/OracleDB11gR1InstallationOnEnterpriseLinux4and5.php#UnpackFiles"&gt;Unpack Files&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/OracleDB11gR1InstallationOnEnterpriseLinux4and5.php#HostsFile"&gt;Hosts File&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/OracleDB11gR1InstallationOnEnterpriseLinux4and5.php#SetKernelParameters"&gt;Set Kernel Parameters&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/OracleDB11gR1InstallationOnEnterpriseLinux4and5.php#Setup"&gt;Setup&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/OracleDB11gR1InstallationOnEnterpriseLinux4and5.php#Installation"&gt;Installation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/OracleDB11gR1InstallationOnEnterpriseLinux4and5.php#PostInstallation"&gt;Post Installation&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Download Software&lt;/h2&gt;Download the following software:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.oracle.com/technology/software/products/database/oracle11g/111060_linuxsoft.html"&gt;Oracle Database 11g Release 1 (11.1) Software&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Unpack Files&lt;/h2&gt;Unzip the files:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;unzip linux_11gR1_database.zip&lt;/pre&gt;&lt;/blockquote&gt;You should now have a single directory called "database" containing installation files.&lt;br /&gt;&lt;h2&gt;Hosts File&lt;/h2&gt;The /etc/hosts file must contain a fully qualified name for the server:&lt;br /&gt;&lt;h2&gt;Set Kernel Parameters&lt;/h2&gt;Oracle recommend the following minimum parameter settings:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;kernel.shmall = 2097152&lt;br /&gt;kernel.shmmax = 2147483648 # Smallest of -&amp;gt; (Half the size of the physical memory) or (4GB - 1 byte)&lt;br /&gt;kernel.shmmni = 4096&lt;br /&gt;# semaphores: semmsl, semmns, semopm, semmni&lt;br /&gt;kernel.sem = 250 32000 100 128&lt;br /&gt;fs.file-max = 65536 # 512 * PROCESSES&lt;br /&gt;net.ipv4.ip_local_port_range = 1024 65000&lt;br /&gt;net.core.rmem_default=4194304&lt;br /&gt;net.core.rmem_max=4194304&lt;br /&gt;net.core.wmem_default=262144 &lt;/pre&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;pre&gt;net.core.wmem_max=262144&lt;/pre&gt;&lt;/blockquote&gt;The current values can be tested using the following command:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;/sbin/sysctl -a | grep &lt;param-name&gt;&lt;/param-name&gt;&lt;/pre&gt;&lt;/blockquote&gt;&amp;nbsp;For Enterprise Linux 4.5, the following lines should be appended to the "/etc/sysctl.conf" file.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;kernel.shmall = 2097152&lt;br /&gt;kernel.shmmax = 2147483648 # Smallest of -&amp;gt; (Half the size of the physical memory) or (4GB - 1 byte)&lt;br /&gt;kernel.shmmni = 4096&lt;br /&gt;# semaphores: semmsl, semmns, semopm, semmni&lt;br /&gt;kernel.sem = 250 32000 100 128&lt;br /&gt;net.ipv4.ip_local_port_range = 1024 65000&lt;br /&gt;net.core.rmem_default=4194304&lt;br /&gt;net.core.rmem_max=4194304&lt;br /&gt;net.core.wmem_default=262144&lt;/pre&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;pre&gt;net.core.wmem_max=262144&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;For Enterprise Linux 5.0, the following lines should be appended to the "/etc/sysctl.conf" file.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;kernel.shmmni = 4096&lt;br /&gt;# semaphores: semmsl, semmns, semopm, semmni&lt;br /&gt;kernel.sem = 250 32000 100 128&lt;br /&gt;net.ipv4.ip_local_port_range = 1024 65000&lt;br /&gt;net.core.rmem_default=4194304&lt;br /&gt;net.core.rmem_max=4194304&lt;br /&gt;net.core.wmem_default=262144&lt;br /&gt;net.core.wmem_max=262144&lt;/pre&gt;&lt;/blockquote&gt;Run the following command to change the current kernel parameters:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;/sbin/sysctl -p&lt;/pre&gt;&lt;/blockquote&gt;Add the following lines to the /etc/security/limits.conf file:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;oracle              soft    nproc   2047&lt;br /&gt;oracle              hard    nproc   16384&lt;br /&gt;oracle              soft    nofile  1024&lt;br /&gt;oracle              hard    nofile  65536&lt;/pre&gt;&lt;/blockquote&gt;Add the following line to the /etc/pam.d/login file, if it does not already exist:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;session    required     pam_limits.so&lt;/pre&gt;&lt;/blockquote&gt;Disable secure linux by editing the /etc/selinux/config file, making sure the SELINUX flag is set as follows:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;SELINUX=disabled&lt;/pre&gt;&lt;/blockquote&gt;Alternatively, this alteration can be done using the GUI tool (Applications &amp;gt; System Settings &amp;gt; Security Level). Click on the SELinux tab and disable the feature. If SELinux is disabled after installation, the server will need a reboot for the change to take effect.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Setup&lt;/h2&gt;Install the following packages for Enterprise Linux 4.5:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;# From Enterprise Linux 4 Disk 1&lt;br /&gt;cd /media/cdrom/Enterprise/RPMS&lt;br /&gt;rpm -Uvh binutils-2.*&lt;br /&gt;rpm -Uvh elfutils-libelf-0.*&lt;br /&gt;rpm -Uvh glibc-2.*&lt;br /&gt;rpm -Uvh glibc-common-2.*&lt;br /&gt;rpm -Uvh libgcc-3.*&lt;br /&gt;rpm -Uvh libstdc++-3.*&lt;br /&gt;rpm -Uvh compat-libstdc++-33*&lt;br /&gt;rpm -Uvh make-3.*&lt;br /&gt;rpm -Uvh unixODBC-2.*&lt;br /&gt;cd /&lt;br /&gt;eject&lt;br /&gt;&lt;br /&gt;# From Enterprise Linux 4 Disk 2&lt;br /&gt;cd /media/cdrom/Enterprise/RPMS&lt;br /&gt;rpm -Uvh glibc-devel-2.*&lt;br /&gt;rpm -Uvh gcc-3.*&lt;br /&gt;rpm -Uvh gcc-c++-3.*&lt;br /&gt;rpm -Uvh libstdc++-devel-3.*&lt;br /&gt;cd /&lt;br /&gt;eject&lt;br /&gt;&lt;br /&gt;# From Enterprise Linux 4 Disk 3&lt;br /&gt;cd /media/cdrom/Enterprise/RPMS&lt;br /&gt;rpm -Uvh libaio-0.*&lt;br /&gt;rpm -Uvh libaio-devel-0.*&lt;br /&gt;rpm -Uvh sysstat-5.*&lt;br /&gt;cd /&lt;br /&gt;eject&lt;br /&gt;&lt;br /&gt;# From Enterprise Linux 4 Disk 4&lt;br /&gt;cd /media/cdrom/Enterprise/RPMS&lt;br /&gt;rpm -Uvh elfutils-libelf-devel-0.*&lt;br /&gt;rpm -Uvh unixODBC-devel-2.*&lt;br /&gt;cd /&lt;br /&gt;eject&lt;/pre&gt;&lt;/blockquote&gt;Install the following packages for Enterprise Linux 5.0:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;# From Enterprise Linux 5 Disk 1&lt;br /&gt;cd /media/cdrom/Server&lt;br /&gt;rpm -Uvh binutils-2.*&lt;br /&gt;rpm -Uvh elfutils-libelf-0.*&lt;br /&gt;rpm -Uvh glibc-2.*&lt;br /&gt;rpm -Uvh glibc-common-2.*&lt;br /&gt;rpm -Uvh libaio-0.*&lt;br /&gt;rpm -Uvh libgcc-4.*&lt;br /&gt;rpm -Uvh libstdc++-4.*&lt;br /&gt;rpm -Uvh make-3.*&lt;br /&gt;cd /&lt;br /&gt;eject&lt;br /&gt;&lt;br /&gt;# From Enterprise Linux 5 Disk 2&lt;br /&gt;cd /media/cdrom/Server&lt;br /&gt;rpm -Uvh compat-libstdc++-33*&lt;br /&gt;rpm -Uvh elfutils-libelf-devel-0.*&lt;br /&gt;rpm -Uvh glibc-devel-2.*&lt;br /&gt;rpm -Uvh gcc-4.*&lt;br /&gt;rpm -Uvh gcc-c++-4.*&lt;br /&gt;rpm -Uvh libaio-devel-0.*&lt;br /&gt;rpm -Uvh libstdc++-devel-4.*&lt;br /&gt;rpm -Uvh unixODBC-2.*&lt;br /&gt;rpm -Uvh unixODBC-devel-2.*&lt;br /&gt;cd /&lt;br /&gt;eject&lt;br /&gt;&lt;br /&gt;# From Enterprise Linux 5 Disk 3&lt;br /&gt;cd /media/cdrom/Server&lt;br /&gt;rpm -Uvh sysstat-7.*&lt;br /&gt;cd /&lt;br /&gt;eject&lt;/pre&gt;&lt;/blockquote&gt;Create the new groups and users:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;groupadd oinstall&lt;br /&gt;groupadd dba&lt;br /&gt;groupadd oper&lt;br /&gt;groupadd asmadmin&lt;br /&gt;&lt;br /&gt;useradd -g oinstall -G dba,oper,asmadmin oracle&lt;br /&gt;passwd oracle&lt;/pre&gt;&lt;/blockquote&gt;Note. We are not going to use the "asmadmin" group, since this installation will not use ASM.&lt;br /&gt;&lt;br /&gt;Create the directories in which the Oracle software will be installed:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;mkdir -p /u01/app/oracle/product/11.1.0/db_1&lt;br /&gt;chown -R oracle:oinstall /u01&lt;br /&gt;chmod -R 775 /u01&lt;/pre&gt;&lt;/blockquote&gt;Login as root and issue the following command:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;xhost +&lt;machine-name&gt;&lt;/machine-name&gt;&lt;/pre&gt;&lt;/blockquote&gt;Login as the oracle user and add the following lines at the end of the .bash_profile file:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;# Oracle Settings&lt;br /&gt;TMP=/tmp; export TMP&lt;br /&gt;TMPDIR=$TMP; export TMPDIR&lt;br /&gt;&lt;br /&gt;ORACLE_HOSTNAME=oel45.localdomain; export ORACLE_HOSTNAME&lt;br /&gt;ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE&lt;br /&gt;ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1; export ORACLE_HOME&lt;br /&gt;ORACLE_SID=DB11G; export ORACLE_SID&lt;br /&gt;ORACLE_TERM=xterm; export ORACLE_TERM&lt;br /&gt;PATH=/usr/sbin:$PATH; export PATH&lt;br /&gt;PATH=$ORACLE_HOME/bin:$PATH; export PATH&lt;br /&gt;&lt;br /&gt;LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH&lt;br /&gt;CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH&lt;br /&gt;&lt;br /&gt;if [ $USER = "oracle" ]; then&lt;br /&gt;  if [ $SHELL = "/bin/ksh" ]; then&lt;br /&gt;    ulimit -p 16384&lt;br /&gt;    ulimit -n 65536&lt;br /&gt;  else&lt;br /&gt;    ulimit -u 16384 -n 65536&lt;br /&gt;  fi&lt;br /&gt;fi&lt;/pre&gt;&lt;/blockquote&gt;&lt;h2&gt;Installation&lt;/h2&gt;Log into the oracle user. If you are using X emulation then set the DISPLAY environmental variable:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;DISPLAY=&lt;machine-name&gt;:0.0; export DISPLAY&lt;/machine-name&gt;&lt;/pre&gt;&lt;/blockquote&gt;Start the Oracle Universal Installer (OUI) by issuing the following command in the database directory:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;./runInstaller&lt;/pre&gt;&lt;/blockquote&gt;During the installation enter the appropriate ORACLE_HOME and name then continue installation. For a more detailed look at the installation process, click on the links below to see screen shots of each stage.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/01-SelectInstallationMethod.jpg"&gt;Select Installation Method&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/02-SpecifyInventoryDirectoryAndCredentials.jpg"&gt;Specify Inventory Directory and Credentials&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/03-SelectInstallationType.jpg"&gt;Select Installation Type&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/04-InstallLocation.jpg"&gt;Install Location&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/05-ProductSpecificPrerequisiteChecks.jpg"&gt;Product-Specific Prerequisite Checks&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/06-SelectConfigurationOption.jpg"&gt;Select Configuration Option&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/07-SelectDatabaseConfiguration.jpg"&gt;Select Database Configuration&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/08-SpecifyDatabaseConfigurationOptions.jpg"&gt;Specify Database Configuration Options&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/09-SpecifyDatabaseConfigurationDetails.jpg"&gt;Specify Database Configuration Details&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/10-SelectDatabaseManagementOption.jpg"&gt;Select Database Management Option &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/11-SpecifyDatabaseStorageOption.jpg"&gt;Specify Database Storage Option&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/12-SpecifyBackupAndRecoveryOptions.jpg"&gt;Specify Backup and Recovery Options&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/13-SpecifyDatabaseSchemaPasswords.jpg"&gt;Specify Database Schema Passwords&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/14-OracleConfigurationManagerRegistration.jpg"&gt;Oracle Configuration Manager Registration&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/15-Summary.jpg"&gt;Summary&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/16-Install.jpg"&gt;Install&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/17-ConfigurationAssistants.jpg"&gt;Configuration Assistants&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/18-DatabaseConfigurationAssistant.jpg"&gt;Database Configuration Assistant&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/19-DatabaseConfigurationAssistantSummary.jpg"&gt;DatabaseConfiguration Assistant Summary&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/20-ExecuteConfigurationScripts.jpg"&gt;Execute Configuration Scripts&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/21-EndOfInstallation.jpg"&gt;End of Installation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/22-OEM-DBControlLogin.jpg"&gt;OEM Database Control Login&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/11g/images/DB11gR1/23-OEM-DBControl.jpg"&gt;OEM Database Control&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2&gt;Post Installation&lt;/h2&gt;Edit the /etc/oratab file setting the restart flag for each instance to 'Y':&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;DB11G:/u01/app/oracle/product/11.1.0/db_1:Y&lt;/pre&gt;&lt;/blockquote&gt;For more information see:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://download.oracle.com/docs/cd/B28359_01/install.111/b32002/toc.htm"&gt;Oracle Database Installation Guide 11g Release 1 (11.1) for Linux&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle-base.com/articles/linux/AutomatingDatabaseStartupAndShutdownOnLinux.php"&gt;Automating Database Startup and Shutdown on Linux&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Hope this helps. Regards Tim...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-4384006182691512754?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/4384006182691512754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/07/oracle-database-11g-release-1-111.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/4384006182691512754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/4384006182691512754'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/07/oracle-database-11g-release-1-111.html' title='Oracle Database 11g Release 1 (11.1) Installation On Enterprise Linux 4.5 and 5.0'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-2023937241860097423</id><published>2011-07-20T18:59:00.000-07:00</published><updated>2011-08-09T00:41:30.168-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='backup restore linux'/><title type='text'>Backup Restore Linux</title><content type='html'>The best tool to use for this is probably dump, which is a standard linux tool and will give you the whole filesystem. I would do something like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-size: small;"&gt;&lt;code&gt;/sbin/dump -0uan -f - /&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: small;"&gt;&lt;code&gt;| gzip -2&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: small;"&gt;&lt;code&gt;| ssh user@serverB &lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: small;"&gt;&lt;code&gt;dd of=/backup/server-full-backup-`date '+%d-%B-%Y'`.dump.gz&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size: small;"&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;This will do a file system dump of / (make sure you don't need to dump&lt;br /&gt;any other mounts!), compress it with gzip and ssh it to a remote server&lt;br /&gt;(serverB), storing it in /backup/. If you later need&lt;br /&gt;to browse the backup you use restore:&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;restore -i&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;Another option, if you don't have access to dump is to use tar and do something like&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;tar -zcvpf /backup/full-backup-`date '+%d-%B-%Y'`.tar.gz&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;--directory / --exclude=mnt --exclude=proc --exclude=tmp .&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;But tar does not handle changes in the file system as well. &lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-2023937241860097423?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/2023937241860097423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/07/backup-restore-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/2023937241860097423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/2023937241860097423'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/07/backup-restore-linux.html' title='Backup Restore Linux'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-3344846008616254549</id><published>2011-07-20T01:30:00.000-07:00</published><updated>2011-07-20T01:30:25.630-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='samba'/><title type='text'>seting samba</title><content type='html'>seting samba:&lt;br /&gt;&lt;br /&gt;1.masuk dg putty&lt;br /&gt;2.vi /etc/samba/smb.conf&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;3.tambahkan:&lt;br /&gt;[jakarta]&lt;br /&gt;path=/opt/jakarta&lt;br /&gt;public=no&lt;br /&gt;writable=yes&lt;br /&gt;valid users=adm&lt;br /&gt;&lt;br /&gt;4.save dan keluar vi&lt;br /&gt;5.buat user adm&lt;br /&gt;#smbpasswd -a adm&lt;br /&gt;#masukin passwordnya&lt;br /&gt;6./etc/init.d/smb restart&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-3344846008616254549?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/3344846008616254549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/07/seting-samba.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/3344846008616254549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/3344846008616254549'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/07/seting-samba.html' title='seting samba'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-6808390527253433221</id><published>2011-07-20T00:58:00.001-07:00</published><updated>2011-07-20T02:49:44.514-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='yum behind proxy'/><title type='text'>yum behind proxy</title><content type='html'>&lt;h3&gt;1) Configure yum.conf&lt;/h3&gt;&lt;blockquote&gt;vi /etc/yum.conf&lt;/blockquote&gt;enter following lines at bottom of [main] section&lt;br /&gt;&lt;blockquote&gt;proxy=http://yourproxyaddress:port/&lt;br /&gt;proxy_username=youruser&lt;br /&gt;proxy_password=yourpassword&lt;/blockquote&gt;&lt;h3&gt;2) Export http_proxy variable&lt;/h3&gt;&lt;blockquote&gt;export http_proxy=”http://username:password@yourproxyaddress:3128/”&lt;/blockquote&gt;&lt;h3&gt;3) Export http_proxy variable in bash login script&lt;/h3&gt;&lt;blockquote&gt;vi /root/.bash_profile&lt;/blockquote&gt;&lt;blockquote&gt;export http_proxy=”http://username:password@yourproxyaddress:3128/”&lt;/blockquote&gt;This will help you to export http_proxy variable automatically everytime you login.&lt;br /&gt;Now use “yum list” command to check for its working.&lt;br /&gt;&lt;blockquote&gt;yum list&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-6808390527253433221?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/6808390527253433221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/07/yum-behind-proxy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/6808390527253433221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/6808390527253433221'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/07/yum-behind-proxy.html' title='yum behind proxy'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-4515648367851278310</id><published>2011-07-19T21:11:00.001-07:00</published><updated>2011-07-19T21:11:52.965-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TAR'/><title type='text'>TAR LINUX</title><content type='html'>&amp;nbsp;&amp;nbsp; tar cvzf foo.tgz cps100&lt;br /&gt;will tar the directory cps100 (and its files/subdirectories) into a tar file named foo.tgz.&lt;br /&gt;&lt;br /&gt;To extract the contents of a tar file use:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tar xvzf foo.tgz&lt;br /&gt;&lt;br /&gt;This untars/extracts (x) into the directory from which the command is invoked, and prints the files being&lt;br /&gt;extracted (v).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-4515648367851278310?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/4515648367851278310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/07/tar-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/4515648367851278310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/4515648367851278310'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/07/tar-linux.html' title='TAR LINUX'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-8228053549492294204</id><published>2011-07-18T18:40:00.001-07:00</published><updated>2011-07-20T01:00:25.077-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cpio'/><title type='text'>CPIO</title><content type='html'>How to create / extract using cpio command !&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. Create *.cpio Archive File&lt;br /&gt;&lt;br /&gt;You can create a *.cpio archive that contains files and directories using cpio -ov&lt;br /&gt;&lt;br /&gt;$ cd objects&lt;br /&gt;&lt;br /&gt;$ ls&lt;br /&gt;file1.o file2.o file3.o&lt;br /&gt;&lt;br /&gt;$ ls | cpio -ov &amp;gt; /tmp/object.cpio&lt;br /&gt;&lt;br /&gt;As seen above, the ls command passes the three object filenames to cpio command and cpio generates the object.cpio archive.&lt;br /&gt;2. Extract *.cpio Archive File&lt;br /&gt;&lt;br /&gt;cpio extract: To extract a given *.cpio file, use cpio -iv as shown below.&lt;br /&gt;&lt;br /&gt;$ mkdir output&lt;br /&gt;&lt;br /&gt;$ cd output&lt;br /&gt;&lt;br /&gt;$ cpio -idv &amp;lt; /tmp/object.cpio&lt;br /&gt;&lt;br /&gt;3. Create *.cpio Archive with Selected Files&lt;br /&gt;&lt;br /&gt;The following example creates a *.cpio archive only with *.c files.&lt;br /&gt;&lt;br /&gt;$ find . -iname *.c -print | cpio -ov &amp;gt;/tmp/c_files.cpio&lt;br /&gt;&lt;br /&gt;4. Create *.tar Archive File using cpio -F&lt;br /&gt;&lt;br /&gt;We already know how to use the tar command effectively.&lt;br /&gt;&lt;br /&gt;Did you know that you can also use cpio command to create tar files as shown below?&lt;br /&gt;&lt;br /&gt;$ ls | cpio -ov -H tar -F sample.tar&lt;br /&gt;&lt;br /&gt;As seen above, instead of redirecting the standard output you can mention the output archive filename with the option -F.&lt;br /&gt;5. Extract *.tar Archive File using cpio command&lt;br /&gt;&lt;br /&gt;You can also extract a tar file using cpio command as shown below.&lt;br /&gt;&lt;br /&gt;$ cpio -idv -F sample.tar&lt;br /&gt;&lt;br /&gt;6. View the content of *.tar Archive File&lt;br /&gt;&lt;br /&gt;To view the content of *.tar file, do the following.&lt;br /&gt;&lt;br /&gt;$ cpio -it -F sample.tar&lt;br /&gt;&lt;br /&gt;7. Create a *.cpio Archive with the Original files that a Symbolic Link Points&lt;br /&gt;&lt;br /&gt;cpio archive can be created with the original files that a symbolic link is referring to as shown below.&lt;br /&gt;&lt;br /&gt;$ ls | cpio -oLv &amp;gt;/tmp/test.cpio&lt;br /&gt;&lt;br /&gt;8. Preserve the File Modification Time while restoring *.cpio&lt;br /&gt;&lt;br /&gt;The modification time of the files can be preserved when we are restoring the cpio archive files as shown below.&lt;br /&gt;&lt;br /&gt;$ ls | cpio -omv &amp;gt;/tmp/test.cpio&lt;br /&gt;&lt;br /&gt;9. Manipulate Linux and Kernel image files using cpio&lt;br /&gt;&lt;br /&gt;How to View, Modify and Recreate initrd.img – As we discussed a while back, we can also use cpio command to manipulate initrd.img file.&lt;br /&gt;10. Copy Directory Tree from One to Another&lt;br /&gt;&lt;br /&gt;cpio allows you to copy one directory contents into another directory without creating an intermediate archive. It reads the file list from the standard input and pass it to the target directory.&lt;br /&gt;&lt;br /&gt;The example below copies the files and sub-directories of objects directory into /mnt/out directory.&lt;br /&gt;&lt;br /&gt;$ mkdir /mnt/out&lt;br /&gt;&lt;br /&gt;$ cd objects&lt;br /&gt;&lt;br /&gt;$ find . -depth | cpio -pmdv /mnt/out&lt;br /&gt;&lt;br /&gt;In the above example:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * cpio option -p makes cpio to use pass through mode. Its like piping cpio -o into cpio -i.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * cpio option -d creates leading directories as needed in the target directory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-8228053549492294204?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/8228053549492294204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/07/cpio.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/8228053549492294204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/8228053549492294204'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/07/cpio.html' title='CPIO'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-845486114318449903</id><published>2011-07-06T23:22:00.000-07:00</published><updated>2011-07-06T23:22:48.576-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oleh oleh Surabaya'/><title type='text'>Oleh oleh Surabaya</title><content type='html'>Surabaya dikenal sebagai kota Pahlawan, kota yang terbesar ke dua di Indonesia. Banyak pebisnis yang datang dan bila perlu &lt;a href="http://mychococake.com/web/blog/oleh-oleh-khas-surabaya.html"&gt;oleh oleh Surabaya&lt;/a&gt; atau oleh-oleh khas Surabaya bisa dengan cepat mendapatkan di banyak tempat, salah satu yang biasa di pesan adalah di http://mychococake.com&lt;br /&gt;&lt;br /&gt;Oleh oleh Surabaya ini atau oleh-oleh khas Surabaya ini biasa disebut lapis Surabaya atau dalam bahasa lain disebut juga spiku, kue yang empuk, enak dan tidak bikin seret di tenggorokan deh. Jadi laper nih membahasnya, hehehehe.&lt;br /&gt;&lt;br /&gt;Oya untuk macam oleh oleh Surabaya ini ada beberapa:&lt;br /&gt;&lt;b&gt;1. Double Choco&lt;/b&gt; / coklatnya double, jadi banyak coklatnya. Yummy banget deh...&lt;br /&gt;&lt;b&gt;2. Romantic&lt;/b&gt;, khusus yg berjiwa romantis....manis dan sedikit berkumis... (nah lho apa itu hehehehe)&lt;br /&gt;&lt;b&gt;3. Classic&lt;/b&gt;, ini original taste... jadi rasanya oke punya... kayak jaman Belanda doeloe deh&lt;br /&gt;&lt;b&gt;4. Mocca&lt;/b&gt;, ini khusus bagi pecinta mocca... duilaaaaa deh&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mychococake.com/web/blog/oleh-oleh-khas-surabaya.html"&gt;Oleh oleh Surabaya&lt;/a&gt; ini tidak ada pengawet, jadi aman kalo dimakan, gak usah kuatir ama yg namanya pengawet... kalo bisa bikin awet muda sih yang kita cari ya... centil boooo&lt;br /&gt;&lt;br /&gt;Ya udah ini kan cuman tulisan iseng buat ramaikan oleh oleh Surabaya.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-845486114318449903?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/845486114318449903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/07/oleh-oleh-surabaya.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/845486114318449903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/845486114318449903'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/07/oleh-oleh-surabaya.html' title='Oleh oleh Surabaya'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-4126224898379326659</id><published>2011-07-04T20:14:00.000-07:00</published><updated>2011-07-04T20:14:58.638-07:00</updated><title type='text'>Split and join</title><content type='html'>&lt;b&gt;split --b 10000 filebesar.iso prefix&lt;/b&gt;&lt;b&gt;ntar jadinya: prefixaa, prefixab masing2 sebanyak 10000 bytes&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;utk gabung:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;cat prefix* &amp;gt; filehasil.iso&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-4126224898379326659?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/4126224898379326659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/07/split-and-join.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/4126224898379326659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/4126224898379326659'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/07/split-and-join.html' title='Split and join'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-4444158047628862883</id><published>2011-06-30T23:49:00.000-07:00</published><updated>2011-06-30T23:49:40.686-07:00</updated><title type='text'>Cannot ping</title><content type='html'>seting DNS Server di &lt;br /&gt;/etc/resolv.conf&lt;br /&gt;&lt;br /&gt;nameserver 192.168.0.15 (contoh)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-4444158047628862883?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/4444158047628862883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/06/cannot-ping.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/4444158047628862883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/4444158047628862883'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/06/cannot-ping.html' title='Cannot ping'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-2288156784799919018</id><published>2011-06-28T02:33:00.000-07:00</published><updated>2011-06-28T02:33:00.723-07:00</updated><title type='text'>FDM in Linux</title><content type='html'>Install FDM in Linux using wine:&lt;br /&gt;&lt;br /&gt;To use FDM with Wine you need to download mfc42.dll from this website : &lt;a href="http://www.dlldump.com/download-dll-files_new.php/dllfiles/M/mfc42.dll/6.0.400/download.html" rel="nofollow"&gt;http://www.dlldump.com/download-dll-files_new.php/dllfiles/M/mfc42.dll/6.0.400/download.html&lt;/a&gt;. Then you have to copy the mfc42.dll to ~/.wine/drive_c/windows/system32/ in Ubuntu&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-2288156784799919018?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/2288156784799919018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/06/fdm-in-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/2288156784799919018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/2288156784799919018'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/06/fdm-in-linux.html' title='FDM in Linux'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-2130159453246134444</id><published>2011-06-27T19:41:00.000-07:00</published><updated>2011-07-01T00:47:59.817-07:00</updated><title type='text'>Install Wine on Centos 5</title><content type='html'>Trying to install wine using the usual yum command but here is what it says when giving the following command.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;shell&amp;gt;&amp;gt; yum install wine&lt;br /&gt;Loading “fastestmirror” plugin&lt;br /&gt;Loading mirror speeds from cached hostfile&lt;br /&gt;* base: centose.centos.org&lt;br /&gt;* updates: centosj.centos.org&lt;br /&gt;* addons: centosh3.centos.org&lt;br /&gt;* extras: centose-msync-dvd.centos.org&lt;br /&gt;Excluding Packages in global exclude list&lt;br /&gt;Finished&lt;br /&gt;Setting up Install Process&lt;br /&gt;Parsing package install arguments&lt;br /&gt;No package wine available.&lt;br /&gt;Nothing to do&lt;br /&gt;Well the reason is Wine software is not a part of standard CentOS. There is a section on 3rd party repositories called RPMForge. So we will proceed installing the Repositories.&lt;br /&gt;1.) You should make sure that you have Priorities installed&lt;br /&gt;yum-priorities is available in the CentOS 5 repositories: &lt;br /&gt;&lt;b&gt;yum install yum-priorities&lt;/b&gt;&lt;br /&gt;Plugins are enabled in CentOS 5 by default&lt;br /&gt;Make sure that yum-priorities is enabled by editing the /etc/yum/pluginconf.d/priorities.conf file, and ensuring that it contains the following lines: &lt;br /&gt;[main]&lt;br /&gt;enabled=1&lt;br /&gt;Download the rpmforge-release package. Choose one of the two links below, depending on your architecture. If you are unsure of which one to use you can check your architecture with the command uname -i &lt;br /&gt;for i386 &lt;a href="http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm"&gt;http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm &lt;/a&gt;&lt;br /&gt;Install DAG’s GPG key &lt;br /&gt;rpm –import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt&lt;br /&gt;Verify the package you have downloaded &lt;br /&gt;rpm -K rpmforge-release-0.3.6-1.el5.rf.*.rpm&lt;br /&gt;Security warning: The rpmforge-release package imports GPG keys into your RPM database. As long as you have verified the package and trust Dag then it should be safe. &lt;br /&gt;Install the package &lt;br /&gt;rpm -i rpmforge-release-0.3.6-1.el5.rf.*.rpm&lt;br /&gt;This will add a yum repository config file and import the appropriate GPG keys. At this point, you can set the priority of the RPMForge repository, and also of the CentOS repositories if you have not done so yet. &lt;br /&gt;Test with this command: &lt;br /&gt;yum check-updateIt should output these two lines: &lt;br /&gt;Loading “priorities” plugin&lt;br /&gt;…&lt;br /&gt;76 packages excluded due to repository priority protectionsThe number above may differ, but there should be several packages shown as being excluded. &lt;br /&gt;If so then it looks like things are working so try installing something like this &lt;br /&gt;&lt;b&gt;yum –enablerepo=rpmforge install wine&lt;/b&gt;&lt;br /&gt;Thats all Wine is installed.&lt;br /&gt;shell&amp;gt;&amp;gt; which wine&lt;br /&gt;/usr/bin/wine&lt;br /&gt;&lt;br /&gt;********** ADA YANG PAKE YUM ***********&lt;br /&gt;Wine requires many more files than just the RPM. The best way to install wine is using yum. However. CentOS does not come with an "Extras Repository" out of the box. so here are instructions to create a yum repo and install wine using yum.&lt;br /&gt;&lt;br /&gt;paste the following into a file /etc/yum.repos.d/kbsingh-CentOS-Extras.repo&lt;br /&gt;&lt;br /&gt;[kbs-CentOS-Extras]&lt;br /&gt;name=CentOS.Karan.Org-EL$releasever - Stable&lt;br /&gt;gpgcheck=1&lt;br /&gt;gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt&lt;br /&gt;enabled=1&lt;br /&gt;baseurl=http://centos.karan.org/el$releasever/extras/stable/$basearch/RPMS/&lt;br /&gt;# Need a ftp mirror ?  uncomment the line below, &amp;amp; disable the one above&lt;br /&gt;# baseurl=ftp://rpm.karan.org/pub/kbsingh/el$releasever/extras/stable/$basearch/RPMS/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;save the file, go the the command line and type 'yum install wine' (without the quotes) if it is done correctly you should see output similar to what you se below.&lt;br /&gt;&lt;br /&gt;[&lt;a href="mailto:root@localhost"&gt;root@localhost&lt;/a&gt; downloads]# yum install wine&lt;br /&gt;=============================================================================&lt;br /&gt;Package                 Arch       Version          Repository        Size&lt;br /&gt;=============================================================================&lt;br /&gt;Installing:&lt;br /&gt;wine                    i386       0.9.20-1.el4.kb  kbs-CentOS-Extras   15 k&lt;br /&gt;Installing for dependencies:&lt;br /&gt;lcms                    i386       1.15-1.el4.kb    kbs-CentOS-Extras  154 k&lt;br /&gt;libieee1284             i386       0.2.8-4          base               30 k&lt;br /&gt;sane-backends           i386       1.0.14-6         base              2.5 M&lt;br /&gt;wine-capi               i386       0.9.20-1.el4.kb  kbs-CentOS-Extras   18 k&lt;br /&gt;wine-cms                i386       0.9.20-1.el4.kb  kbs-CentOS-Extras   30 k&lt;br /&gt;wine-core               i386       0.9.20-1.el4.kb  kbs-CentOS-Extras  8.9 M&lt;br /&gt;wine-esd                i386       0.9.20-1.el4.kb  kbs-CentOS-Extras   29 k&lt;br /&gt;wine-jack               i386       0.9.20-1.el4.kb  kbs-CentOS-Extras   18 k&lt;br /&gt;wine-ldap               i386       0.9.20-1.el4.kb  kbs-CentOS-Extras   69 k&lt;br /&gt;wine-nas                i386       0.9.20-1.el4.kb  kbs-CentOS-Extras   18 k&lt;br /&gt;wine-tools              i386       0.9.20-1.el4.kb  kbs-CentOS-Extras  487 k&lt;br /&gt;wine-twain              i386       0.9.20-1.el4.kb  kbs-CentOS-Extras   22 k&lt;br /&gt;&lt;br /&gt;Transaction Summary&lt;br /&gt;=============================================================================&lt;br /&gt;Install     13 Package(s)&lt;br /&gt;Update       0 Package(s)&lt;br /&gt;Remove       0 Package(s)&lt;br /&gt;Total download size: 12 M&lt;br /&gt;Is this ok [y/N]: Y&lt;br /&gt;&lt;br /&gt;Downloading Packages:&lt;br /&gt;(1/13): wine-capi-0.9.20- 100% |=========================|  18 kB    00:00&lt;br /&gt;(2/13): wine-ldap-0.9.20- 100% |=========================|  69 kB    00:01&lt;br /&gt;(3/13): wine-nas-0.9.20-1 100% |=========================|  18 kB    00:00&lt;br /&gt;(4/13): wine-twain-0.9.20 100% |=========================|  22 kB    00:00&lt;br /&gt;(5/13): wine-esd-0.9.20-1 100% |=========================|  29 kB    00:00&lt;br /&gt;(6/13): wine-core-0.9.20- 100% |=========================| 8.9 MB    04:06&lt;br /&gt;(7/13): lcms-1.15-1.el4.k 100% |=========================| 154 kB    00:02&lt;br /&gt;(8/13): wine-jack-0.9.20- 100% |=========================|  18 kB    00:00&lt;br /&gt;(9/13): sane-backends-1.0 100% |=========================| 2.5 MB    00:08&lt;br /&gt;(10/13): wine-0.9.20-1.el 100% |=========================|  15 kB    00:00&lt;br /&gt;(11/13): libieee1284-0.2. 100% |=========================|  30 kB    00:00&lt;br /&gt;(12/13): wine-tools-0.9.2 100% |=========================| 487 kB    00:09&lt;br /&gt;(13/13): wine-cms-0.9.20- 100% |=========================|  30 kB    00:00&lt;br /&gt;warning: rpmts_HdrFromFdno: V3 DSA signature: NOKEY, key ID 3e13cf5b&lt;br /&gt;Public key for wine-capi-0.9.20-1.el4.kb.i386.rpm is not installed&lt;br /&gt;Retrieving GPG key from &lt;a href="http://centos.karan.org/RPM-GPG-KEY-karan.org.txt" target="_blank"&gt;http://centos.karan.org/RPM-GPG-KEY-karan.org.txt&lt;/a&gt;&lt;br /&gt;Importing GPG key 0x3E13CF5B "Karanbir Singh (&lt;a href="http://www.karan.org/" target="_blank"&gt;http://www.karan.org/&lt;/a&gt;) &amp;lt;&lt;a href="mailto:kbsingh@karan.org%3E%22"&gt;kbsingh@karan.org&amp;gt;"&lt;/a&gt;&lt;br /&gt;Is this ok [y/N]: y&lt;br /&gt;&lt;br /&gt;Key imported successfully&lt;br /&gt;Running Transaction Test&lt;br /&gt;Finished Transaction Test&lt;br /&gt;Transaction Test Succeeded&lt;br /&gt;Running Transaction&lt;br /&gt;Installing: libieee1284                  ####################### [ 1/13]&lt;br /&gt;Installing: sane-backends                ####################### [ 2/13]&lt;br /&gt;Installing: wine-core                    ####################### [ 3/13]&lt;br /&gt;Installing: wine-capi                    ####################### [ 4/13]&lt;br /&gt;Installing: wine-ldap                    ####################### [ 5/13]&lt;br /&gt;Installing: wine-nas                     ####################### [ 6/13]&lt;br /&gt;Installing: wine-twain                   ####################### [ 7/13]&lt;br /&gt;Installing: wine-esd                     ####################### [ 8/13]&lt;br /&gt;Installing: wine-jack                    ####################### [ 9/13]&lt;br /&gt;Installing: wine-tools                   ####################### [10/13]&lt;br /&gt;Installing: lcms                         ####################### [11/13]&lt;br /&gt;Installing: wine-cms                     ####################### [12/13]&lt;br /&gt;Installing: wine                         ####################### [13/13]&lt;br /&gt;&lt;br /&gt;Installed: wine.i386 0:0.9.20-1.el4.kb&lt;br /&gt;Dependency Installed: lcms.i386 0:1.15-1.el4.kb libieee1284.i386 0:0.2.8-4 sane-backends.i386 0:1.0.14-6 wine-capi.i386 0:0.9.20-1.el4.kb wine-cms.i386 0:0.9.20-1.el4.kb wine-core.i386 0:0.9.20-1.el4.kb wine-esd.i386 0:0.9.20-1.el4.kb wine-jack.i386 0:0.9.20-1.el4.kb wine-ldap.i386 0:0.9.20-1.el4.kb wine-nas.i386 0:0.9.20-1.el4.kb wine-tools.i386 0:0.9.20-1.el4.kb wine-twain.i386 0:0.9.20-1.el4.kb&lt;br /&gt;Complete!&lt;br /&gt;[&lt;a href="mailto:root@localhost"&gt;root@localhost&lt;/a&gt; downloads]#&lt;br /&gt;&lt;br /&gt;Wine should now be properly installed.  If none of this makes sense try the website &lt;a href="http://centos.karan.org/" target="_blank"&gt;http://centos.karan.org/&lt;/a&gt; for more information. and you could also try&lt;br /&gt;&lt;a href="mailto:root@localhost#"&gt;root@localhost#&lt;/a&gt;  man yum&lt;br /&gt;&lt;br /&gt;this will teach you about yum.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-2130159453246134444?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/2130159453246134444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/06/install-wine-on-centos-5.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/2130159453246134444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/2130159453246134444'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/06/install-wine-on-centos-5.html' title='Install Wine on Centos 5'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-3390047337826026890</id><published>2011-06-22T23:39:00.001-07:00</published><updated>2011-06-22T23:39:58.637-07:00</updated><title type='text'>Linux System Monitoring Tools</title><content type='html'>reff : http://www.cyberciti.biz/tips/top-linux-monitoring-tools.html&lt;br /&gt;&lt;br /&gt;I can see that the best tool to monitor processes , CPU, memeory and disk bottleneck at once is atop …&lt;br /&gt;But the tool itself can cause a lot of trouble in heavily loaded servers and it enables process accounting and has a service running all the time …&lt;br /&gt;To use it efficiently on RHEL , CentOS;&lt;br /&gt;1- install rpmforge repo&lt;br /&gt;2- # yum install atop&lt;br /&gt;3- # killalll atop&lt;br /&gt;4- # chkconfig atop off&lt;br /&gt;5- # rm -rf /tmp/atop.d/ /var/log/atop/&lt;br /&gt;6- then don’t directly run “atop” command , but instead run it as follows;&lt;br /&gt;# ATOPACCT=” atop&lt;br /&gt;This tool has saved me hundreds of hours really! and helped me to diagnose bottlenecks and solve them that couldn’t otherwise be easily detected and would need many different tools&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-3390047337826026890?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/3390047337826026890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/06/linux-system-monitoring-tools.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/3390047337826026890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/3390047337826026890'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/06/linux-system-monitoring-tools.html' title='Linux System Monitoring Tools'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-670890696016833473</id><published>2011-06-22T21:50:00.001-07:00</published><updated>2011-06-22T21:50:16.466-07:00</updated><title type='text'>Save Memory VPS</title><content type='html'>http://www.thinkwiki.org/wiki/How_to_save_memory&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-670890696016833473?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/670890696016833473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/06/save-memory-vps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/670890696016833473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/670890696016833473'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/06/save-memory-vps.html' title='Save Memory VPS'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-7076126083138541360</id><published>2011-06-22T20:06:00.000-07:00</published><updated>2011-06-22T20:15:02.726-07:00</updated><title type='text'>Alternatif cPanel, email server di VPS</title><content type='html'>Memori dan harddisknya kalau besar install&lt;br /&gt;&amp;nbsp; control panel seperti kloxo, cpanel, directadmin dll&lt;br /&gt;&amp;nbsp; kloxo = free, bisa sekalian manage dns&lt;br /&gt;&lt;br /&gt;tapi kalau minim mendingan installasi from scratch saja&lt;br /&gt;MTA bisa pakai exim, postfix atau qmail&lt;br /&gt;webmail bisa pakai squirrel&lt;br /&gt;imap/pop3 bisa pakai courier-imap atau uw-imap&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MTA: exim&lt;br /&gt;POP3/IMAP: dovecot&lt;br /&gt;Webmail: Squirrelmail&lt;br /&gt;&lt;br /&gt;Cara install kloxo:&lt;br /&gt;1. Masuk ke root dengan putty&lt;br /&gt;2. Lalu ketik cd /&lt;br /&gt;3. Tekan enter&lt;br /&gt;4. ﻿&lt;code&gt;setenforce 0&lt;/code&gt;&lt;br /&gt;5. Tekan enter&lt;br /&gt;6. &lt;code&gt;wget http://download.lxlabs.com/download/kloxo/production/kloxo-install-master.sh&lt;/code&gt;&lt;br /&gt;7. Tekan enter&lt;br /&gt;8. &lt;code&gt;sh ./kloxo-install-master.sh&lt;br /&gt;9 Tekan enter&lt;br /&gt;10. Proses instal...&lt;br /&gt;Setelah proses ini selesai tutup putty dan coba kita cek dengan menggunakan http://IP:7778&lt;br /&gt;jika terbuka berarti semua instalisasi sukses. Sedangkan untuk masuk ke kloxo admin yang baru diinstal user dan passwordnya standar yaitu admin.&lt;br /&gt;Untuk keamanan jangan lupa untuk merubah password standar dengan yang kita inginkan.&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;source: http://wiki.lxcenter.org/Kloxo+Installation+Guide&amp;nbsp;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-7076126083138541360?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/7076126083138541360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/06/alternatif-cpanel-email-server-di-vps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/7076126083138541360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/7076126083138541360'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/06/alternatif-cpanel-email-server-di-vps.html' title='Alternatif cPanel, email server di VPS'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-246727310016501252</id><published>2011-06-22T02:19:00.001-07:00</published><updated>2011-06-22T02:19:17.988-07:00</updated><title type='text'>Connect ftp dengan browser</title><content type='html'>pakai sintak:&lt;br /&gt;&lt;br /&gt;ftp://username:password@alamatnya/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-246727310016501252?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/246727310016501252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/06/connect-ftp-dengan-browser.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/246727310016501252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/246727310016501252'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/06/connect-ftp-dengan-browser.html' title='Connect ftp dengan browser'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-5310263397559941359</id><published>2011-06-22T01:44:00.001-07:00</published><updated>2011-06-22T01:44:41.167-07:00</updated><title type='text'>Buat link file di Linux</title><content type='html'>&lt;h2&gt;ln - make symbolic links&lt;/h2&gt;A symbolic link is a "file" pointing to another file. &lt;br /&gt;To make a symbolic link : &lt;br /&gt;&lt;pre&gt;ln /original/file /new/link&lt;/pre&gt;This makes /original/file and /new/link the same file - edit one and the other will change. The file will not be gone until both /original/file and /new/link are deleted. &lt;br /&gt;You can only do this with files. For folders, you must make a "soft" link. &lt;br /&gt;To make a soft symbolic link : &lt;br /&gt;&lt;pre&gt;ln -s /original/file /new/link&lt;/pre&gt;Example: &lt;br /&gt;&lt;pre&gt;ln -s /usr/src/linux-2.4.20 /usr/src/linux&lt;/pre&gt;Note that -s makes an "empty" file pointing to the original file/folder. So if you delete the folder a symlink points to, you will be stuck with a dead symlink (just &lt;a href="http://linuxreviews.org/man/rm"&gt;rm&lt;/a&gt; it).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-5310263397559941359?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/5310263397559941359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/06/buat-link-file-di-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/5310263397559941359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/5310263397559941359'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/06/buat-link-file-di-linux.html' title='Buat link file di Linux'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-397376694536863939</id><published>2011-06-22T01:42:00.000-07:00</published><updated>2011-06-22T01:42:59.063-07:00</updated><title type='text'>Install vsftp di Centos VPS</title><content type='html'>1. Langkah pertama Instalasi Paket vsftpd&lt;br /&gt;[root@voip-client ~]# yum install vsftpd&lt;br /&gt;2. Lalu Konfigurasi&lt;br /&gt;[root@voip-client ~]# vim /etc/vsftpd/vsftpd.conf&lt;br /&gt;Yang perlu dirubah adalah:&lt;br /&gt;anonymous_enable=NO&lt;br /&gt;local_enable=YES&lt;br /&gt;write_enable=YES&lt;br /&gt;local_umask=022&lt;br /&gt;dirmessage_enable=YES&lt;br /&gt;xferlog_enable=YES&lt;br /&gt;connect_from_port_20=YES&lt;br /&gt;xferlog_std_format=YES&lt;br /&gt;ascii_upload_enable=YES&lt;br /&gt;ascii_download_enable=YES&lt;br /&gt;ftpd_banner=Welcome to FTP Server K-Place.&lt;br /&gt;chroot_list_enable=YES&lt;br /&gt;chroot_list_file=/etc/vsftpd/chroot_list&lt;br /&gt;listen=YES&lt;br /&gt;pam_service_name=vsftpd&lt;br /&gt;userlist_enable=YES&lt;br /&gt;tcp_wrappers=YES&lt;br /&gt;3. Kemudian buat user lokal dengan nama noc&lt;br /&gt;[root@voip-client ~]# adduser noc&lt;br /&gt;[root@voip-client ~]# passwd noc&lt;br /&gt;Changing password for user noc.&lt;br /&gt;New UNIX password:&lt;br /&gt;BAD PASSWORD: it is too simplistic/systematic&lt;br /&gt;Retype new UNIX password:&lt;br /&gt;passwd: all authentication tokens updated successfully.&lt;br /&gt;4. Membuat file chroot_list&lt;br /&gt;File ini berisi daftar user yang bisa mengakses FTP server.&lt;br /&gt;[root@voip-client ~]# vim /etc/vsftpd/chroot_list&lt;br /&gt;Isinya adalah :&lt;br /&gt;noc&lt;br /&gt;5. Restart Service FTP&lt;br /&gt;[root@voip-client ~]# service vsftpd restart&lt;br /&gt;[root@voip-client ~]# chkconfig vsftpd on&lt;br /&gt;&lt;br /&gt;You use OpenSSL to generate a certificate for vsftpd. The certificate is store on your server, in a location of your choice. Here I choose to put it in the /etc/vsftpd directory. As well, you specify a 'lifetime' for the certificate; here's it set for a year ("-days 365"). &lt;br /&gt;Note that the backslashes only signify line breaks. You should be able to copy/paste &amp;amp; run it as it is, or remove the backslashes and the line breaks. You may need to create this directory first (mkdir /etc/vsftpd). &lt;br /&gt;&lt;pre&gt;[root@vps] openssl req -x509 -nodes -days 365 -newkey rsa:1024 \&lt;br /&gt; -keyout /etc/vsftpd/vsftpd.pem \&lt;br /&gt; -out /etc/vsftpd/vsftpd.pem&lt;/pre&gt;You will be prompted with a series of question, which you answer as they appear. When done the certificate will be installed in the /etc/vsftpd directory. &lt;br /&gt;&lt;div class="editsection" style="float: right; margin-left: 5px;"&gt;[&lt;a href="http://wiki.vpslink.com/index.php?title=Configuring_vsftpd_for_secure_connections_%28TLS/SSL/SFTP%29&amp;amp;action=edit&amp;amp;section=3" title="Edit section: Configure vsftpd"&gt;edit&lt;/a&gt;]&lt;/div&gt;&lt;a href="http://www.blogger.com/post-create.g?blogID=6047301590810575251" name="Configure_vsftpd"&gt;&lt;/a&gt;&lt;br /&gt;&lt;h2&gt; Configure vsftpd &lt;/h2&gt;To configure vsftpd you edit the file /etc/vsftpd/vsftpd.conf and add the following lines: &lt;br /&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;ssl_enable=YES&lt;br /&gt; allow_anon_ssl=NO&lt;br /&gt; force_local_data_ssl=NO&lt;br /&gt; force_local_logins_ssl=NO&lt;br /&gt; ssl_tlsv1=YES&lt;br /&gt; ssl_sslv2=NO&lt;br /&gt; ssl_sslv3=NO&lt;br /&gt; rsa_cert_file=/etc/vsftpd/vsftpd.pem&lt;/pre&gt;Restart vsftpd for these settings to take effect: &lt;br /&gt;&lt;pre&gt;[root@vps] /etc/rc.d/init.d/vsftpd restart&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Artikel lain:&lt;br /&gt;&lt;h2&gt;How to install VSFTP in CentOS&lt;/h2&gt;Check whether you have installed vsftpd installed or not by using following command.&lt;br /&gt;&lt;pre&gt;[root@localhost ~]# yum list installed | grep ftp&lt;/pre&gt;If you find vsftpd in the output, then ftp server installed in CentOS.&lt;br /&gt;1. Command to install VSFTP&lt;br /&gt;&lt;pre&gt;# yum install vsftpd&lt;/pre&gt;2. Add VSFTPD service in chkconfig (current run level)&lt;br /&gt;&lt;pre&gt;# chkconfig vsftpd on&lt;/pre&gt;3. Start the FTP service&lt;br /&gt;&lt;pre&gt;# service vsftpd start&lt;/pre&gt;4. After starting the vsftpd service try connecting ftp locally&lt;br /&gt;&lt;pre&gt;# ftp localhost&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-397376694536863939?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/397376694536863939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/06/install-vsftp-di-centos-vps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/397376694536863939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/397376694536863939'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/06/install-vsftp-di-centos-vps.html' title='Install vsftp di Centos VPS'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-1042898390138842176</id><published>2011-06-21T22:11:00.001-07:00</published><updated>2011-06-21T22:11:22.074-07:00</updated><title type='text'>Replace text dg command line di linux</title><content type='html'>We are going to use the following syntax to find and replace a string of text in a file:&lt;br /&gt;# &lt;strong&gt;sed -i ’s/[orginal_text]/[new_text]/’ filename.txt&lt;/strong&gt;&lt;br /&gt;Say you have a file called “database.txt” with numerous instances of the IP address of your database server in it. You have just switched to a new database server and need to update it with the new server’s IP address. The old IP address is 192.168.1.16 and the new one is 192.168.1.22. Here’s how you go about it:&lt;br /&gt;# &lt;strong&gt;cat database.txt&lt;/strong&gt;&lt;br /&gt;LOCAL_DATABASE = 192.168.1.16&lt;br /&gt;LOCAL_DIR = /home/calvin/&lt;br /&gt;PROD_DB = 192.168.1.16&lt;br /&gt;#&amp;nbsp;&lt;strong&gt;sed -i ’s/192.168.1.16/192.168.1.22/g’&amp;nbsp;database.txt&lt;/strong&gt;&lt;br /&gt;# c&lt;strong&gt;at database.txt&lt;/strong&gt;&lt;br /&gt;LOCAL_DATABASE = 192.168.1.22&lt;br /&gt;LOCAL_DIR = /home/calvin/&lt;br /&gt;PROD_DB = 192.168.1.22&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-1042898390138842176?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/1042898390138842176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/06/replace-text-dg-command-line-di-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/1042898390138842176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/1042898390138842176'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/06/replace-text-dg-command-line-di-linux.html' title='Replace text dg command line di linux'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-758025663910559720</id><published>2011-06-20T02:34:00.000-07:00</published><updated>2011-06-20T02:34:39.213-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LAMP'/><title type='text'>LAMP</title><content type='html'>To install MySQL, we do this:&lt;br /&gt;&lt;br /&gt;yum install mysql mysql-server&lt;br /&gt;&lt;br /&gt;Then we create the system startup links for MySQL (so that MySQL starts automatically whenever the system boots) and start the MySQL server:&lt;br /&gt;&lt;br /&gt;chkconfig --levels 235 mysqld on&lt;br /&gt;/etc/init.d/mysqld start&lt;br /&gt;&lt;br /&gt;Run&lt;br /&gt;&lt;br /&gt;mysqladmin -u root password yourrootsqlpassword&lt;br /&gt;mysqladmin -h server1.example.com -u root password yourrootsqlpassword&lt;br /&gt;&lt;br /&gt;to set a password for the user root (otherwise anybody can access your MySQL database!).&lt;br /&gt;------&lt;br /&gt;&lt;br /&gt;Installing Apache2&lt;br /&gt;&lt;br /&gt;Apache2 is available as a CentOS package, therefore we can install it like this:&lt;br /&gt;&lt;br /&gt;yum install httpd&lt;br /&gt;&lt;br /&gt;Now configure your system to start Apache at boot time...&lt;br /&gt;&lt;br /&gt;chkconfig --levels 235 httpd on&lt;br /&gt;&lt;br /&gt;... and start Apache:&lt;br /&gt;&lt;br /&gt;/etc/init.d/httpd start&lt;br /&gt;&lt;br /&gt;Now direct your browser to http://192.168.0.100, and you should see the Apache2 placeholder page&lt;br /&gt;&lt;br /&gt;---------&lt;br /&gt;&lt;br /&gt;Installing PHP5&lt;br /&gt;&lt;br /&gt;We can install PHP5 and the Apache PHP5 module as follows:&lt;br /&gt;&lt;br /&gt;yum install php&lt;br /&gt;&lt;br /&gt;We must restart Apache afterwards:&lt;br /&gt;&lt;br /&gt;/etc/init.d/httpd restart&lt;br /&gt;&lt;br /&gt;vi /var/www/html/info.php&lt;br /&gt;&lt;br /&gt;phpinfo();&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;http://www.howtoforge.com/installing-apache2-with-php5-and-mysql-support-on-centos-5.3-lamp-p2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-758025663910559720?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/758025663910559720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/06/lamp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/758025663910559720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/758025663910559720'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/06/lamp.html' title='LAMP'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-6034691318548888300</id><published>2011-06-19T23:30:00.001-07:00</published><updated>2011-08-10T03:04:12.945-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vnc'/><title type='text'>GUI on Centos Linux</title><content type='html'>yum -y groupinstall gnome-desktop&lt;br /&gt;yum -y install vnc-server xterm&lt;br /&gt;yum -y install firefox x11-xorg&lt;br /&gt;&lt;br /&gt;1.root# useradd vncuser&lt;br /&gt;2.root# passwd vncuser&lt;br /&gt;3.login as vncuser&lt;br /&gt;root# su vncuser&lt;br /&gt;4.vncuser# vncpasswd --&amp;gt; ini penting utk add vnc user&lt;br /&gt;5.cek dengan:&lt;br /&gt;ls .vnc&lt;br /&gt;&lt;br /&gt;vncserver :[pilih screen]&lt;br /&gt;&lt;br /&gt;cek /root/.vnc/ ada file:&lt;br /&gt;passwd, [domain]:1.log, [domain]:1.pid, xstartup&lt;br /&gt;&lt;br /&gt;vi xstartup,edit spt:&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;( while true; do xterm; done ) &amp;amp;&lt;br /&gt;&lt;br /&gt;# Uncomment the following two lines for normal desktop:&lt;br /&gt;unset SESSION_MANAGER&lt;br /&gt;exec /etc/X11/xinit/xinitrc&lt;br /&gt;&lt;br /&gt;[ -x /etc/vnc/xstartup ] &amp;amp;&amp;amp; exec /etc/vnc/xstartup&lt;br /&gt;[ -r $HOME/.Xresources ] &amp;amp;&amp;amp; xrdb $HOME/.Xresources&lt;br /&gt;xsetroot -solid grey&lt;br /&gt;vncconfig -iconic &amp;amp;&lt;br /&gt;xterm -geometry 1024x768 -ls -name "$VNCDESKTOP Desktop" &amp;amp;&lt;br /&gt;gnome-session &amp;amp;&lt;br /&gt;&lt;br /&gt;tambahan vnc:&lt;br /&gt;&lt;a href="http://wiki.centos.org/HowTos/VNC-Server"&gt;http://wiki.centos.org/HowTos/VNC-Server&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-6034691318548888300?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/6034691318548888300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/06/gui-on-centos-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/6034691318548888300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/6034691318548888300'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/06/gui-on-centos-linux.html' title='GUI on Centos Linux'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-6735914159326209659</id><published>2011-04-25T00:33:00.000-07:00</published><updated>2011-04-25T00:33:23.292-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Amibroker'/><title type='text'>Yahoo data</title><content type='html'>Data di yahoo: &lt;br /&gt;http://chartapi.finance.yahoo.com/instrument/1.0/BMRI.JK/chartdata;type=quote;range=1d/csv/ &lt;br /&gt;&lt;br /&gt;Convert timestamp ke jam yg terbaca&lt;br /&gt;if(!isset($_POST["tmstp"]))$tmstp=456733800;&lt;br /&gt;else $tmstp=intval($_POST["tmstp"]);&lt;br /&gt;echo 'Timestamp '.$tmstp.' is '.date("r",$tmstp).'&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-6735914159326209659?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/6735914159326209659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/04/yahoo-data.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/6735914159326209659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/6735914159326209659'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/04/yahoo-data.html' title='Yahoo data'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-8446070631910624295</id><published>2011-04-25T00:01:00.000-07:00</published><updated>2011-04-25T00:02:59.498-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Amibroker'/><title type='text'>MT4 Plugin for Amibroker</title><content type='html'>Source: http://www.marketcalls.in/amibroker/mt4-plugin-for-amibroker.html&lt;br /&gt;&lt;br /&gt;Do you ever tried testing of real time charts in your Amibroker Software.&lt;br /&gt;If not then try start with MT4 Plugin for Amibroker to analyse live forex data.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;All you need to do is&lt;br /&gt;1)Download Meta Trader 4&lt;br /&gt;2)Install it in your windows system and open a demo account with metatrader&lt;br /&gt;3)Download &lt;a href="http://www.marketcalls.in/wp-content/uploads/2010/12/MT4_data_plugin.zip"&gt;MT4 Plugin for Amibroker&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Download MT4 Plugin&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Follow the procedure to setup live forex data in Amibroker&lt;br /&gt;After Downloading MT4 Plugin&lt;br /&gt;1.Copy MT4d.dll to C:\Program Files\AmiBroker\Plugins&lt;br /&gt;2.Copy RateServer.exe to C:\Program Files\AmiBroker&lt;br /&gt;3.Open dos prompt and enter command&lt;br /&gt;[cd C:\Program Files\AmiBroker]&lt;br /&gt;[rateserver.exe /regserver]&lt;br /&gt;4.Copy exp.dll to C:\Program Files\MetaTrader 4\experts\libraries&lt;br /&gt;5.Copy exp.mqh to C:\Program Files\MetaTrader 4\experts\include&lt;br /&gt;click exp.mqh and compile&lt;br /&gt;6.Copy exportfb.mq4 to C:\Program Files\MetaTrader 4\experts&lt;br /&gt;click exportfb.mq4 and compile&lt;br /&gt;7.Run metatrader4, then RateServer is displayed in tasktray&lt;br /&gt;Run PluginAB Expert Advisor&lt;br /&gt;* check Allow DLL imports&lt;br /&gt;8.Run Amibroker&lt;br /&gt;9.Click Amibroker and click [File]-[Database setting]&lt;br /&gt;select Datasource  MetaTrader4 data Plug-in&lt;br /&gt;and set Base time interval  –  1Minute or Hourly or EOD&lt;br /&gt;10.[Symbol]-[New] add symbol&lt;br /&gt;USDJPY,GBPJPY… so on&lt;br /&gt;11. On the Bottom Right corner of Amibroker there is a provision to enable&lt;br /&gt;mt4 plugin which is in WAIT status by default. Just change the status to&lt;br /&gt;CONNECT&lt;br /&gt;Now Its all Done and now you can see charts updating live forex data in your Amiborker Software&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-8446070631910624295?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/8446070631910624295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/04/mt4-plugin-for-amibroker.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/8446070631910624295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/8446070631910624295'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/04/mt4-plugin-for-amibroker.html' title='MT4 Plugin for Amibroker'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-5618059776890360673</id><published>2011-03-31T01:10:00.001-07:00</published><updated>2011-03-31T01:10:28.478-07:00</updated><title type='text'>Install ubuntu desktop on linux VPS</title><content type='html'>VNC on Ubuntu 10.04&lt;br /&gt;I have a linux Ubuntu 8.10 VPS that I would like to have GUI and use it as remote desktop pc just like what we can do with Windows XP. Here are the steps that I run. &lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;1. Most of the VPS that delivered by VPS hosting provider is minimal setup of linux, it means that most of the time it only have SSH server installed and the other services such as HTTP server, FTP server, Mail server must be installed by our self. The default setup of VPS linux also doesn’t have window manager (GUI) hence we must install it first:&lt;br /&gt;sudo apt-get install ubuntu-desktop&lt;br /&gt;2. Configure the Gnome Desktop Manager and XServer&lt;br /&gt;sudo /etc/init.d/gdm start&lt;br /&gt;or&lt;br /&gt;start gdm&lt;br /&gt;sudo dpkg-reconfigure xserver-xorg&lt;br /&gt;3. After we installed a window manager, next step is to install the remote desktop server, for linux we use TightVNC&lt;br /&gt;sudo apt-get install tightvncserver&lt;br /&gt;4. Next we need to configure the remote desktop server and create a password to access the VPS via its GUI. This command will start the server, you will be asked for a password, this password will be used as authentication when you connect to the VPS, make sure you have a strong password.&lt;br /&gt;vncserver :1 -geometry 1024x768 -depth 16 -pixelformat rgb565&lt;br /&gt;5. Now, if you execute command&lt;br /&gt;ps aux&lt;br /&gt;You should see an Xtightvnc process:&lt;br /&gt;Xtightvnc :1 -desktop X –auth&lt;br /&gt;This means the setting is OK and VNC server is running fine.&lt;br /&gt;&lt;br /&gt;6. The default VNC server doesn’t use Gnome window manager as default, to run Gnome as default we must do some changes on the configuration file.&lt;br /&gt;sudo nano ~/.vnc/xstartup&lt;br /&gt;Comment "x-window-manager" and add this on the end of file:&lt;br /&gt;gnome-session &amp;amp;&lt;br /&gt;export XKL_XMODMAP_DISABLE=1&lt;br /&gt;so it will look like this:&lt;br /&gt;---------------------------------------------------------------------------------&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;xrdb $HOME/.Xresources&lt;br /&gt;xsetroot -solid grey&lt;br /&gt;x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &amp;amp;&lt;br /&gt;#x-window-manager &amp;amp;&lt;br /&gt;gnome-session &amp;amp;&lt;br /&gt;export XKL_XMODMAP_DISABLE=1&lt;br /&gt;-----------------------------------------------------------------------------------&lt;br /&gt;7. Next, do a reboot. Usually a reboot is not needed, but just to make sure you can do it.&lt;br /&gt;sudo reboot&lt;br /&gt;8. Start the VNC server:&lt;br /&gt;vncserver :1 -geometry 1024x768 -depth 16 -pixelformat rgb565&lt;br /&gt;9. Download Tight VNC client here: http://www.tightvnc.com/download.html&lt;br /&gt;10. After you install it, run the VNC client and insert your VPS IP address and VNC server number on the VNC Server field and click on “Connect”. In this tutorial the VNC server number is :1, so you must fill in :1&lt;br /&gt;&lt;br /&gt;You will be asked for a password to access the remote desktop, this password is the one you set on step 4.&lt;br /&gt;&lt;br /&gt;Xampp In Ubuntu :&lt;br /&gt;wget http://sourceforge.net/projects/xampp/files/XAMPP%20Linux/1.7.2/xampp-linux-1.7.2.tar.gz/download&lt;br /&gt;sudo tar -xvzf xampp-linux-1.7.2.tar.gz -C /opt&lt;br /&gt;sudo /opt/lampp/lampp start&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-5618059776890360673?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/5618059776890360673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/03/install-ubuntu-desktop-on-linux-vps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/5618059776890360673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/5618059776890360673'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/03/install-ubuntu-desktop-on-linux-vps.html' title='Install ubuntu desktop on linux VPS'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-4824783913818683808</id><published>2011-02-03T19:28:00.000-08:00</published><updated>2011-06-30T20:07:59.149-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='serial'/><title type='text'>SERIAL</title><content type='html'>SERIAL 1 = 0100970776-UZBZ-11103975531-VWZX&lt;br /&gt;TLKM S = 3445643 15212230111552 1255 4152308211124&lt;br /&gt;test PHONE aja = 567112311 847112398 48493473&lt;br /&gt;test Ruko = +221000 40942&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-4824783913818683808?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/4824783913818683808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2011/02/serial.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/4824783913818683808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/4824783913818683808'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2011/02/serial.html' title='SERIAL'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-7746556039651562957</id><published>2010-12-23T22:34:00.000-08:00</published><updated>2010-12-23T22:34:30.395-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='curl php'/><title type='text'>Remote download using php curl</title><content type='html'>Step-stepnya :&lt;br /&gt;1. buat file a.zip dalam folder yang sama dg script php&lt;br /&gt;2. status diubah jadi 666 agar bisa ditimpa hasil download script dibawah ini&lt;br /&gt;3. copy paste script dibawah ini dan jalankan&lt;br /&gt;&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url&amp;nbsp; = 'http://[domain]/[file].zip';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $path = './a.zip';&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $fp = fopen($path, 'w');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!$fp) die();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ch = curl_init($url);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_FILE, $fp);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data = curl_exec($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_close($ch);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fclose($fp);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "Done !";&lt;br /&gt;?&amp;gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-7746556039651562957?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/7746556039651562957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2010/12/remote-download-using-php-curl.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/7746556039651562957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/7746556039651562957'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2010/12/remote-download-using-php-curl.html' title='Remote download using php curl'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-8425422097209954342</id><published>2010-11-24T01:22:00.001-08:00</published><updated>2010-11-24T01:23:27.504-08:00</updated><title type='text'>US Economic Calendar</title><content type='html'>Forex calendar = &lt;a href="http://www.forexfactory.com/calendar.php"&gt;http://www.forexfactory.com/calendar.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Stock calendar = &lt;a href="http://www.bloomberg.com/markets/economic-calendar/"&gt;http://www.bloomberg.com/markets/economic-calendar/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-8425422097209954342?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/8425422097209954342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/8425422097209954342'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2010/11/calendar.html' title='US Economic Calendar'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-281852769262127300</id><published>2010-11-09T23:18:00.000-08:00</published><updated>2011-07-10T20:57:07.094-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Startup Oracle Manual</title><content type='html'>Login dengan username: oracle&lt;br /&gt;&lt;br /&gt;ORACLE_HOME=/oracle/app/oracle/product/10.2.0/db_2&lt;br /&gt;export ORACLE_HOME&lt;br /&gt;cd $ORACLE_HOME/bin&lt;br /&gt;./sqlplus&lt;br /&gt;&lt;br /&gt;masukin username = sys as sysdba&lt;br /&gt;masukin password = password&lt;br /&gt;SQL&amp;gt; startup&lt;br /&gt;&lt;br /&gt;Utk hidupkan listener:&lt;br /&gt;./lsnrctl start&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-281852769262127300?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://note88.blogspot.com/feeds/281852769262127300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://note88.blogspot.com/2010/11/startup-oracle-manual.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/281852769262127300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/281852769262127300'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2010/11/startup-oracle-manual.html' title='Startup Oracle Manual'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-4812331640457018029</id><published>2010-10-01T03:00:00.000-07:00</published><updated>2011-08-23T20:29:47.833-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='download'/><title type='text'>Download dengan wget</title><content type='html'>download continue/resume never give up, no proxy:&lt;br /&gt;wget -Y off -c -t inf http://[domain]/file.tgz&lt;br /&gt;&lt;br /&gt;background, tambahin -b:&lt;br /&gt;wget -Y off -c -t inf http://[domain]/file.tgz -b&lt;br /&gt;&lt;br /&gt;download with proxy + background:&lt;br /&gt;wget -c -t inf http://[namafile] --proxy-user=[username] --proxy-password=[pwdnya] -b&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-4812331640457018029?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/4812331640457018029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/4812331640457018029'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2010/10/download-dengan-wget.html' title='Download dengan wget'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6047301590810575251.post-5878424441445055960</id><published>2010-05-18T22:16:00.000-07:00</published><updated>2010-10-01T03:01:17.951-07:00</updated><title type='text'>Afirmasi</title><content type='html'>HARI INI SAYA PROFIT 5 JUTA&lt;br /&gt;&lt;br /&gt;SETIAP HARI SAYA PROFIT 5 JUTA&lt;br /&gt;&lt;br /&gt;NET PROFIT SAYA 5 JUTA&lt;br /&gt;&lt;br /&gt;SAYA TRADER HEBAT&lt;br /&gt;&lt;br /&gt;PROFIT HARI INI 5 JUTA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047301590810575251-5878424441445055960?l=note88.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/5878424441445055960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047301590810575251/posts/default/5878424441445055960'/><link rel='alternate' type='text/html' href='http://note88.blogspot.com/2010/05/afirmasi.html' title='Afirmasi'/><author><name>budi</name><uri>http://www.blogger.com/profile/02512534395990476517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
