<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>A Technical Guy&#039;s Blog &#187; Server</title>
	<atom:link href="http://www.technicalguy.org/category/server/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.technicalguy.org</link>
	<description>Technical Stuff is boring but Technical Guy is funny</description>
	<lastBuildDate>Wed, 31 Mar 2010 14:49:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>My First Domain</title>
		<link>http://www.technicalguy.org/2008/09/10/my-first-domain/</link>
		<comments>http://www.technicalguy.org/2008/09/10/my-first-domain/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 10:33:49 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Domain]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/2008/09/10/my-first-domain/</guid>
		<description><![CDATA[<img class='img-shadow' src="http://www.technicalguy.org/wp-content/uploads/2008/09/it-lodge.gif" alt="" />

My first domain is<strong> <a href="http://www.it-lodge.com">it-lodge.com</a></strong>, registered on 1999. Perhaps, I have also registered websitesolution.com.my and could be even earlier, but it was all done and managed by <a href="http://www.asiapacific.com.my/">Asia Pacific Net</a>.

One thing I'm sure - PageRank (PR) has really nothing to do with how long a domain name was registered. The website it-lodge.com has PR1 because it was not updated for long.

The challenge of getting it-lodge.com done, mainly because I was required to setup the website and all its pointing to our own web server. It was a Xitami server installed in a Windows platform, sitting on a HP server. 

It was all new to me. I used a Public DNS Service called <a href="http://www.granitecanyon.com/">Granite Canyon</a> (I'm happy that I can remember the name still). There are no nice interface for me to edit the zone file in their DNS server. It was all done manually from setting A to MX records.

Then, comes the Xitami server that never seems to work. I configured it in blind. Lucky, the whole projects was funded under the research projects by my mentor, Dr. Lee Yee Loon. He is the head of research of <a href="http://www.uthm.edu.my">UTHN</a>. It was how I managed to learn all this, with his support.

The IT-Lodge project meant to be a Research Portal to bridge researchers and industrial people. We don't have Blog those days. But, Dr. Lee's ideas of sharing inspiring us until today.


]]></description>
			<content:encoded><![CDATA[<p><img class='img-shadow' src="http://www.technicalguy.org/wp-content/uploads/2008/09/it-lodge.gif" alt="" /></p>
<p>My first domain is<strong> <a href="http://www.it-lodge.com">it-lodge.com</a></strong>, registered on 1999. Perhaps, I have also registered websitesolution.com.my and could be even earlier, but it was all done and managed by <a href="http://www.asiapacific.com.my/">Asia Pacific Net</a>.</p>
<p>One thing I&#8217;m sure &#8211; PageRank (PR) has really nothing to do with how long a domain name was registered. The website it-lodge.com has PR1 because it was not updated for long.</p>
<p>The challenge of getting it-lodge.com done, mainly because I was required to setup the website and all its pointing to our own web server. It was a Xitami server installed in a Windows platform, sitting on a HP server. </p>
<p>It was all new to me. I used a Public DNS Service called <a href="http://www.granitecanyon.com/">Granite Canyon</a> (I&#8217;m happy that I can remember the name still). There are no nice interface for me to edit the zone file in their DNS server. It was all done manually from setting A to MX records.</p>
<p>Then, comes the Xitami server that never seems to work. I configured it in blind. Lucky, the whole projects was funded under the research projects by my mentor, Dr. Lee Yee Loon. He is the head of research of <a href="http://www.uthm.edu.my">UTHN</a>. It was how I managed to learn all this, with his support.</p>
<p>The IT-Lodge project meant to be a Research Portal to bridge researchers and industrial people. We don&#8217;t have Blog those days. But, Dr. Lee&#8217;s ideas of sharing inspiring us until today.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/09/10/my-first-domain/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Samba Error ‘network path not found’</title>
		<link>http://www.technicalguy.org/2008/08/25/samba-error-%e2%80%98network-path-not-found%e2%80%99/</link>
		<comments>http://www.technicalguy.org/2008/08/25/samba-error-%e2%80%98network-path-not-found%e2%80%99/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 03:43:16 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/?p=88</guid>
		<description><![CDATA[You can find a lot of tutorial on setting up Samba from the Internet. I found this can be of useful for your debugging purpose when you have this error &#8216;network path not found&#8217;. During setting up, we disabled firewall but still have problem connecting from our Windows desktop to Samba server, until we find [...]]]></description>
			<content:encoded><![CDATA[<p>You can find a lot of tutorial on setting up Samba from the Internet. I found this can be of useful for your debugging purpose when you have this error &#8216;network path not found&#8217;.</p>
<div id="attachment_89" class="wp-caption alignnone" style="width: 430px"><a href="http://www.technicalguy.org/wp-content/uploads/2008/11/selinux.gif"><img src="http://www.technicalguy.org/wp-content/uploads/2008/11/selinux.gif" alt="Selinux can block your Samba connection too" title="selinux" width="420" height="180" class="size-full wp-image-89" /></a><p class="wp-caption-text">Selinux can block your Samba connection too</p></div>
<p>During setting up, we disabled firewall but still have problem connecting from our Windows desktop to Samba server, until we find that Selinux is blocking it. Disable it and try again, it works :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/08/25/samba-error-%e2%80%98network-path-not-found%e2%80%99/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Is Your Website Loading Slow?</title>
		<link>http://www.technicalguy.org/2008/08/15/is-your-website-loading-slow/</link>
		<comments>http://www.technicalguy.org/2008/08/15/is-your-website-loading-slow/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 05:06:37 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Web Hosting]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/2008/08/15/is-your-website-loading-slow/</guid>
		<description><![CDATA[If your web hosting costs you around RM200-300 a year, chances are that it's a shared basis. Perhaps I'm wrong. Dividing the yearly price to 12 months, I doubt how an average of RM20 monthly web hosting fee is enough to cover the cost of server hardware, bandwidth, co-location and even the unlimited mailbox account offered. That is barely enough for a McD set.

<strong>Where goes wrong then?</strong>

Forget about the page-long list of feature of those web hosting plan. Look for 'Monthly data transfer' and 'No of website per server'. If you can find them, chances that you are in the right direction. Vaguely still, both offering tricky measurement which sounds to me like finding a virgin in a brothel.

<strong>It would be easier to put it this way</strong>

1) First offer allows you to stay in a hotel for X amount of days in a month. But didn't tell you the fact that another 100 people are getting the same offer, and the hotel has just one room! - Monthly data transfer

2) Second offer limits to X amount of people who get the offer, but didn't mention about the number of days each person will stay in this one-room hotel - No of website per server

<strong>What can I do?</strong>

Find out number of rooms. In this case, it is the dedicated bandwidth assigned to each website, not server. Remember, shared basis servers host not just your website. It makes huge differences here. A shared 1Mbps for 10 websites may be slower than single website with dedicated 256Kbps bandwidth.

Find out number of days one can stay in your second offer. In this case, check out the 'Compute Cycles' offered. It measures how much the processing time your application required in a server. 10,000 compute cycles are roughly equivalent to the monthly capacity of a server with a server with 1.2GHz modern processor. For example, a website with only static pages consumes less compute cycles than a website with shopping cart applications.

<strong>Is your website loading slow?</strong>

I see big corporate website paying as little as RM20 a month for their online infrastructure including email &#038; web hosting (some with domain as well). I bet this amazing offer answer to the question above.











]]></description>
			<content:encoded><![CDATA[<p>If your web hosting costs you around RM200-300 a year, chances are that it&#8217;s a shared basis. Perhaps I&#8217;m wrong. Dividing the yearly price to 12 months, I doubt how an average of RM20 monthly web hosting fee is enough to cover the cost of server hardware, bandwidth, co-location and even the unlimited mailbox account offered. That is barely enough for a McD set.</p>
<p><strong>Where goes wrong then?</strong></p>
<p>Forget about the page-long list of feature of those web hosting plan. Look for &#8216;Monthly data transfer&#8217; and &#8216;No of website per server&#8217;. If you can find them, chances that you are in the right direction. Vaguely still, both offering tricky measurement which sounds to me like finding a virgin in a brothel.</p>
<p><strong>It would be easier to put it this way</strong></p>
<p>1) First offer allows you to stay in a hotel for X amount of days in a month. But didn&#8217;t tell you the fact that another 100 people are getting the same offer, and the hotel has just one room! &#8211; Monthly data transfer</p>
<p>2) Second offer limits to X amount of people who get the offer, but didn&#8217;t mention about the number of days each person will stay in this one-room hotel &#8211; No of website per server</p>
<p><strong>What can I do?</strong></p>
<p>Find out number of rooms. In this case, it is the dedicated bandwidth assigned to each website, not server. Remember, shared basis servers host not just your website. It makes huge differences here. A shared 1Mbps for 10 websites may be slower than single website with dedicated 256Kbps bandwidth.</p>
<p>Find out number of days one can stay in your second offer. In this case, check out the &#8216;Compute Cycles&#8217; offered. It measures how much the processing time your application required in a server. 10,000 compute cycles are roughly equivalent to the monthly capacity of a server with a server with 1.2GHz modern processor. For example, a website with only static pages consumes less compute cycles than a website with shopping cart applications.</p>
<p><strong>Is your website loading slow?</strong></p>
<p>I see big corporate website paying as little as RM20 a month for their online infrastructure including email &#038; web hosting (some with domain as well). I bet this amazing offer answer to the question above.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/08/15/is-your-website-loading-slow/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Stop Using TM&#8217;s DNS Servers</title>
		<link>http://www.technicalguy.org/2008/08/13/stop-using-tms-dns-servers/</link>
		<comments>http://www.technicalguy.org/2008/08/13/stop-using-tms-dns-servers/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 13:49:11 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Nameservers]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[broadband]]></category>
		<category><![CDATA[celcom]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[domain name server]]></category>
		<category><![CDATA[downtime]]></category>
		<category><![CDATA[jaring]]></category>
		<category><![CDATA[maxis]]></category>
		<category><![CDATA[opendns]]></category>
		<category><![CDATA[primary]]></category>
		<category><![CDATA[resolving]]></category>
		<category><![CDATA[secondary]]></category>
		<category><![CDATA[streamyx]]></category>
		<category><![CDATA[timenet]]></category>
		<category><![CDATA[tm]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/2008/08/13/stop-using-tms-dns-servers/</guid>
		<description><![CDATA[Sorry to have sound a little harsh in the title. Trust me, if there are only two last DNS servers to use, check out <a href="http://www.opendns.com/">OpenDNS</a>. The nameservers are 208.67.222.222 and 208.67.220.220. Forget about our local ISPs' DNS servers. They are geographically near you, but that doesn't mean they are realiable!

DNS is important. A good one log you into your server without delay, resolving your web address in your web browser quicker! Yet, our local ISPs never seem to take care of this seriously. Your router, computers, servers around you require a pair of reliable DNS servers.

Change your DNS now:

<strong>1) In your Router</strong>

<img class='img-shadow' src="http://www.technicalguy.org/wp-content/uploads/2008/08/use-following-dns-server.gif" alt="" />

<a href="http://www.opendns.com/start/">Enable OpenDNS in your router so every computer benefits</a>. The OpenDNS website is kind enough to list every model of router and guide you through the process. Stop using the famous Streamyx's DNS servers (202.188.0.133 &#038; 202.188.1.5).

<strong>2) In your Computer</strong>

<img class='img-shadow' src="http://www.technicalguy.org/wp-content/uploads/2008/08/router-dns.gif" alt="" />

If you're connecting to Internet directly without a router, you can <a href="http://www.opendns.com/start/">enter OpenDNS's DNS servers</a> into your computer, instead of using 'obtain DNS server address automatically'. This also applies to those on Wireless broadband such as Celcom and Maxis 3G, etc.

<strong>3) In your Server</strong>

<img class='img-shadow' src="http://www.technicalguy.org/wp-content/uploads/2008/08/linux-resolv-conf-dns.gif" alt="" />

For example, if you have Linux installed in your server, include OpenDNS's DNS servers to /etc/resolv.conf. I'm using TM's DNS earlier and my <em>dig</em> and <em>host</em> command stop responding when <a href="http://www.security.org.my/index.php?/archives/TMs-DNS-Server-Decided-to-Go-for-Teh-Tarik.html">TM's DNS server decided to go teh tarik...</a>

<strong>About OpenDNS</strong>

From the way how OpenDNS manage their website, <a href="http://system.opendns.com/">showing the uptime of their globally loacated servers</a> - rest assure this is the last time to change your DNS!

]]></description>
			<content:encoded><![CDATA[<p>Sorry to have sound a little harsh in the title. Trust me, if there are only two last DNS servers to use, check out <a href="http://www.opendns.com/">OpenDNS</a>. The nameservers are 208.67.222.222 and 208.67.220.220. Forget about our local ISPs&#8217; DNS servers. They are geographically near you, but that doesn&#8217;t mean they are realiable!</p>
<p>DNS is important. A good one log you into your server without delay, resolving your web address in your web browser quicker! Yet, our local ISPs never seem to take care of this seriously. Your router, computers, servers around you require a pair of reliable DNS servers.</p>
<p>Change your DNS now:</p>
<p><strong>1) In your Router</strong></p>
<p><img class='img-shadow' src="http://www.technicalguy.org/wp-content/uploads/2008/08/use-following-dns-server.gif" alt="" /></p>
<p><a href="http://www.opendns.com/start/">Enable OpenDNS in your router so every computer benefits</a>. The OpenDNS website is kind enough to list every model of router and guide you through the process. Stop using the famous Streamyx&#8217;s DNS servers (202.188.0.133 &#038; 202.188.1.5).</p>
<p><strong>2) In your Computer</strong></p>
<p><img class='img-shadow' src="http://www.technicalguy.org/wp-content/uploads/2008/08/router-dns.gif" alt="" /></p>
<p>If you&#8217;re connecting to Internet directly without a router, you can <a href="http://www.opendns.com/start/">enter OpenDNS&#8217;s DNS servers</a> into your computer, instead of using &#8216;obtain DNS server address automatically&#8217;. This also applies to those on Wireless broadband such as Celcom and Maxis 3G, etc.</p>
<p><strong>3) In your Server</strong></p>
<p><img class='img-shadow' src="http://www.technicalguy.org/wp-content/uploads/2008/08/linux-resolv-conf-dns.gif" alt="" /></p>
<p>For example, if you have Linux installed in your server, include OpenDNS&#8217;s DNS servers to /etc/resolv.conf. I&#8217;m using TM&#8217;s DNS earlier and my <em>dig</em> and <em>host</em> command stop responding when <a href="http://www.security.org.my/index.php?/archives/TMs-DNS-Server-Decided-to-Go-for-Teh-Tarik.html">TM&#8217;s DNS server decided to go teh tarik&#8230;</a></p>
<p><strong>About OpenDNS</strong></p>
<p>From the way how OpenDNS manage their website, <a href="http://system.opendns.com/">showing the uptime of their globally loacated servers</a> &#8211; rest assure this is the last time to change your DNS!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/08/13/stop-using-tms-dns-servers/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Free Ubuntu CD</title>
		<link>http://www.technicalguy.org/2008/08/08/free-ubuntu-cd/</link>
		<comments>http://www.technicalguy.org/2008/08/08/free-ubuntu-cd/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 13:34:02 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/2008/08/08/free-ubuntu-cd/</guid>
		<description><![CDATA[<img align='right' src="http://www.technicalguy.org/wp-content/uploads/2008/08/ubuntu.gif" alt="Request free Ubuntu CD" />

<a href="http://www.ubuntu.com/">Ubuntu</a> is a community developed operating system that is perfect for laptops, desktops and servers. Whether you use it at home, at school or at work Ubuntu contains all the applications you'll ever need, from word processing and email applications, to web server software and programming tools.

<a href="http://www.ubuntu.com/getubuntu">Request a free CD</a> - Request a free Ubuntu, Edubuntu or Kubuntu CD from Canonical. Delivery typically takes 6-10 weeks. You can use each CD as many times as you like - you are free to use it on as many computers as you wish and to pass on to others.

<img class='img-shadow' src="http://www.technicalguy.org/wp-content/uploads/2008/08/ubuntu-cd.jpg" alt="" />

P/s, just received the CD from Ubuntu, sent from UK. Through, due to the mass production, it is wee bit outdated version, but definitely save me a lot of time than downloading and built my own CD.

]]></description>
			<content:encoded><![CDATA[<p><img align='right' src="http://www.technicalguy.org/wp-content/uploads/2008/08/ubuntu.gif" alt="Request free Ubuntu CD" /></p>
<p><a href="http://www.ubuntu.com/">Ubuntu</a> is a community developed operating system that is perfect for laptops, desktops and servers. Whether you use it at home, at school or at work Ubuntu contains all the applications you&#8217;ll ever need, from word processing and email applications, to web server software and programming tools.</p>
<p><a href="http://www.ubuntu.com/getubuntu">Request a free CD</a> &#8211; Request a free Ubuntu, Edubuntu or Kubuntu CD from Canonical. Delivery typically takes 6-10 weeks. You can use each CD as many times as you like &#8211; you are free to use it on as many computers as you wish and to pass on to others.</p>
<p><img class='img-shadow' src="http://www.technicalguy.org/wp-content/uploads/2008/08/ubuntu-cd.jpg" alt="" /></p>
<p>P/s, just received the CD from Ubuntu, sent from UK. Through, due to the mass production, it is wee bit outdated version, but definitely save me a lot of time than downloading and built my own CD.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/08/08/free-ubuntu-cd/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>List Of Linux Server Commands</title>
		<link>http://www.technicalguy.org/2008/02/14/list-of-linux-server-commands/</link>
		<comments>http://www.technicalguy.org/2008/02/14/list-of-linux-server-commands/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 01:35:39 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Lesson]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Solution]]></category>
		<category><![CDATA[Web Hosting]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/2008/02/14/list-of-linux-server-commands/</guid>
		<description><![CDATA[List of Commands Add New User /usr/sbin/groupadd &#60;groupname&#62; /usr/sbin/useradd &#60;username&#62; –g &#60;groupname&#62; chown &#60;username&#62;.&#60;groupname&#62; /path/to/usernamefolder chmod 755 /path/to/usernamefolder Set User Password passwd &#60;yourusername&#62; &#60;enter new password&#62; &#60;enter again new password&#62; Check RPM Status rpm –q &#60;rpmname&#62; Eg. rpm –q imap Extract a .tar File tar –zxvf &#60;filename&#62; Manual on a Specific Command man &#60;command&#62; Eg. [...]]]></description>
			<content:encoded><![CDATA[<h2>
<p>List of Commands</p>
</h2>
<h3>
<p>Add New User</p>
</h3>
<blockquote><p>/usr/sbin/groupadd &lt;groupname&gt;<br />
/usr/sbin/useradd &lt;username&gt; –g &lt;groupname&gt;<br />
chown &lt;username&gt;.&lt;groupname&gt; /path/to/usernamefolder<br />
chmod 755 /path/to/usernamefolder</p></blockquote>
<h3>
<p>Set User Password</p>
</h3>
<blockquote><p>passwd &lt;yourusername&gt;<br />
&lt;enter new password&gt;<br />
&lt;enter again new password&gt;
</p></blockquote>
<h3>
<p>Check RPM Status</p>
</h3>
<blockquote><p>rpm –q &lt;rpmname&gt;<br />
Eg. rpm –q imap
</p></blockquote>
<h3>
<p>Extract a .tar File</p>
</h3>
<blockquote><p>tar –zxvf &lt;filename&gt;</p></blockquote>
<h3>
<p>Manual on a Specific Command</p>
</h3>
<blockquote><p>man &lt;command&gt;<br />
Eg. man sendmail</p></blockquote>
<h3>
<p>End a Session</p>
</h3>
<blockquote><p>Ctrl + Z</p></blockquote>
<h3>
<p>./&lt;command&gt;</p>
</h3>
<blockquote><p>[root@kuittho /usr]# ./edquota<br />
Specifies that the command edquota is located inside current folder /usr.</p></blockquote>
<h3>
<p>View Current Date</p>
</h3>
<blockquote><p>date</p></blockquote>
<h3>
<p>View Who’s Using Computer</p>
</h3>
<blockquote><p>who</p></blockquote>
<h3>
<p>List Name of Files in Current Directory</p>
</h3>
<blockquote><p>ls -la</p></blockquote>
<h3>
<p>Create Text File</p>
</h3>
<blockquote><p>touch &lt;name&gt;</p></blockquote>
<h3>
<p>View File Content</p>
</h3>
<blockquote><p>cat &lt;filename&gt;</p></blockquote>
<h3>
<p>Move or Rename File/Directory</p>
</h3>
<blockquote><p>mv &lt;filename1&gt; &lt;filename2&gt;</p></blockquote>
<h3>
<p>Symlink</p>
</h3>
<blockquote><p>ln –s &lt;originalfilename&gt; &lt;newshortcutname&gt;</p></blockquote>
<h3>
<p>Remove File</p>
</h3>
<blockquote><p>rm &lt;filename&gt;</p></blockquote>
<h3>
<p>Read Mail</p>
</h3>
<blockquote><p>mail</p></blockquote>
<h3>
<p>View Current User</p>
</h3>
<blockquote><p>who am i</p></blockquote>
<h3>
<p>Send Mail</p>
</h3>
<blockquote><p>mail &lt;emailaddress&gt;<br />
subject &lt;subject&gt;<br />
&lt;message&gt;<br />
cc. &lt;ccemailaddress&gt;</p>
<p>To end your message, go to new line and type . and &lt;enter&gt;</p></blockquote>
<h3>
<p>Sort File</p>
</h3>
<blockquote><p>sort &lt;filename&gt;</p></blockquote>
<h3>
<p>Show User Group</p>
</h3>
<blockquote><p>groups &lt;username&gt;</p></blockquote>
<h3>
<p>Change User Information</p>
</h3>
<blockquote><p>chfn</p></blockquote>
<h3>
<p>List the Content of a tar File</p>
</h3>
<blockquote><p>tar -tvf &lt;filename&gt;</p></blockquote>
<h3>
<p>Switch to Root User</p>
</h3>
<blockquote><p>su root</p></blockquote>
<h3>
<p>Make Directory</p>
</h3>
<blockquote><p>mkdir &lt;directoryname&gt;</p></blockquote>
<h3>
<p>Restart Server</p>
</h3>
<blockquote><p>/sbin/shutdown –r now</p></blockquote>
<h3>
<p>Shutdown Server</p>
</h3>
<blockquote><p>/sbin/shutdown –h now</p></blockquote>
<h3>
<p>Uptime</p>
</h3>
<blockquote><p>Uptime</p></blockquote>
<h3>
<p>Show Ports Information</p>
</h3>
<blockquote><p>lsof -i</p></blockquote>
<h3>
<p>Exit from Current Shell</p>
</h3>
<blockquote><p>Ctrl + D</p></blockquote>
<h3>
<p>Start X-Window System</p>
</h3>
<blockquote><p>startx</p></blockquote>
<h3>
<p>Edit file with VI Editor</p>
</h3>
<blockquote><p>vi &lt;filename&gt;</p></blockquote>
<h3>
<p>Copy File</p>
</h3>
<blockquote><p>cp &lt;filename&gt; &lt;targetfolder&gt;</p></blockquote>
<h3>
<p>$bash or [user@host /directory]$</p>
</h3>
<blockquote><p>If you have no home directory on a shell, your regular login will look like:<br />
bash$, or else, it should look like: [user@host /directory]$</p></blockquote>
<h3>
<p>Boot Linux in Single Mode </p>
</h3>
<blockquote><p>During Linux booting, press Ctrl + X to switch into Text mode.<br />
LILO bot: linux single</p></blockquote>
<h3>
<p>Remove Whole Directory</p>
</h3>
<blockquote><p>rm –rf<br />
** This command remove all sub-directories and contens within!</p></blockquote>
<h3>
<p>Operating System Information</p>
</h3>
<blockquote><p>uname -a</p></blockquote>
<h3>
<p>Install RPM</p>
</h3>
<blockquote><p>rpm –Uvh &lt;rpmname&gt;</p></blockquote>
<h3>
<p>Uninstall RPM</p>
</h3>
<blockquote><p>rpm –e &lt;rpmname&gt; , find rpm name using rpm –q  &lt;rpmname&gt;</p></blockquote>
<h3>
<p>Disk Usage</p>
</h3>
<pre>
<blockquote>du –sh /var/log /home

3.5M 		/var/log
500M		/home

du –sh *</blockquote>
</pre>
<h3>
<p>File System Usage</p>
</h3>
<blockquote><p>df</p></blockquote>
<h3>
<p>Process Status</p>
</h3>
<blockquote><p>ps ax , process status of all processes for all users and system</p></blockquote>
<h3>
<p>Top Process</p>
</h3>
<blockquote><p>top , this command display a full screen of top processes.</p></blockquote>
<h3>
<p>System Info</p>
</h3>
<blockquote><p>procinfo</p>
<p>Full information about Last Boot time, Load Average, average number of jobs running, number of runnable processes, total number of processes, PID of the last process run (idem), Swap info, Memory resources, Number of disks, IRQ info, Installed modules (with the -a or -m option) and File Systems (with the -a or -m option)</p></blockquote>
<h3>
<p>Add .htpasswd</p>
</h3>
<blockquote><p>/usr/local/apache/bin/htpasswd –c &lt;directory&gt;/.htpasswd &lt;login_name&gt;<br />
Enter password: &lt;your_password_here&gt;<br />
Noted: Add –c if you are creating the .htpasswd file</p></blockquote>
<h3>
<p>| more</p>
</h3>
<blockquote><p>ls | more<br />
ls | less</p></blockquote>
<h3>
<p>Mount CD-ROM</p>
</h3>
<blockquote><p>mount /dev/cdrom<br />
cd /mnt/cdrom</p></blockquote>
<h3>
<p>Unmount CD-ROM</p>
</h3>
<blockquote><p>umount /dev/cdrom</p></blockquote>
<h3>
<p>SUID Root</p>
</h3>
<blockquote><p>Allows the program to run as root<br />
chmod u+s &lt;filename&gt;</p></blockquote>
<h3>
<p>wget</p>
</h3>
<blockquote><p>wget –P /usr/src http://www.linux.com/filename.tar.gz</p>
<p>Wget Directory<br />
wget –P &lt;save-to-directory&gt; -r \ ftp://&lt;username&gt;:&lt;password&gt;@host;type=&lt;type&gt;</p>
<p>&lt;type&gt; : a-ASCii I-Binary</p>
<p>Wget File<br />
wget –P &lt;save-to-directory&gt; \ ftp://&lt;username&gt;:&lt;password&gt;@host/filename;type=&lt;type&gt;</p>
<p>&lt;type&gt; : a-ASCii I-Binary</p></blockquote>
<h3>
<p>Show Installed Perl Module Path</p>
</h3>
<blockquote><p>su &lt;user_other_than_root&gt;<br />
perldoc –l Gnokii::GSM</p></blockquote>
<h3>
<p>Set Date and Time</p>
</h3>
<blockquote><p>To set the system clock<br />
date MMDDTTTTYY</p>
<p>Eg. date 1203133002<br />
sets the date to Dec 3 2002 and 1.30pm</p>
<p>To set the hardware clock to the current system clock<br />
hwclock &#8211;systohc</p></blockquote>
<h3>
<p>Show Perl Module Directory</p>
</h3>
<blockquote><p>perl –le “print foreach @INC”</p></blockquote>
<h3>
<p>Yank Command in VI Editor</p>
</h3>
<blockquote><p><strong>Marking a line</strong></p>
<p>Type the letter &#8220;m&#8221; and any other letter to mark the start of line.<br />
Eg. mt</p>
<p><strong>Capture lines into the buffer</strong></p>
<p>Yanks a single line (defined by current cursor position):<br />
yy</p>
<p>Yanks from current cursor position to the line marked &#8220;t&#8221;<br />
y’t</p>
<p><strong>Paste yanked lines</strong><br />
p</p></blockquote>
<h3>
<p>Create tar File</p>
</h3>
<blockquote><p>tar options ‘Preserve attribute’ is enabled by default for root user.<br />
tar –cf &lt;output filename&gt; &lt;target file or directory&gt;</p></blockquote>
<h3>
<p>Extract Files from a tar File</p>
</h3>
<blockquote><p>tar xf &lt;tar file&gt; &lt;target file&gt;, where target file (eg. tmp/mysql.sql) can be found by listing the content in a tar file using tar tf &lt;tar file&gt;</p></blockquote>
<h3>
<p>Email Lock Problem</p>
</h3>
<blockquote><p><strong>/var/spool/mail/&lt;username&gt;</strong> and remove <strong>.&lt;username&gt;.pop</strong></p></blockquote>
<h3>
<p>Extract Gunzip file</p>
</h3>
<blockquote><p>To extract a file compressed with gunzip, type the following:<br />
gunzip filename_tar.gz </p>
<p>then if you receive no errors, type:<br />
tar xvf filename_tar</p></blockquote>
<h3>
<p>Change the time zone at system</p>
</h3>
<blockquote><p>timeconfig </p>
<p>Select timezone for the system:<br />
Example:<br />
Asia/Kuala Lumpur<br />
[ ] System clock uses UTC (Universal Coordinated Time)<br />
OK</p></blockquote>
<h3>
<p>MySQL Import</p>
</h3>
<blockquote><p>mysql -u &lt;&lt;username&gt;&gt; -p&lt;&lt;password&gt;&gt; &lt;&lt;database_name&gt;&gt; &lt;&lt;directory_of_file.sql&gt;&gt;<br />
Example:<br />
mysql -u root -ppassword sample &lt; /tmp/sample.sql</p></blockquote>
<h3>
<p>MySQL Export</p>
</h3>
<blockquote><p>mysqldump -u &lt;&lt;username&gt;&gt; -p -A &gt; &lt;&lt;directory_of_file.sql&gt;&gt;<br />
Example:<br />
mysqldump -u root -p -A &gt; /tmp/alldb.sql</p></blockquote>
<h3>
<p>Cron – Ignore all Stdout message of PHP</p>
</h3>
<blockquote><p>0 0 * * * /usr/bin/php /home/dbmst/web/cron/delete.php &gt; /dev/null<br />
Command:<br />
<strong>&gt; /dev/null</strong></p></blockquote>
<h3>
<p>Cron – Ignore all Stdout and Stderr message of PHP</p>
</h3>
<blockquote><p>0 0 * * * /usr/bin/php /home/dbmst/web/cron/delete.php &gt; /dev/null 2&gt;&#038;1<br />
Command:<br />
<strong>&gt; /dev/null 2&gt;&#038;1</strong></p></blockquote>
<h3>
<p>wc &#8211; Count the number of lines or characters</p>
</h3>
<blockquote><p>Example: Lists the number of files and directories in the directory &#8216;etc&#8217;<br />
<strong>ls /etc | wc -l</strong></p>
<p>Example: Lists the number of lines, words and characters in the file &#8216;sendmail.cf&#8217;<br />
<strong>wc /etc/sendmail.cf</strong></p></blockquote>
<h3>
<p>wc &#8211; Count the number of files in a directory</p>
</h3>
<blockquote><p>Example: Lists the number of files in the directory &#8216;etc&#8217;<br />
<strong>ls /etc | wc -w</strong></p>
<p>Example: to count the number of files in a directory and print the result in a nice message.<br />
Here is the command (Use the ` symbol to surround commands within commands):<br />
<strong>echo &#8220;you have `ls | wc -w` files in this directory&#8221;</strong></p></blockquote>
<h3>
<p>cat &#8211; concatenate files</p>
</h3>
<blockquote><p>Example: Create a file named myfile and allow you to enter contents.<br />
<strong>cat&gt;myfile</strong><br />
Press <strong>Control-D</strong> to exit entry mode<br />
WARNING: If &#8220;myfile&#8221; already existed, this command would replace the old file with the contents of the new file.</p></blockquote>
<h3>
<p>Server Release Version</p>
</h3>
<blockquote><p>cat /etc/redhat-release</p></blockquote>
<h3>
<p>CPU Model</p>
</h3>
<blockquote><p>grep &#8220;model name&#8221; /proc/cpuinfo</p></blockquote>
<h3>
<p>Ram Size</p>
</h3>
<blockquote><p>grep MemTotal /proc/meminfo</p></blockquote>
<h3>
<p>Hard Drive Size</p>
</h3>
<blockquote><p>fdisk -l</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/02/14/list-of-linux-server-commands/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Configuring Virtual Server As Zope Server</title>
		<link>http://www.technicalguy.org/2008/02/14/configuring-virtual-server-as-zope-server/</link>
		<comments>http://www.technicalguy.org/2008/02/14/configuring-virtual-server-as-zope-server/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 01:34:27 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Lesson]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Solution]]></category>
		<category><![CDATA[Web Hosting]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/2008/02/14/configuring-virtual-server-as-zope-server/</guid>
		<description><![CDATA[Configure Virtual Server as Zope Server Download current version of Python (2.3.5 or later) from http://www.python.org/download/. wget –P /usr/src/ http://www.python.org/ftp/python/version/Python-version.tgz Unpack and install current version of Python (2.3.5 or later). Using the instructions in README.txt. tar –zxvf /usr/src/Python-version.tgz cd /usr/src/Python-version ./configure make make install Download current version of Zope (2.7.8 or later) from http://www.zope.org/Products. wget [...]]]></description>
			<content:encoded><![CDATA[<h2>
<p>Configure Virtual Server as Zope Server</p>
</h2>
<ol>
<li>
<p>Download current version of Python (2.3.5 or later) from <a href="http://www.python.org/download/">http://www.python.org/download/</a>.</p>
<p><strong>wget –P /usr/src/ http://www.python.org/ftp/python/version/Python-version.tgz</strong></p>
</li>
<li>
<p>Unpack and install current version of Python (2.3.5 or later). Using the instructions in README.txt.</p>
<p><strong>tar –zxvf /usr/src/Python-version.tgz</p>
<p>cd /usr/src/Python-version<br />
./configure<br />
make<br />
make install</strong></p>
</li>
<li>
<p>Download current version of Zope (2.7.8 or later) from  http://www.zope.org/Products.</p>
<p><strong>wget –P /usr/src/ http://www.zope.org/Products/Zope/version/Zope-version-final.tgz</strong></p>
</li>
<li>
<p>Download current version of Zope (2.7.8 or later). Using the instructions in INSTALL.txt.</p>
<p><strong>tar –zxvf /usr/src/Zope-version-final.tgz<br />
cd /usr/src/Zope-version<br />
./configure –-prefix=/usr/local/zope<br />
make<br />
make install</strong></p>
</li>
<li>
<p>Create a Zope instance home<br />
<strong>/usr/local/zope/bin/mkzopeinstance.py</strong></p>
</li>
<li>
<p>Insert zope instance home<br />
Directory: <strong>/usr/local/zope/home</strong><br />
Username: &lt;Zope admin&gt;<br />
Password: &lt;password&gt;<br />
Verify Password: &lt;password&gt;</p>
</li>
<li>
<p>Open Zope port 8080 in firewall<br />
<strong>vi /etc/sysconfig/iptables</strong><br />
<blockquote>-A RH-Firewall-1-INPUT -m state &#8211;state NEW -m tcp -p tcp &#8211;dport 8080 -j ACCEPT</p></blockquote>
<p>Restart Iptables<br />
<strong>/etc/rc.d/init.d/iptables restart</strong></p>
</li>
<li>
<p>Apache Configuration<br />
<strong>vi /etc/httpd/conf/httpd.conf</strong>
<pre>
<blockquote>&lt;VirtualHost *:80&gt;

        ServerName intranet.otokoyok.ywso.com

        ServerAdmin support@1.com.my
        ServerSignature On

        &lt;IfModule mod_rewrite.c&gt;
        RewriteEngine On

        RewriteRule ^/(.*)
\http://intranet.otokoyok.ywso.com:8080/VirtualHostBase/http/intranet.ot
okoyok.ywso.com:80/Weso/VirtualHostRoot/$1 [L,P]
        &lt;/IfModule&gt;
&lt;/VirtualHost&gt;</blockquote>
</pre>
</li>
<li>
<p>Add group and user for Zope application server<br />
<strong>groupadd zope<br />
useradd zope –M –g zope<br />
chown –R zope.zope /usr/local/zope</strong></p>
</li>
<li>
<p>Update Zope configuration file<br />
<strong>vi /usr/local/zope/home/etc/zope.conf</strong></p>
<p>Change <strong>effective-user</strong> to <strong>zope</strong><br />
Eg: effective-user zope</p>
</li>
<li>
<p>Update run level script for Zope server</p>
<p><strong>cd /etc/init.d<br />
ln –s /usr/local/zope/home/bin/zopectl zope<br />
cd /etc/rc.d/rc3.d<br />
ln –s /etc/rc.d/init.d/zope S99zope<br />
cd /etc/rc.d/rc5.d<br />
ln –s /etc/rc.d/init.d/zope S99zope</strong></p>
<p>Restart server with <strong>shutdown –r now</strong></p>
</li>
<li>
<p>Download current version of Plone ( or later) from</p>
<p>http://www.plone.org/download</p>
<p><strong>wget –P /usr/src/ &lt;download page URL&gt;</strong></p>
</li>
<li>
<p>Unpack and install current version of Python (2.3.5 or later). Using the instructions in README.txt.</p>
<p><strong>tar –zxvf /usr/src/Plone-version.tgz<br />
mv /usr/src/Plone-version/* /usr/local/zope/home/Products/</strong><br />
Restart Zope via Zope Management Interface(ZMI)<br />
http://&lt;&lt;your_host_name&gt;&gt;:8080/manage and login with your Zope ID and Password. At the main interface, please go to <strong>Control Panel &gt; Restart</strong></p>
</li>
<li>
<p>Add a Plone site from ZMI</p>
<p>Click <strong>Root Folder -&gt;</strong> Select type to add  <strong>Plone Site -&gt;</strong>click <strong>Add</strong><br />
Insert <strong>Id -&gt;</strong> click <strong>Add Plone Site</strong><br />
Restart Zope via ZMI</p>
</li>
<li>
<p>Login to the new Plone site with <strong>http://&lt;&lt;your_host_name&gt;&gt;:8080/&lt;&lt;your_plone_site_id&gt;&gt;</strong></p>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/02/14/configuring-virtual-server-as-zope-server/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configuring Virtual Server As Mailman Server</title>
		<link>http://www.technicalguy.org/2008/02/14/configuring-virtual-server-as-mailman-server/</link>
		<comments>http://www.technicalguy.org/2008/02/14/configuring-virtual-server-as-mailman-server/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 01:34:02 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Lesson]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Solution]]></category>
		<category><![CDATA[Web Hosting]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/2008/02/14/configuring-virtual-server-as-mailman-server/</guid>
		<description><![CDATA[Configure Virtual Server as Mailman Server Check if python is installed rpm -qa &#124; grep –I python tar –zxvf mailman-version.tgz Add Mailman group and user groupadd mailman useradd -c &#8220;GNU Mailman&#8221; -s /sbin/nologin -M -g mailman mailman Create mailman folder in default prefix /usr/local/mailman mkdir /usr/local/mailman cd /usr/local/mailman/ chgrp mailman . chmod a+rx,g+ws . Install [...]]]></description>
			<content:encoded><![CDATA[<h2>
<p>Configure Virtual Server as Mailman Server</p>
</h2>
<ol>
<li>
<p>Check if python is installed<br />
<strong>rpm -qa | grep –I python</strong></p>
</li>
<li>
<p><strong>tar –zxvf mailman-version.tgz</strong></p>
</li>
<li>
<p>Add Mailman group and user<br />
<strong>groupadd mailman<br />
useradd -c &#8220;GNU Mailman&#8221; -s /sbin/nologin -M -g mailman mailman</strong></p>
</li>
<li>
<p>Create mailman folder in default prefix /usr/local/mailman<br />
<strong>mkdir /usr/local/mailman<br />
cd /usr/local/mailman/<br />
chgrp mailman .<br />
chmod a+rx,g+ws .</strong></p>
</li>
<li>
<p>Install Mailman from /usr/src/mailman-version<br />
<strong>./configure &#8211;with-mail-gid=mail &#8211;with-cgi-gid=apache<br />
make<br />
make install</strong></p>
</li>
<li>
<p>Check and fix any permission error<br />
Check file permission, <strong>/usr/local/mailman/bin/check_perms</strong><br />
Fix file permission error, <strong>/usr/local/mailman/bin/check_perms –f</strong></p>
</li>
<li>
<p>Add the following line in httpd.conf and restart httpd<br />
<blockquote>&lt;IfModule mod_alias.c&gt;<br />
   ScriptAlias /mailman/ &#8220;/usr/local/mailman/cgi-bin/&#8221;<br />
   Alias /pipermail/ /usr/local/mailman/archives/public/<br />
&lt;/IfModule&gt;</p>
<p>NameVirtualHost *:80</p>
<p>&lt;VirtualHost *:80&gt;</p>
<p>        ServerName mailman.ywso.com</p>
<p>        ServerAdmin support@1.com.my<br />
        DocumentRoot &#8220;/home/admin/web&#8221;<br />
        ErrorLog /etc/httpd/logs/admin_error_log<br />
        CustomLog /etc/httpd/logs/admin_access_log combined<br />
	  &#8230;</p></blockquote>
</li>
<li>
<p><strong>vi /usr/local/mailman/Mailman/mm_cfg.py</strong><br />
<blockquote>IMAGE_LOGOS = 0<br />
SMTP_MAX_RCPTS = 0</p></blockquote>
</li>
<li>
<p>Create a symbolic link to Mailman&#8217;s wrapper program<br />
<strong>cd /etc/smrsh<br />
ln -s /usr/local/mailman/mail/mailman mailman</strong></p>
</li>
<li>
<p>Start the Mailman qrunner<br />
<strong>cp scripts/mailman /etc/init.d/mailman<br />
chkconfig &#8211;add mailman<br />
bin/mailmanctl start</strong></p>
</li>
<li>
<p>Create a site password<br />
<strong>/usr/local/mailman/bin/mmsitepass &lt;your-site-password&gt;</strong></p>
</li>
<li>
<p>Create a list creator password<br />
<strong>/usr/local/mailman/bin/mmsitepass -c &lt;list-creator-password&gt;</strong></p>
</li>
<li>
<p>Setup the following cron tasks from cron/crontab.in<br />
<blockquote># At 8AM every day, mail reminders to admins as to pending requests.<br />
# They are less likely to ignore these reminders if they&#8217;re mailed<br />
# early in the morning, but of course, this is local time&#8230; ;)<br />
<strong>0 8 * * * /usr/bin/python -S /usr/local/mailman/cron/checkdbs</strong><br />
#<br />
# At 9AM, send notifications to disabled members that are due to be<br />
# reminded to re-enable their accounts.<br />
<strong>0 9 * * * /usr/bin/python -S /usr/local/mailman/cron/disabled</strong><br />
#<br />
# Noon, mail digests for lists that do periodic as well as threshhold delivery.<br />
<strong>0 12 * * * /usr/bin/python -S /usr/local/mailman/cron/senddigests</strong><br />
#<br />
# 5 AM on the first of each month, mail out password reminders.<br />
<strong>0 5 1 * * /usr/bin/python -S /usr/local/mailman/cron/mailpasswds</strong><br />
#<br />
# Every 5 mins, try to gate news to mail.  You can comment this one out<br />
# if you don&#8217;t want to allow gating, or don&#8217;t have any going on right now,<br />
# or want to exclusively use a callback strategy instead of polling.<br />
<strong>0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/bin/python -S /usr/local/mailman/cron/gate_news</strong><br />
#<br />
# At 3:27am every night, regenerate the gzip&#8217;d archive file.  Only<br />
# turn this on if the internal archiver is used and<br />
# GZIP_ARCHIVE_TXT_FILES is false in mm_cfg.py<br />
<strong>27 3 * * * /usr/bin/python -S /usr/local/mailman/cron/nightly_gzip</strong></p></blockquote>
</li>
<li>
<p>Create the first mailing list <strong>mailman</strong> as side-wide mailing list.</p>
<p>If you want the email hostname to be different from the one looked up by the DEFAULT_EMAIL_HOST and DEFAULT_URL_HOST, you can specify them with newlist command in /usr/local/mailman/bin, </p>
<p><strong>bin/newlist &#8211;urlhost=www.mydom.ain &#8211;emailhost=mydom.ain mailman</strong></p>
<p>Eg,<br />
Website Solution (http://www.1.com.my) would like to setup a mailing list to send out offers to all clients. The mailing list is hosted in a mailman server (mailman.ywso.com).</p>
<p>Administrator at Website Solution would like to have the From field of all outgoing email to represent their company domain, so we choose mailing.1.com.my. The mailing list info and administration page can be accessible from http://mailing.1.com.my/mailman/…</p>
<ol>
<li style="list-style-type : lower-alpha;">
<p>Create A record for mailing.1.com.my that points to mailman server IP.</p>
</li>
<li style="list-style-type : lower-alpha;">
<p>Create MX record for mailing.1.com.my, most mail servers do not deliver email to hostname without valid MX record.</p>
</li>
<li style="list-style-type : lower-alpha;">
<p>Add mailing.1.com.my to /etc/mail/local-host-names if emailhost is different from the hostname of the mailman server. </p>
</li>
<li style="list-style-type : lower-alpha;">
<p>You will need to update /etc/aliases to include new aliases for all newly created mailing list. Run newaliases to update sendmail aliases database.</p>
</li>
</ol>
<p>To remove a list, use command <strong>bin/rmlist –a &lt;newlist&gt;</strong></p>
<p>You will want to run the <strong>bin/fix_url.py</strong> to change the domain of any existing lists.</p>
</li>
<li>
<p>There is a convenient template for a generic site list in the installation directory, under data/sitelist.cfg. We can apply it to the newlist created.<br />
<strong>bin/config_list -i data/sitelist.cfg &lt;newlist&gt;</strong></p>
<p>Apply these default setting into template:<br />
<blockquote>msg_footer = &#8220;&#8221;"<br />
[%(real_name)s site list]<br />
[%(real_name)s@%(host_name)s]<br />
[%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s]&#8220;&#8221;"</p>
<p>digestable = 0<br />
advertised = 0<br />
private_roster = 2<br />
default_member_moderation = 1<br />
archive_private = 1</p></blockquote>
</li>
<li>
<p>Using the mailman:</p>
<p>Admin Interface</p>
<p>http://&lt;urlhost&gt;/mailman/admin/&lt;newlist&gt;</p>
<p>Subscription windows</p>
<p>http://&lt;urlhost&gt;/mailman/listinfo/&lt;newlist&gt;</p>
<p>Email to owner of list<br />
&lt;newlist&gt;-owner@&lt;emailurl&gt;</p>
<p>Email to subscribe<br />
&lt;newlist&gt;-subscribe@&lt;emailurl&gt;</p>
<li>
<p>Backup Mailman</p>
<p>Backup configuration file of a list<br />
<strong>bin/config_list -o &lt;filename&gt; &lt;listname&gt;</strong></p>
<p>Backup full member list with email and name<br />
<strong>bin/list_members –f –o &lt;filename&gt; &lt;listname&gt;</strong></p>
<p>To restore a configuration file<br />
<strong>bin/config_list -i &lt;filename&gt; &lt;listname&gt;</strong></p>
<p>To restore member list, please paste the content of full member list in the web admin interface.</p>
</li>
<li>
<p>remove all unwanted moderator request. Set crontab<br />
rm -rf /usr/local/mailman/data/heldmsg*</p>
<li>
<p>Add relay email address</p>
<p><strong>vi /etc/mail/local-hosts-names</strong></p>
<p>Add the related mailing address to new line<br />
Example: <strong>mailing.1.com.my</strong></p>
<p>Restart sendmail<br />
<strong>/etc/rc.d/init.d/sendmail restart</strong></p>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/02/14/configuring-virtual-server-as-mailman-server/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configuring Virtual Server As File Server</title>
		<link>http://www.technicalguy.org/2008/02/14/configuring-virtual-server-as-file-server/</link>
		<comments>http://www.technicalguy.org/2008/02/14/configuring-virtual-server-as-file-server/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 01:33:24 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Lesson]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Solution]]></category>
		<category><![CDATA[Web Hosting]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/2008/02/14/configuring-virtual-server-as-file-server/</guid>
		<description><![CDATA[Configure Virtual Server as File Server In the terminal, type startx to launch the Gnome interface Enable run level 2, 3, 4 and 5 for Samba service using chkconfig. chkconfig &#8211;level 2 smb on chkconfig &#8211;level 3 smb on chkconfig &#8211;level 4 smb on chkconfig &#8211;level 5 smb on Install samba-swat rpm that allows web-based [...]]]></description>
			<content:encoded><![CDATA[<h2>
<p>Configure Virtual Server as File Server</p>
</h2>
<ol>
<li>
<p>In the terminal, type startx to launch the Gnome interface</p>
</li>
<li>
<p>Enable run level 2, 3, 4 and 5 for Samba service using chkconfig.</p>
<p><strong>chkconfig &#8211;level 2 smb on<br />
chkconfig &#8211;level 3 smb on<br />
chkconfig &#8211;level 4 smb on<br />
chkconfig &#8211;level 5 smb on</strong></p>
</li>
<li>
<p>Install <strong>samba-swat rpm</strong> that allows web-based administration of Samba service. Set swat in xinted to start automatically when server reboot. Access SWAT from http://<hostname>:901. You need to login at the server with root username and password.</p>
</li>
<li>
<p>Make sure Samba is not blocked by firewall.</p>
</li>
<li>
<p>We setup lmhosts in all Windows machine. This is to eliminate the needs of drive mapping each time working on any web development projects from /home. We configure lmhosts as follow:</p>
<p>Eg:<br />
192.168.0.2 fire #PRE<br />
#INCLUDE \\fire\general\conf\lmhosts\lmhosts</p>
<p>A centalized copy of lmhosts file is maintained in server Fire.</p>
<p>Format of lmhosts in Fire:<br />
192.168.0.2	asiapcb		#PRE<br />
192.168.0.2 	admin		#PRE<br />
192.168.0.2	foster		#PRE</p>
<p>Run <strong>nbtstat –R</strong> after changes to lmhosts file</p>
</li>
<li>
<p>Whenever you save a file as a flat text (ASCII) file from within a Windows or DOS environment, the program that you saved it with adds what is known as a carriage return at the end of every line of the file. A carriage return is a normally hidden code that indicates that the text following it should appear on the next line. Conversely, a text file created within a UNIX environment will not have a carriage return at the end of every line.  Depending on the contents of the file, this may or may not pose a problem.</p>
<p>Many programs in the MS Windows environment have an option to save in &#8220;Unix format.&#8221; That means they don’t insert the extra carriage returns. In Homesite > Options > Settings > File Settings > Format when saving: UNIX</p>
</li>
<li>
<p>The following script remove all space of a filename or folder and to replace with ‘_’<br />
<blockquote>#!/usr/bin/perl -w<br />
# nospace /this/dir /that/dir /those/too </p>
<p>use File::Find;<br />
use strict;<br />
die &#8220;usage: nospace dir[s]\n&#8221; unless @ARGV; </p>
<p>my %ext; </p>
<p>find(\&#038;remspaces, @ARGV); </p>
<p>sub remspaces {<br />
return if ($_ eq &#8216;.&#8217;);<br />
return if ($_ eq &#8216;..&#8217;);<br />
(my $new = $_) =~ tr/a-zA-Z0-9_.-/_/c;<br />
my $duplicate = ($new ne $_ and -e $new);<br />
my $try = $new;</p>
<p>$ext{&#8220;$File::Find::dir/$try&#8221;}++ if $duplicate;</p>
<p>while (my $count = $ext{&#8220;$File::Find::dir/$new&#8221;}++) {<br />
(my $with_num = $new) =~ s/(?=\.|$)/_$count/;<br />
$new = $with_num, last if not -e $with_num;<br />
}</p>
<p>$ext{&#8220;$File::Find::dir/$try&#8221;}&#8211; if $duplicate;</p>
<p>rename $_ => $new<br />
or warn &#8220;can&#8217;t rename $_ to $new: $!&#8221;;<br />
}</p>
<p>Save the script as nospace.cgi in /etc. We set a crontab entry as follow:</p>
<p>30 9 * * * /usr/bin/perl /etc/nospace.cgi /home /file</p></blockquote>
</li>
<li>
<p>All filename and folder name are automatically adjusted to lowercase by define the setting using Samba SWAT.</p>
</li>
<li>
<p>Edit /etc/inittab and change the line id:5:initdefault: to id:3:initdefault: to boot Linux into Text mode by default, instead of X.</p>
</li>
<li>
<p>Adding a new user on Samba file server.</p>
<ol>
<li style="list-style-type : lower-alpha;">
<p>Add a new user<br />
<strong>useradd &lt;new user&gt; -M –g site</strong></p>
</li>
<li style="list-style-type : lower-alpha;">
<p>Assign a password to new user<br />
<strong>smbpasswd –a &lt;new user&gt;</strong></p>
</li>
<li style="list-style-type : lower-alpha;">
<p>Restart Samba service<br />
<strong>/etc/rc.d/init.d/smb restart</strong></p>
</li>
</ol>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/02/14/configuring-virtual-server-as-file-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backup</title>
		<link>http://www.technicalguy.org/2008/02/14/backup/</link>
		<comments>http://www.technicalguy.org/2008/02/14/backup/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 01:31:06 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Lesson]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Solution]]></category>
		<category><![CDATA[Web Hosting]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/2008/02/14/backup/</guid>
		<description><![CDATA[Backup We use scp to transfer backup file in each server to a centralized backup server. We need to setup quick login with ssh Client Keys. Generate a public/private key pair in the centralized backup server ssh-keygen –t rsa Just hit Enter when asked, this leave the passphrase empty. This created two files, ~/.ssh/id_rsa and [...]]]></description>
			<content:encoded><![CDATA[<h2>
<p>Backup</p>
</h2>
<ol>
<li>
<p>We use scp to transfer backup file in each server to a centralized backup server. We need to setup quick login with ssh Client Keys.</p>
<ol>
<li style="list-style-type : lower-alpha;">
<p>Generate a public/private key pair in the centralized backup server<br />
<strong>ssh-keygen –t rsa</strong><br />
Just hit Enter when asked, this leave the passphrase empty.<br />
This created two files, ~/.ssh/id_rsa and ~/.ssh/id_rsa.pub.</p>
</li>
<li style="list-style-type : lower-alpha;">
<p>Copy id_rsa.pub to the server that you wish to use quick login. Create the .ssh folder if needed.<br />
<strong>scp /root/.ssh/id_rsa.pub root@host:/root/.ssh/authorized_keys2</strong></p>
<p><strong>Note</strong>: Copy the contents of id_rsa.pub and paste to “/root/.ssh/authorized_keys2” the server that you wish to quick login, when more than 1 server that would liked to use quick login to the particular server.</p>
</li>
<li style="list-style-type : lower-alpha;">
<p>In order to allow the server to backup itself, you can copy the content of id_rsa.pub and adding into authorized_keys2.</p>
</li>
</ol>
<li>
<p>Synchronize backup file within localhost.</p>
<p><strong>rsync -zvr /file/hd1/* /backup/hd1</strong></p>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/02/14/backup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monitoring</title>
		<link>http://www.technicalguy.org/2008/02/14/monitoring/</link>
		<comments>http://www.technicalguy.org/2008/02/14/monitoring/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 01:30:43 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Lesson]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Solution]]></category>
		<category><![CDATA[Web Hosting]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/2008/02/14/monitoring/</guid>
		<description><![CDATA[Monitoring Nmap has the ability to test out open ports and discover what version of software is running. nmap -O -p 1-65535 &#60;host&#62;]]></description>
			<content:encoded><![CDATA[<h2>
<p>Monitoring</p>
</h2>
<ol>
<li>
<p>Nmap has the ability to test out open ports and discover what version of software is running.</p>
<p><strong>nmap -O -p 1-65535 &lt;host&gt;</strong></p>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/02/14/monitoring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Offline Installation</title>
		<link>http://www.technicalguy.org/2008/02/14/offline-installation/</link>
		<comments>http://www.technicalguy.org/2008/02/14/offline-installation/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 01:30:19 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Lesson]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Solution]]></category>
		<category><![CDATA[Web Hosting]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/2008/02/14/offline-installation/</guid>
		<description><![CDATA[Offline Installation The following steps need to be done for new network environment after offline installation. /etc/resolv.conf, to add in more DNS server /etc/sysconfig/network NETWORKING=yes HOSTNAME=&#60;hostname&#62; /etc/hosts 127.0.0.1 localhost.localdomain localhost &#60;IP&#62; &#60;hostname&#62; &#60;hostname in short&#62; Eg: 203.115.228.142 it-lodge.ywso.com it-lodge /etc/sysconfig/network-scripts/ifcfg-eth0 Remove BROADCAST=192.168.0.255 and NETWORK=192.168.0.0 /etc/sysconfig/network-scripts/ifcfg-eth1 (if any) /etc/sysconfig/iptables Set correct date on both system clock [...]]]></description>
			<content:encoded><![CDATA[<h2>
<p>Offline Installation</p>
</h2>
<p>The following steps need to be done for new network environment after offline installation.</p>
<ol>
<li>
<p>/etc/resolv.conf, to add in more DNS server</p>
</li>
<li>
<p>/etc/sysconfig/network<br />
<blockquote>NETWORKING=yes<br />
HOSTNAME=&lt;hostname&gt;</p></blockquote>
</li>
<li>
<p>/etc/hosts</p>
<pre>
<blockquote>127.0.0.1       	localhost.localdomain localhost
&lt;IP&gt; 		&lt;hostname&gt; &lt;hostname in short&gt;

Eg:
203.115.228.142 	it-lodge.ywso.com it-lodge</blockquote>
</pre>
</li>
<li>
<p>/etc/sysconfig/network-scripts/ifcfg-eth0</p>
<pre>
<blockquote>Remove <strong>BROADCAST=192.168.0.255</strong> and <strong>NETWORK=192.168.0.0</strong></blockquote>
</pre>
</li>
<li>
<p>/etc/sysconfig/network-scripts/ifcfg-eth1 (if any)</p>
</li>
<li>
<p>/etc/sysconfig/iptables</p>
</li>
<li>
<p>Set correct date on both system clock and hardware clock with the following command:</p>
<p>Set the system clock<br />
date MMDDhhmmYY</p>
<p>To set the hardware clock to the current system clock<br />
hwclock &#8211;systohc</p>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/02/14/offline-installation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Default Setup</title>
		<link>http://www.technicalguy.org/2008/02/01/default-setup/</link>
		<comments>http://www.technicalguy.org/2008/02/01/default-setup/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 04:15:31 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Lesson]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Solution]]></category>
		<category><![CDATA[Web Hosting]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/2008/02/01/default-setup/</guid>
		<description><![CDATA[Default Setup Run crontab –e to add the following setting: MAILTO=root 0 6 * * 5 /sbin/shutdown -r now 0 2 1 * * /etc/rc.d/init.d/httpd stop; rm -f /etc/httpd/logs/*; /etc/rc.d/init.d/httpd start Install info.php in /home/admin/web/php-bin touch /home/admin/web/php-bin/info.php vi /home/admin/web/php-bin/info.php &#60;? phpinfo(); ?&#62; Install phpMyAdmin in /home/admin/web/php-bin/phpmyadmin wget –P /home/admin/web/php-bin http://&#60;latest_phpmyadmin&#62; tar –zxvf /home/admin/web/php-bin/phpMyAdmin-latest.tar.gz rm /home/admin/web/php-bin/phpMyAdmin-latest.tar.gz [...]]]></description>
			<content:encoded><![CDATA[<h2>
<p>Default Setup</p>
</h2>
<ol>
<li>
<p>Run <strong>crontab –e</strong> to add the following setting:<br />
<blockquote>MAILTO=root<br />
0 6 * * 5 /sbin/shutdown -r now<br />
0 2 1 * * /etc/rc.d/init.d/httpd stop; rm -f /etc/httpd/logs/*; /etc/rc.d/init.d/httpd start</p></blockquote>
</li>
<li>
<p>Install info.php in /home/admin/web/php-bin<br />
<strong>touch /home/admin/web/php-bin/info.php<br />
vi /home/admin/web/php-bin/info.php</strong><br />
<blockquote>&lt;? phpinfo(); ?&gt;</p></blockquote>
</li>
<li>
<p>Install phpMyAdmin in /home/admin/web/php-bin/phpmyadmin<br />
<strong>wget –P /home/admin/web/php-bin http://&lt;latest_phpmyadmin&gt;<br />
tar –zxvf /home/admin/web/php-bin/phpMyAdmin-latest.tar.gz<br />
rm /home/admin/web/php-bin/phpMyAdmin-latest.tar.gz<br />
mv phpMyAdmin-latest phpmyadmin<br />
vi phpmyadmin/config.inc.php</strong><br />
<blockquote>$cfg['PmaAbsoluteUri'] = &#8216;http://&lt;hostname&gt;/php-bin/phpmyadmin/&#8217;;<br />
$cfg['Servers'][$i]['auth_type']     	= &#8216;http&#8217;;<br />
$cfg['Servers'][$i]['user']          	= &#8221;;</p></blockquote>
</li>
<li>
<p>Install under construction page in /home/admin<br />
Please refer to http://it-lodge.ywso.com<br />
Basically, you need index.html and img/wesostyle.jpg only</p>
</li>
<li>
<p>If you are using phpMyAdmin 2.9.1.1 or later, the config.inc.php configuration is different from the older version, you may want to edit some general command in the file.<br />
<blockquote>$cfg['blowfish_secret'] = &#8216;<strong>cookie</strong>&#8216;;<br />
$cfg['Servers'][$i]['controluser'] = &#8216;<strong>&lt;Leave Blank&gt;</strong>&#8216;;<br />
$cfg['Servers'][$i]['controlpass'] = &#8216;<strong>&lt;Leave Blank&gt;</strong>&#8216;;</p></blockquote>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/02/01/default-setup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LogWatch</title>
		<link>http://www.technicalguy.org/2008/02/01/logwatch/</link>
		<comments>http://www.technicalguy.org/2008/02/01/logwatch/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 04:15:09 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Lesson]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Solution]]></category>
		<category><![CDATA[Web Hosting]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/2008/02/01/logwatch/</guid>
		<description><![CDATA[LogWatch Edit Logwatch configuration file at /etc/log.d/logwatch.conf Detail = High]]></description>
			<content:encoded><![CDATA[<h2>
<p>LogWatch</p>
</h2>
<ol>
<li>
<p>Edit Logwatch configuration file at <strong>/etc/log.d/logwatch.conf</strong></p>
<p><strong>Detail = High</strong></p>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/02/01/logwatch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webalizer</title>
		<link>http://www.technicalguy.org/2008/02/01/webalizer/</link>
		<comments>http://www.technicalguy.org/2008/02/01/webalizer/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 04:08:08 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Lesson]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Solution]]></category>
		<category><![CDATA[Web Hosting]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/2008/02/01/webalizer/</guid>
		<description><![CDATA[Webalizer Webalizer is a web server log file analysis program, which produces usage statistics in HTML format for viewing with a browser. The results are presented in both columnar and graphical format, which facilitates interpretation. Yearly, monthly, daily and hourly usage statistics are presented, along with the ability to display usage by site, URL, referrer, [...]]]></description>
			<content:encoded><![CDATA[<h2>
<p>Webalizer</p>
</h2>
<p><a href="http://www.mrunix.net/webalizer">Webalizer</a> is a web server log file analysis program, which produces usage statistics in HTML format for viewing with a browser. The results are presented in both columnar and graphical format, which facilitates interpretation. Yearly, monthly, daily and hourly usage statistics are presented, along with the ability to display usage by site, URL, referrer, user agent, browser and country, user agent and referrer are only available if your web server produces Combined log format files. The person who write this program can be reached with Bradford L. Barrett, brad@mrunix.net.</p>
<ol>
<li>
<p>Webalizer RPM is installed by default. Uninstall Webalizer<br />
<strong>rpm –e webalizer</strong></p>
</li>
<li>
<p>Install GeoIP library<br />
<blockquote>
<ol>
<li style="list-style-type : lower-alpha;">tar –zxvf /usr/src/GeoIP.tar.gz</li>
<li style="list-style-type : lower-alpha;">cd /usr/src/GeoIP-version</li>
<li style="list-style-type : lower-alpha;">./configure</li>
<li style="list-style-type : lower-alpha;">make</li>
<li style="list-style-type : lower-alpha;">make install</li>
</ol>
</blockquote>
</li>
<li>
<p>Install and patch Webalizer with geolizer<br />
<blockquote>
<ol>
<li style="list-style-type : lower-alpha;">tar –zxvf /usr/src/webalizer-2.01-10-src.tgz</li>
<li style="list-style-type : lower-alpha;">tar –zxvf /usr/src/geolizer_2.01-10-patch.20040216.tar.gz</li>
<li style="list-style-type : lower-alpha;">cd /usr/src</li>
<li style="list-style-type : lower-alpha;">patch –p0 < /usr/src/geolizer_2.01-10-patch/geolizer.patch</li>
<li style="list-style-type : lower-alpha;">rpm –Uvh /usr/src/libpng-devel-1.2.7-1.i386.rpm</li>
<li style="list-style-type : lower-alpha;">rpm –Uvh /usr/src/gd-devel-2.0.28-4.i386.rpm</li>
<li style="list-style-type : lower-alpha;">Add share libraries path /usr/lib to /etc/ld.so.conf</li>
<li style="list-style-type : lower-alpha;">ldconfig</li>
<li style="list-style-type : lower-alpha;">cd /usr/src/webalizer-2.01-10</li>
<li style="list-style-type : lower-alpha;">./configure –-enable-geoip</li>
<li style="list-style-type : lower-alpha;">make</li>
<li style="list-style-type : lower-alpha;">make install</li>
</ol>
</blockquote>
</li>
<li>
<p>Webalizer configuration file webalizer.conf.sample can be found in /etc</p>
</li>
<li>
<p>Create a folder to host respective webalizer configure file for each virtual hosting, <strong>mkdir /etc/webalizer</strong></p>
</li>
<li>
<p><strong>mv /etc/webalizer.conf.sample<br />
/etc/webalizer/<user>_webalizer.conf</strong></p>
</li>
<li>
<p>vi /etc/webalizer/<user>_webalizer.conf</p>
<pre>
<blockquote>TopCountries    	300
GeoIP           	yes
GeoIPDatabase   	/usr/local/share/GeoIP/GeoIP.dat
LogFile         	/etc/httpd/logs/&lt;user&gt;_access_log
LogType clf
OutputDir       	/home/&lt;user&gt;/web/stats
HistoryName     	webalizer.hist
Incremental     	yes
IncrementalName webalizer.current
ReportTitle     	Usage Statistics for
HostName        	&lt;Hostname&gt;
PageType        	cgi
PageType        	php
PageType        	shtml
HTMLBody &lt;BODY CLASS="body" BGCOLOR="#E8E8E8" LINK="#0000FF"
VLINK="#FF0000"&gt;
HTMLBody &lt;STYLE type=text/css&gt;
HTMLBody BODY.body {font-family: Helvetica, Arial}A:hover {color:
#4F709F}
HTMLBody &lt;/STYLE&gt;
Quiet              yes
FoldSeqErr      yes
HideURL         *.gif
HideURL         *.GIF
HideURL         *.jpg
HideURL         *.JPG
HideURL         *.png
HideURL         *.PNG
HideURL         *.ra
SearchEngine    yahoo.com       p=
SearchEngine    altavista.com   q=
SearchEngine    google.com      q=
SearchEngine    eureka.com      q=
SearchEngine    lycos.com       query=
SearchEngine    hotbot.com      MT=
SearchEngine    msn.com         MT=
SearchEngine    infoseek.com    qt=
SearchEngine    webcrawler      searchText=
SearchEngine    excite          search=
SearchEngine    netscape.com    search=
SearchEngine    mamma.com       query=
SearchEngine    alltheweb.com   query=
SearchEngine    northernlight.com  qr
</blockquote>
</pre>
</li>
<li>
<p>To update GeoIP.dat in future:<br />
<strong>wget -P /usr/src http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz</p>
<p>gunzip /usr/src/GeoIP.dat.gz</p>
<p>mv /usr/src/GeoIP.dat /usr/local/share/GeoIP/GeoIP.dat</strong></p>
</li>
<li>
<p>Run webalizer, <strong>webalizer –c /etc/webalizer/&lt;user&gt;_webalizer.conf</strong><br />
You may want to add shared libraries path for libGeoIp into /etc/ld.so.conf<br />
By default, libGeoIP library is installed in <strong>/usr/local/lib</strong>. Run ldconfig after changes.</p>
<p>Add a crontab entry as follow (runs everyday at 0010am):</p>
<p><strong>10 0 * * * for i in /etc/webalizer/*.conf; do /usr/local/bin/webalizer -d –c $i; done</strong>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/02/01/webalizer/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CGIWrap</title>
		<link>http://www.technicalguy.org/2008/02/01/cgiwrap/</link>
		<comments>http://www.technicalguy.org/2008/02/01/cgiwrap/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 04:05:40 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Lesson]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Solution]]></category>
		<category><![CDATA[Web Hosting]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/2008/02/01/cgiwrap/</guid>
		<description><![CDATA[CGIWrap Assume we have main web root directory at /home/admin/web, and we would like to have CGIWrap transparently at the background. The cgi-bin folder is located inside web folder. Please change both the user and group in httpd.conf to apache. tar -zxvf cgiwrap-version.tar.gz ./configure &#8211;with-cgi-dir=web/cgi-bin &#8211;with-httpd-user=apache &#8211;with-install-dir=/home/&#60;user&#62;/web/cgi-bin make make install Update the httpd.conf file with [...]]]></description>
			<content:encoded><![CDATA[<h2>
<p>CGIWrap</p>
</h2>
<p>Assume we have main web root directory at /home/admin/web, and we would like to have CGIWrap transparently at the background. The cgi-bin folder is located inside web folder. Please change both the user and group in httpd.conf to apache.</p>
<ol>
<li>
<p><strong>tar -zxvf cgiwrap-version.tar.gz</strong></p>
</li>
<li>
<p><strong>./configure &#8211;with-cgi-dir=web/cgi-bin &#8211;with-httpd-user=apache &#8211;with-install-dir=/home/&lt;user&gt;/web/cgi-bin</strong></p>
</li>
<li>
<p><strong>make</strong></p>
</li>
<li>
<p><strong>make install</strong></p>
</li>
<li>
<p>Update the httpd.conf file with<br />
<blockquote>ScriptAlias /cgi-bin/ &#8220;/home/admin/web/cgi-bin/&#8221;</p>
<p>RewriteEngine On<br />
RewriteMap lowercase int:tolower<br />
RewriteRule ^/cgi-bin/(.*) /cgi-bin/cgiwrap/admin/$1 [PT]</p>
<p>&lt;Directory “/home/admin/web/cgi-bin”&gt;<br />
		…</p></blockquote>
</li>
<li>
<p>Sample of error message for CGIWrap:</p>
<p><img src="http://www.1.com.my/wp-content/uploads/2006/12/cgi01.gif" alt=""/></p>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/02/01/cgiwrap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP</title>
		<link>http://www.technicalguy.org/2008/02/01/php/</link>
		<comments>http://www.technicalguy.org/2008/02/01/php/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 04:05:20 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Lesson]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Solution]]></category>
		<category><![CDATA[Web Hosting]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/2008/02/01/php/</guid>
		<description><![CDATA[PHP PHP is a server-side, cross platform, HTML embedded scripting language. Learn more of PHP from http://www.php.net You need php-mysql package to connect to a MySQL database. Download and install php-mysql-version.rpm. It is better to install a version of php-mysql that match with your native php and mysql that shipped together with your current Linux [...]]]></description>
			<content:encoded><![CDATA[<h2>
<p>PHP</p>
</h2>
<ol>
<li>
<p>PHP is a server-side, cross platform, HTML embedded scripting language. Learn more of PHP from http://www.php.net </p>
</li>
<li>
<p>You need php-mysql package to connect to a MySQL database. Download and install <strong>php-mysql-version.rpm</strong>. It is better to install a version of php-mysql that match with your native php and mysql that shipped together with your current Linux software.</p>
</li>
<li>
<p>Update /etc/php.ini<br />
<blockquote>error_reporting  =  E_ALL &#038; ~E_NOTICE<br />
display_errors = On<br />
register_globals = On<br />
memory_limit = 12M<br />
magic_quotes_gpc = Off</p></blockquote>
</li>
<li>
<p>To support GD, please install php-gd-version.rpm</p>
</li>
<li>
<p>Install mbstring module, download <strong>php-mbstring-version.rpm</strong> and install. Restart Apache after installation.</p>
</li>
<li>
<p>To support Zend Optimizer, please download from Zend Optimizer website and install. After successful installation, you will see the following line in the php.ini.</p>
<p>This program makes use of the Zend Scripting Language Engine:<br />
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies with Zend Extension Manager v1.0.8, Copyright (c) 2003-2005, by Zend Technologies <strong>with Zend Optimizer v2.5.10, Copyright (c) 1998-2005, by Zend Technologies</strong></p>
</li>
<li>
<p>Restart Apache<br />
<strong>/etc/rc.d/init.d/httpd restart</strong></p>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/02/01/php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Database Server</title>
		<link>http://www.technicalguy.org/2008/02/01/mysql-database-server/</link>
		<comments>http://www.technicalguy.org/2008/02/01/mysql-database-server/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 04:04:50 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Lesson]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Solution]]></category>
		<category><![CDATA[Web Hosting]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/2008/02/01/mysql-database-server/</guid>
		<description><![CDATA[MySQL Database Server MySQL database server (http://www.mysql.com) is the world&#8217;s most popular open source database. With more than five million active installations, MySQL has quickly become the core of many high-volume, business-critical applications. MySQL has the capabilities to handle most corporate database application requirements with an architecture that is extremely fast and easy to use. [...]]]></description>
			<content:encoded><![CDATA[<h2>
<p>MySQL Database Server</p>
</h2>
<p>MySQL database server (http://www.mysql.com) is the world&#8217;s most popular open source database. With more than five million active installations, MySQL has quickly become the core of many high-volume, business-critical applications. MySQL has the capabilities to handle most corporate database application requirements with an architecture that is extremely fast and easy to use.</p>
<ol>
<li>
<p><strong>rpm -qa | grep -i mysql</strong>, shows all package with name ‘mysql’ installed. By default, mysql-server is not installed.</p>
</li>
<li>
<p>Download and install mysql-server, <strong>rpm –Uvh /usr/src/mysql-server-version.rpm</strong></p>
</li>
<li>
<p>Start mysqld, <strong>/etc/rc.d/init.d/mysqld restart</strong></p>
</li>
<li>
<p>By default, MySQL is not configured to start everytime the server reboot. To enable this, use <strong>chkconfig</strong> to configure the run level of this service.</p>
<p><strong>chkconfig &#8211;level 2 mysqld on<br />
chkconfig &#8211;level 3 mysqld on<br />
chkconfig &#8211;level 4 mysqld on<br />
chkconfig &#8211;level 5 mysqld on</strong></p>
</li>
<li>
<p>Set the MySQL root user password<br />
<blockquote>shell&gt; <strong>mysql –u root</strong></p>
<p>mysql&gt; <strong>use mysql</strong>;</p>
<p>mysql&gt; <strong>update user set password=password(‘Your_password_here’)    where user=‘root’;</strong></p>
<p>mysql&gt; <strong>flush privileges;</strong></p></blockquote>
<p>You can also change MySQL root password with,<br />
<strong>/usr/bin/mysqladmin -u root password &#8216;new-password&#8217;</strong></p>
</li>
<li>
<p>Login as root (Noted, this root user is not Unix root user) with,<br />
/<strong>usr/local/mysql/bin/mysql –u root -p &lt;enter&gt;<br />
Password: &lt;Your_password_here&gt;</strong></p>
</li>
<li>
<p>Open port 3306 if MySQl is blocked by the firewall.</p>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/02/01/mysql-database-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache HTTP Server</title>
		<link>http://www.technicalguy.org/2008/02/01/apache-http-server/</link>
		<comments>http://www.technicalguy.org/2008/02/01/apache-http-server/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 04:02:14 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Lesson]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Solution]]></category>
		<category><![CDATA[Web Hosting]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/2008/02/01/apache-http-server/</guid>
		<description><![CDATA[Apache HTTP Server The Apache HTTP Server Project (http://httpd.apache.org) is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards. Apache [...]]]></description>
			<content:encoded><![CDATA[<h2>
<p>Apache HTTP Server</p>
</h2>
<p>The Apache HTTP Server Project (http://httpd.apache.org) is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards.</p>
<p>Apache has been the most popular web server on the Internet since April of 1996. The October 2003 Netcraft Web Server Survey found that more than 64% of the web sites on the Internet are using Apache, thus making it more widely used than all other web servers combined.</p>
<ol>
<li>
<p>By default, Apache is not configured to start everytime the server reboot. To enable this, use chkconfig to configure the run level of this service.</p>
<p><strong>chkconfig &#8211;level 2 httpd on<br />
chkconfig &#8211;level 3 httpd on<br />
chkconfig &#8211;level 4 httpd on<br />
chkconfig &#8211;level 5 httpd on</strong></p>
</li>
<li>
<p>Start Apache,  <strong>/etc/rc.d/init.d/httpd start</strong></p>
</li>
<li>
<p>SSL support is enabled by default. You can access the website with https://<domain> or http://<domain>:443</p>
</li>
<li>
<p>Modify Apache configuration file <strong>/etc/httpd/conf/httpd.conf</strong>. Config file for SSL, PHP, Perl, Webalizer and default Apache welcome page can be found in <strong>/etc/httpd/conf.d</strong>. </p>
</li>
<li>
<p>Turn off default Apache welcome page by comment out all directives in <strong>/etc/httpd/conf.d/welcome.conf</strong> </p>
</li>
<li>
<p>Increase the value of LimitRequestBody to 9999999 (10MB) in /etc/httpd/conf.d/php.conf<br />
<strong>LimitRequestBody 9999999</strong></p>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/02/01/apache-http-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sendmail</title>
		<link>http://www.technicalguy.org/2008/02/01/sendmail/</link>
		<comments>http://www.technicalguy.org/2008/02/01/sendmail/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 04:01:44 +0000</pubDate>
		<dc:creator>Pin</dc:creator>
				<category><![CDATA[Lesson]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Solution]]></category>
		<category><![CDATA[Web Hosting]]></category>

		<guid isPermaLink="false">http://www.technicalguy.org/2008/02/01/sendmail/</guid>
		<description><![CDATA[Sendmail The sendmail program is installed by default. Type rpm -q sendmail to view sendmail version number. By default, the date for /etc/mail/*.db is not correct and therefore you need to re-make the *.db file before you can start sendmail properly. makemap hash /etc/mail/access &#60; /etc/mail/access makemap hash /etc/mail/virtusertable &#60; /etc/mail/virtusertable makemap hash /etc/mail/domaintable &#60; [...]]]></description>
			<content:encoded><![CDATA[<h2>
<p>Sendmail</p>
</h2>
<ol>
<li>
<p>The sendmail program is installed by default. Type <strong>rpm -q sendmail</strong> to view sendmail version number.</p>
</li>
<li>
<p>By default, the date for /etc/mail/*.db is not correct and therefore you need to re-make the *.db file before you can start sendmail properly. </p>
<p><strong>makemap hash /etc/mail/access &lt; /etc/mail/access</p>
<p>makemap hash /etc/mail/virtusertable &lt; /etc/mail/virtusertable</p>
<p>makemap hash /etc/mail/domaintable &lt; /etc/mail/domaintable</p>
<p>makemap hash /etc/mail/mailertable &lt; /etc/mail/mailertable</strong>
</p>
</li>
<li>
<p>sendmail.mc is a macro config file used to generate the sendmail.cf. You will have to regenerate the sendmail.cf by running this macro config through the m4 preprocessor. By default, sendmail does not accept email over the network except localhost. Comment out the line in sendmail.mc</p>
<p><strong>DAEMON_OPTIONS(‘Port=smtp,Addr=127.0.0.1, Name=MTA’)</strong></p>
<p>to</p>
<p><strong>dnl DAEMON_OPTIONS(‘Port=smtp,Addr=127.0.0.1, Name=MTA’)</strong></p>
</li>
<li>
<p>Create the /etc/sendmail.cf file from /etc/mail/sendmail.mc after the modification. Make sure that <strong>sendmail-cf.version.rpm</strong> is installed before you can run the M4 preprocessor.</p>
<p><strong>m4 /etc/mail/sendmail.mc &gt; /etc/sendmail.cf</strong>
</p>
</li>
<li>
<p>Restart sendmail.</p>
</li>
</ol>
<h3>
<p>Mail Aliases</p>
</h3>
<ol>
<li>
<p>Mail alias is a powerful features that enable mail to be directed to mailboxes that are alternate names for users or processes on a destination host. For example, it is common practice to have feedback or comments relating to a World Wide Web server to be directed to “webmaster.” Often there isn&#8217;t a user known as “webmaster” on the target machine, instead it is an alias of another system user. Another common use of mail aliases is exploited by mailing list server programs in which an alias directs incoming messages to the list server program for handling.</p>
<p>The <strong>/etc/aliases</strong> file is where the aliases are stored. The <strong>sendmail</strong> program consults this file when determining how to handle an incoming mail message. If it finds an entry in this file matching the target user in the mail message, it redirects the message to wherever the entry describes.</p>
<p>Specifically there are three things that aliases allow to happen:</p>
<ol>
<li style="list-style-type : lower-alpha;">
<p>They provide a shorthand or well-known name for mail to be addressed to in order to go to one or more persons.</li>
</p>
<li style="list-style-type : lower-alpha;">
<p>They can invoke a program with the mail message as the input to the program.</p>
</li>
<li style="list-style-type : lower-alpha;">
<p>They can send mail to a file.</p>
</li>
</ol>
</li>
<li>
<p>Demonstrate the common types of aliases</p>
<p>usenet:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;daph&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# alias for a person<br />
admin:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;daph,lee,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# alias for several people<br />
news:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:include:/home/news&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# read recipients from file<br />
changefeed:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|/usr/local/lib/gup&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# to invokes program<br />
complaints:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/var/log/complaints&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# alias writes mail to file
</p>
</li>
<li>
<p>After modify the <strong>/etc/aliases</strong>, update the aliases file with:</p>
<p><strong>newaliases</strong>
</p>
</li>
</ol>
<h3>
<p>Accepting Mail from Other Domains</p>
</h3>
<ol>
<li>
<p>If we wish to configure virtual email hosting, the first thing we need to do is to convince sendmail that it should also accept mail for the domains that we are hosting.</p>
</li>
<li>
<p>To stick with the default filename, if we wished to offer virtual hosting to the <strong>domain1.com.my</strong> and <strong>domain2.com</strong>, we would create a <strong>/etc/mail/local-host-names</strong> that looks like:</p>
<p><strong>domain1.com.my<br />
domain2.com</strong>
</p>
</li>
<li>
<p>When this is done, and assuming appropriate DNS records exist that point those domain names to our host, sendmail will accept mail messages for those domains as though they were destined for our real domain name.</p>
</li>
<li>
<p>In your zone files of those new domain names, you should use real domain name’s MX mail server. Make a MX record like mail.domain1.com.my to domain1.com.my. Also, remember to make a A record for this mail.domain1.com.my to point to an IP address. Without this, sendmail (v8.9.x) will not deliver mail to the virtual domain.</p>
</li>
</ol>
<h3>
<p>Forwarding Virtual-hosted Mail</p>
</h3>
<ol>
<li>
<p>Add forwarding terms in <strong>/etc/mail/virtusertable</strong></p>
</li>
<li>
<p>Possible entries in <strong>virtusertable</strong> with virtual hosting of <strong>domain1.com.my</strong> and <strong>domain2.com</strong> domains in <strong>local-host-names</strong>:</p>
<ol>
<li style="list-style-type : lower-alpha;">
<p>User admin in virtual mail domain1.com.my to local user daph<br />
<strong>admin@domain1.com.my&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;daph</strong></p>
</li>
<li style="list-style-type : lower-alpha;">
<p>User daph in virtual domains domain1.com.my to another domains:<br />
<strong>daph@domain1.com.my&nbsp;&nbsp;daph@otherdomain.com</strong></p>
</li>
<li style="list-style-type : lower-alpha;">
<p>Any mail to domain2.com are forwarded to daph@otherdomain.com<br />
<strong>@domain2.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;daph@otherdomain.com</strong></p>
</li>
<li style="list-style-type : lower-alpha;">
<p>Any mail to domain2.com are forwarded to the same user in another domains otherdomain.com<br />
<strong>@domain2.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$1@otherdomain.com</strong></p>
</li>
</ol>
</li>
<li>
<p>Create the virtusertable database map with:</p>
<p><strong>makemap hash /etc/mail/virtusertable &lt; /etc/mail/virtusertable</strong>
</p>
</li>
<li>
<p>In addition to the mail forwarding provided by aliases, sendmail allows individual users to define their own forwarding. The user defines her personal forwarding in the .forward file in her home directory. sendmail checks for this file after using the aliases file and before making final delivery to the user. If the .forward file exists, sendmail delivers the mail as directed by that file.</p>
</li>
</ol>
<h3>
<p>Sendmail Configuration Script</p>
</h3>
<ol>
<li>
<p>Alternatively, you can configure your sendmail with this sendmail-install.5.5 script.</p>
</li>
<li>
<p><strong>tar -zxvf sendmail-install-5.5.tar.gz</strong></p>
</li>
<li>
<p><strong>./install-sendmail –c</strong></p>
</li>
<li>
<p>Follow the onscreen step by step wizard to configure your sendmail aliases, virtual user table, outgoing mail server, incoming mail server, sendmail for local network, server queue time and others.</p>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.technicalguy.org/2008/02/01/sendmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
