<?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>Webmaster-Source &#187; servers</title>
	<atom:link href="https://www.webmaster-source.com/tag/servers/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.webmaster-source.com</link>
	<description>Useful Resources For Webmasters</description>
	<lastBuildDate>Thu, 24 Aug 2017 02:01:18 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>What You Need to Know About the Heartbleed Bug</title>
		<link>https://www.webmaster-source.com/2014/04/14/what-you-need-to-know-about-the-heartbleed-bug/</link>
		<comments>https://www.webmaster-source.com/2014/04/14/what-you-need-to-know-about-the-heartbleed-bug/#comments</comments>
		<pubDate>Mon, 14 Apr 2014 23:07:17 +0000</pubDate>
		<dc:creator><![CDATA[Matt]]></dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[servers]]></category>
		<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=5289</guid>
		<description><![CDATA[If you haven&#8217;t already heard, a major exploit in OpenSSL was discovered recently. The Heartbleed Bug, which is as scary as it sounds, allows an attacker to capture potentially sensitive information from a server&#8217;s memory by exploiting a flaw in the implementation of the heartbeat function of OpenSSL&#8217;s SSL/TLS implementation. How it Works SSL/TLS, the [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-5290" alt="Heartbleed Logo" src="//www.webmaster-source.com/wp-content/uploads/2014/04/heartbleedbug.png" width="165" height="200" />If you haven&#8217;t already heard, a major exploit in OpenSSL was discovered recently. The <a href="http://heartbleed.com/">Heartbleed Bug</a>, which is as scary as it sounds, allows an attacker to capture potentially sensitive information from a server&#8217;s memory by exploiting a flaw in the implementation of the heartbeat function of OpenSSL&#8217;s SSL/TLS implementation.</p>
<h3>How it Works</h3>
<p>SSL/TLS, the encryption protocol commonly used for securing traffic between web browsers and servers, has a feature called a &#8220;heartbeat.&#8221; Every now and then, an exchange like this happens between the client and the server:</p>
<p><strong>Client:</strong> You still there? If so, send back &#8220;ALIVE,&#8221; which is five characters.</p>
<p><strong>Server:</strong> ALIVE</p>
<p>If the heartbeat succeeds, the connection stays open. This keeps happening, over and over, with a different value being passed each time.</p>
<p>Now here&#8217;s what happens if someone exploits the Heartbleed bug:</p>
<p><strong>Client:</strong> You still there? If so, send back &#8220;KITTEN,&#8221; which is 300 characters.</p>
<p><strong>Server</strong>: KITTEN, and here&#8217;s a block of random memory from RAM!</p>
<p>In this manner, an attacker can get a random 64KB chunk of data from memory <em>every time</em> a heartbeat is sent, thanks to a lack of validation of the length parameter. (So an attacker can just repeatedly make attempts.) Eventually, they&#8217;d get lucky and find something interesting. Such as the SSL certificate or users&#8217; passwords and data.</p>
<p>Exploiting this bug is trivial. (There were people posting scripts to test for the vulnerability minutes after it was announced. Just imagine how quickly malicious types got to work implementing exploits for the bug!) It&#8217;s also possible that <em>someone</em> knew about it months or even a couple years ago, and has been exploiting it ever since. <a href="http://www.bloomberg.com/news/2014-04-11/nsa-said-to-have-used-heartbleed-bug-exposing-consumers.html">Bloomberg even suggests</a> that the NSA has known about it for two years, and has been exploiting it rather than disclosing the problem.</p>
<h3>Is it Fixed?</h3>
<p>Yes! Your Linux distro should already have patched builds in their package manager, so it&#8217;s just a simple manner of running a couple of commands to update your <code>openssl</code> and <code>libssl1.0.0</code> packages, then restarting any services that depend on SSL. (Or just do a full reboot if you&#8217;re paranoid.) In the case of Ubuntu, you&#8217;d just do something like this to update the packages:</p>
<pre class="brush: plain; title: ; notranslate">
sudo apt-get update
sudo apt-get dist-upgrade
</pre>
<p>You should now revoke any SSL certificates and issue new ones, in case they were leaked in an exploit of the bug.</p>
<h3>What Should I Do, as a User?</h3>
<p>Change your passwords! For anything important—email, banking, etc.—you should consider picking a new password.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.webmaster-source.com/2014/04/14/what-you-need-to-know-about-the-heartbleed-bug/feed/</wfw:commentRss>
		<slash:comments>62</slash:comments>
		</item>
		<item>
		<title>Deploy GitHub Repositories with GoHub</title>
		<link>https://www.webmaster-source.com/2013/09/04/deploy-github-repositories-with-gohub/</link>
		<comments>https://www.webmaster-source.com/2013/09/04/deploy-github-repositories-with-gohub/#comments</comments>
		<pubDate>Wed, 04 Sep 2013 11:42:19 +0000</pubDate>
		<dc:creator><![CDATA[Matt]]></dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[servers]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=5174</guid>
		<description><![CDATA[One popular way to deploy a web application, or even a set of static HTML files in the case of Jekyll blogs, is to add a bare repository on your server with a post-receive hook that catches the files when they&#8217;re pushed and copies them into the right place. But that&#8217;s a little inconvenient. To [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>One popular way to deploy a web application, or even a set of static HTML files in the case of <a href="http://jekyllrb.com/">Jekyll</a> blogs, is to add a bare repository on your server with a post-receive hook that catches the files when they&#8217;re pushed and copies them into the right place. But that&#8217;s a little inconvenient. To deploy you have to grab your computer, pull down the latest changes and then push to your second remote. What if you want to do it from your phone, reviewing pull requests and merging them on the go? What if you want to edit your Jekyll blog&#8217;s repository on <a href="http://prose.io/">Prose</a> and have the changes immediately take effect?</p>
<p>That&#8217;s the problem <a href="https://github.com/redwallhp/gohub">GoHub</a> attempts to solve. It&#8217;s a tiny webserver (written in the Go language) that listens on a port for messages from GitHub&#8217;s WebHook API. Any time a commit is pushed to GitHub, they send a JSON notification to your GoHub listener, and it runs the shell script of your choice when the specified branch (usually &#8220;master&#8221;) changes.</p>
<p>The original GoHub script was <a href="https://github.com/adeven/gohub">created by adevan</a>, but I made <a href="https://github.com/redwallhp/gohub">my own fork</a> that includes some extra goodies. It includes a magical setup script that sets everything up for you, as well as an Upstart script. (Configurations and logs are also under <code>/etc/gohub</code> in the fork.) So if your Linux distro is still using SystemV instead of <a href="http://en.wikipedia.org/wiki/Upstart">Upstart</a>, you probably want to use the original instead of the fork. (At least until I get around to writing a SystemV script and amending the setup&#8230;) If you&#8217;re on Ubuntu, you&#8217;re good.</p>
<p>Assuming you already have <a href="http://golang.org/">Go</a> installed, it&#8217;s a simple matter of cloning the repository and running the setup script.<span id="more-5174"></span></p>
<pre class="brush: bash; title: ; notranslate">
git clone https://github.com/redwallhp/gohub.git
cd gohub
chmod +x ./setup
sudo ./setup
</pre>
<p>Then you need to add your watched repositories to <code>/etc/gohub/config.json</code>. Each object should specify the repository name (in the form of <code>gohub</code> not <code>redwallhp/gohub</code>), the branch (<code>master</code> in most cases) and the path to the shell script that should be run. The best place to keep them is in <code>/etc/gohub/scripts</code>, to keep everything together and save your sanity in the future.</p>
<p>What should one of those scripts look like? Here&#8217;s a super simple example that just takes the files checked out and copies them to the public directory the web server is looking in. This works well for PHP projects.</p>
<pre class="brush: bash; title: ; notranslate">
#!/bin/bash -l

GIT_REPO=https://github.com/me/awesomeapp.git
TMP_GIT_CLONE=~/tmp/git/awesomeapp
PUBLIC_WWW=/var/www/sites/awesomeapp

git clone $GIT_REPO $TMP_GIT_CLONE
cp $TMP_GIT_CLONE $PUBLIC_WWW
rm -rf $TMP_GIT_CLONE
exit
</pre>
<p>The README file has <a href="https://github.com/redwallhp/gohub#example-deployment-script">the script I use</a> to build and deploy Jekyll sites.</p>
<p>Once you have everything set up to your liking, start the server by running <code>service gohub start</code>. This invokes the Upstart script and starts the server daemon.</p>
<p>Now all that&#8217;s left to do is add the WebHook on GitHub. Go into the settings for the repository, select Service Hooks, and then WebHook URLS. Paste in the appropriate URL, which follows this convention:</p>
<pre class="brush: plain; title: ; notranslate">http://example.org:8392/reponame_branch</pre>
<p>So if your repository URL is <code>https://github.com/me/awesomeapp.git</code>, and your domain is <code>example.org</code>, your WebHook URL would be <code>http://example.org:8392/awesomeapp_master</code>.</p>
<p>Save the settings on GitHub, and test out your new Git deployment system. If you make a change and push the commit, the changes should take effect momentarily.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.webmaster-source.com/2013/09/04/deploy-github-repositories-with-gohub/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ServerBear: Performance Benchmarking For Linux Servers</title>
		<link>https://www.webmaster-source.com/2013/04/17/serverbear-performance-benchmarking-for-linux-servers/</link>
		<comments>https://www.webmaster-source.com/2013/04/17/serverbear-performance-benchmarking-for-linux-servers/#comments</comments>
		<pubDate>Wed, 17 Apr 2013 10:21:08 +0000</pubDate>
		<dc:creator><![CDATA[Matt]]></dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[benchmarks]]></category>
		<category><![CDATA[servers]]></category>
		<category><![CDATA[VPS]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=5059</guid>
		<description><![CDATA[The popular options for VPS hosting for the past few years have been the venerable Linode, VPS.net (my provider of choice since 2009), the late SliceHost, Rackspace and Amazon EC2. A new name has been cropping up more and more lately, though: DigitalOcean. After seeing it mentioned yet again recently, I decided to check out [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>The popular options for VPS hosting for the past few years have been the venerable Linode, VPS.net (my provider of choice since 2009), the late SliceHost, Rackspace and Amazon EC2. A new name has been cropping up more and more lately, though: <a href="http://digitalocean.com/">DigitalOcean</a>. After seeing it mentioned <a href="http://blog.newsblur.com/post/45632737156/three-months-to-scale-newsblur">yet again</a> recently, I decided to check out their web site and see what all the fuss about. Apparently, they&#8217;re very competitively priced, charging about one quarter the price for a comparable offering for Linode. There are pros and cons for each (Linode offers more CPU cores, DigitalOcean has SSDs, for instance) but the price is very attractive. Heck, shared hosting from reputable providers tends to cost around that.</p>
<p>Fast forwarding a bit to spare you the gritty details, I went looking for benchmarks to see how DigitalOcean stacks up against the major competitors. In doing so, I found a new Interesting Thing.</p>
<p><a href="http://serverbear.com/">ServerBear</a> provides &#8220;a no hassle all-in-one UnixBench, IO, IOPS &amp; Network performance test for Linux Servers,&#8221; and compiles an index of benchmarks for the different price points offered by dozens of web hosts. You can look up a service, <a href="http://serverbear.com/9806/digitalocean">such as DigitalOcean</a> in this case, and view benchmarks for each plan purveyed by the host.<span id="more-5059"></span></p>
<p>They also rank the hosts with a &#8220;BearScore&#8221; that represents the performance and specs vs. the monetary cost. Of course, there&#8217;s more to choosing a host than just raw performance. Reliability, knowledgeable staff, and quality support when something goes wrong are also very important. Unfortunately, those things are harder to quantify statistically.</p>
<p><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-5060" alt="ServerBear Benchmarks" src="//www.webmaster-source.com/wp-content/uploads/2013/04/serverbear-bench-digitalocean.png" width="600" height="379" /></p>
<p>Looking at the statistics, this up-and-coming DigitalOcean seems pretty good. Their $10/month offering seems to outperform my two-node VM from VPS.net (which is currently priced at $38/month for new customers&#8230;) in most areas, except for network speed. DigitalOcean, according to other sources as well, seems to have slower internet connectivity than Linode and VPS.net. But at a fraction of the price, it&#8217;s a very attractive option.</p>
<p><a href="http://serverbear.com/">ServerBear: Performance Benchmarking For Linux Servers</a> [serverbear.com]</p>
]]></content:encoded>
			<wfw:commentRss>https://www.webmaster-source.com/2013/04/17/serverbear-performance-benchmarking-for-linux-servers/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fixing Slow Hosts File Lookups in OS X Mountain Lion</title>
		<link>https://www.webmaster-source.com/2012/11/14/fixing-slow-hosts-file-lookups-in-os-x-mountain-lion/</link>
		<comments>https://www.webmaster-source.com/2012/11/14/fixing-slow-hosts-file-lookups-in-os-x-mountain-lion/#comments</comments>
		<pubDate>Wed, 14 Nov 2012 11:58:47 +0000</pubDate>
		<dc:creator><![CDATA[Matt]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[servers]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=4869</guid>
		<description><![CDATA[Mac users with custom entries in their /etc/hosts files may have noticed that, under Mountain Lion at least, lookup times for local resources are incredibly slow. I routinely set up names that point to virtual hosts on my laptop so I can give projects their own local domain instead of having http://localhost/projects/something/index.php or somesuch. Typing [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Mac users with custom entries in their <code>/etc/hosts</code> files may have noticed that, under Mountain Lion at least, lookup times for local resources are incredibly slow. I routinely set up names that point to virtual hosts on my laptop so I can give projects their own local domain instead of having <code>http://localhost/projects/something/index.php</code> or somesuch. Typing <code>something.dev</code> is much easier. I noticed that, since upgrading from Snow Leopard to Mountain Lion, Firefox would spend several seconds trying to look up those names before consulting the hosts file and loading the page.</p>
<p>While I don&#8217;t know why it&#8217;s happening, exactly, I do have a fix. The wait goes away if you put the local entries on one line.</p>
<p>Instead of having something like this:</p>
<pre class="brush: plain; title: ; notranslate">
#virtual hosts
127.0.0.1 myproject.dev
127.0.0.1 wordpress.dev
127.0.0.1 somesuch.dev
</pre>
<p>You need to have this:</p>
<pre class="brush: plain; title: ; notranslate">
#virtual hosts
127.0.0.1 myproject.dev wordpress.dev somesuch.dev
</pre>
<p>Leave the lines that say &#8220;localhost&#8221; alone, of course. Messing with those could cause all manner of Bad Things.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.webmaster-source.com/2012/11/14/fixing-slow-hosts-file-lookups-in-os-x-mountain-lion/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Load Test Your Server with Blitz.io</title>
		<link>https://www.webmaster-source.com/2012/08/28/load-test-your-server-with-blitz-io/</link>
		<comments>https://www.webmaster-source.com/2012/08/28/load-test-your-server-with-blitz-io/#comments</comments>
		<pubDate>Tue, 28 Aug 2012 11:53:24 +0000</pubDate>
		<dc:creator><![CDATA[Matt]]></dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[servers]]></category>
		<category><![CDATA[speed]]></category>
		<category><![CDATA[VPS]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=4805</guid>
		<description><![CDATA[Want to test how your server performs under load? If you&#8217;re in the process of optimizing a server, or have just installed a caching solution, it&#8217;s good to see the effect your changes have had. Blitz is a configurable service that will pound your site with page requests, allowing you to specify the concurrency, timeout, [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Want to test how your server performs under load? If you&#8217;re in the process of optimizing a server, or have just installed a caching solution, it&#8217;s good to see the effect your changes have had.</p>
<p><a href="http://blitz.io/">Blitz</a> is a configurable service that will pound your site with page requests, allowing you to specify the concurrency, timeout, and duration of the onslaught. As it goes about this, it builds statistics and plots them along timelines. You can watch response times, errors and timeouts as it slowly ramps up the number of concurrent users until it reaches the maximum. At the end, it even projects how many hits per day your setup can handle at that rate.</p>
<p style="text-align: center;"><a href="http://blitz.io/"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-4806 imgborder" title="blitz-io" src="//www.webmaster-source.com/wp-content/uploads/2012/08/blitz-io.jpg" alt="" width="600" height="334" /></a></p>
<p>The service has a generous free tier, though they offer paid upgrades for higher concurrency and duration. The free tier offers 250 concurrent users over a one minute rush. (Though if you <a href="http://blitz.io/gcjtZSpbAq6mO">sign up with this invite link</a>, they will add additional concurrencies to your account.)</p>
<p>I found Blitz very useful when I was trying to squeeze faster response times out of my WordPress setup, tweaking my caching system options and adjusting Nginx and PHP configurations. Since they use the connections at their datacenter, you get more real-world results than if you simply ran Apache Bench locally on the server, or from your residential internet connection. Both tools have their uses, of course, and Blitz is a good one to have in your arsenal.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.webmaster-source.com/2012/08/28/load-test-your-server-with-blitz-io/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Checking the Status of a Minecraft Server with PHP</title>
		<link>https://www.webmaster-source.com/2012/07/05/checking-the-status-of-a-minecraft-server-with-php/</link>
		<comments>https://www.webmaster-source.com/2012/07/05/checking-the-status-of-a-minecraft-server-with-php/#comments</comments>
		<pubDate>Thu, 05 Jul 2012 11:45:35 +0000</pubDate>
		<dc:creator><![CDATA[Matt]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Minecraft]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[servers]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=4730</guid>
		<description><![CDATA[Have you ever needed to have a script check whether a Minecraft server was online, or retrieve its listing information, like the &#8220;Message of the Day&#8221; (server description) or the number of active players? Maybe you run your own server, and want to display the status on a community website. Or perhaps you have something [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-4732 imgborder" title="Minecraft Icon" src="//www.webmaster-source.com/wp-content/uploads/2012/06/minecrafticon.jpg" alt="" width="128" height="128" />Have you ever needed to have a script check whether a <a href="http://www.minecraft.net/">Minecraft</a> server was online, or retrieve its listing information, like the &#8220;Message of the Day&#8221; (server description) or the number of active players? Maybe you run your own server, and want to display the status on a community website. Or perhaps you have something more ambitious in mind.</p>
<p>After reading up on the protocol Minecraft uses for the in-game listing of your favorite servers, I put together a simple PHP class that makes it easy. Here&#8217;s <a href="http://www.webmaster-source.com/static/demos/mcserverstatus/">a fancy demo</a> that makes use of it.</p>
<p style="text-align: center;"><a href="http://www.webmaster-source.com/static/demos/mcserverstatus/"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-4731" title="Minecraft server status" src="//www.webmaster-source.com/wp-content/uploads/2012/06/mcserverstatus.png" alt="" width="600" height="172" /></a></p>
<p>The library, which you can <a href="https://github.com/mattvh/MCServerStatus">download on GitHub</a>, along with the aforementioned demo page, looks like this:<span id="more-4730"></span></p>
<pre class="brush: php; title: ; notranslate">
&lt; ?php

class MCServerStatus {

	public $server;
	public $online, $motd, $online_players, $max_players;
	public $error = &quot;OK&quot;;

	function __construct($url, $port = '25565') {

		$this-&gt;server = array(
			&quot;url&quot; =&gt; $url,
			&quot;port&quot; =&gt; $port
		);

		if ( $sock = @stream_socket_client('tcp://'.$url.':'.$port, $errno, $errstr, 1) ) {

			$this-&gt;online = true;

			fwrite($sock, &quot;\xfe&quot;);
			$h = fread($sock, 2048);
			$h = str_replace(&quot;\x00&quot;, '', $h);
			$h = substr($h, 2);
			$data = explode(&quot;\xa7&quot;, $h);
			unset($h);
			fclose($sock);

			if (sizeof($data) == 3) {
				$this-&gt;motd = $data[0];
				$this-&gt;online_players = (int) $data[1];
				$this-&gt;max_players = (int) $data[2];
			}
			else {
				$this-&gt;error = &quot;Cannot retrieve server info.&quot;;
			}

		}
		else {
			$this-&gt;online = false;
			$this-&gt;error = &quot;Cannot connect to server.&quot;;
		}

	}

}
</pre>
<p>There are some code snippets strewn around the internet that do essentially the same thing, but without the handy wrapper class.</p>
<p>To query a server, you instantiate the class and pass it the IP or domain name of the server, as well as the port if it is not the default Minecraft port of 25565. (Do not include &#8220;http://&#8221; or any slashes. Just the hostname or IP.)</p>
<pre class="brush: php; title: ; notranslate">
include "MCServerStatus.php";
$server = new MCServerStatus("s.nerd.nu", 25565); //The second argument is optional in this case
</pre>
<p>Once you have created a new instance of the object, you can use the information that it gathered.</p>
<pre class="brush: php; title: ; notranslate">
$var = $server-&gt;online; //$server-&gt;online returns true if the server is online, and false otherwise
echo $server-&gt;motd; //Outputs the Message of the Day
echo $server-&gt;online_players; //Outputs the number of players online
echo $server-&gt;max_players; //Outputs the maximum number of players the server allows
print_r($server); //Shows an overview of the object and its contents. (For debugging.)
</pre>
<p>Now go and play some Minecraft!</p>
<p><strong>Update:</strong> <a href="https://github.com/mattvh/MCServerStatus">MCServerStatus</a> is now on Github. Fork away!</p>
<p><strong>Update 2012/11/12:</strong> The version of the library available <a href="https://github.com/mattvh/MCServerStatus">on GitHub</a> has been updated to work with the new protocol in Minecraft 1.4.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.webmaster-source.com/2012/07/05/checking-the-status-of-a-minecraft-server-with-php/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
		</item>
		<item>
		<title>Proxying Web APIs with NGINX</title>
		<link>https://www.webmaster-source.com/2012/06/18/proxying-web-apis-with-nginx/</link>
		<comments>https://www.webmaster-source.com/2012/06/18/proxying-web-apis-with-nginx/#comments</comments>
		<pubDate>Mon, 18 Jun 2012 11:15:51 +0000</pubDate>
		<dc:creator><![CDATA[Matt]]></dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[NGINX]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[servers]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=4688</guid>
		<description><![CDATA[Here&#8217;s a cool thing I bet you didn&#8217;t know could be done with the NGINX server: proxying APIs from web services. Why would you want to do that? Well, for starters, you can avoid running into cross-domain scripting issues. Your client-side JavaScript can query an API that doesn&#8217;t offer JSON-P support, by having it pass [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-4689" title="NGINX" src="//www.webmaster-source.com/wp-content/uploads/2012/05/nginx.gif" alt="" width="150" height="50" />Here&#8217;s a cool thing I bet you didn&#8217;t know could be done with the <a href="http://nginx.org/">NGINX</a> server: proxying APIs from web services. Why would you want to do that? Well, for starters, you can avoid running into cross-domain scripting issues.</p>
<p>Your client-side JavaScript can query an API that doesn&#8217;t offer JSON-P support, by having it pass through your server first. You can even cache the results for awhile, so you don&#8217;t run into rate limit issues. And if JSON-P is a necessity, you can transform the API response from vanilla JSON to JSON-P by echoing some additional content into the request.</p>
<p>You can read how to do all this in <a href="http://www.gabrielweinberg.com/blog/2011/07/nginx-json-hacks.html">an informative blog post</a> by the founder of <a href="http://duckduckgo.com/">DuckDuckGo</a>. It&#8217;s pretty much a matter of adding a location block that uses the <code>proxy_pass</code> function to pass the request along.</p>
<p><a href="http://www.gabrielweinberg.com/blog/2011/07/nginx-json-hacks.html">nginx JSON hacks</a> [Gabriel Weinberg]</p>
]]></content:encoded>
			<wfw:commentRss>https://www.webmaster-source.com/2012/06/18/proxying-web-apis-with-nginx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What to Do After You Install Ubuntu Server in VMwware Fusion</title>
		<link>https://www.webmaster-source.com/2012/03/13/what-to-do-after-you-install-ubuntu-server-in-vmwware-fusion/</link>
		<comments>https://www.webmaster-source.com/2012/03/13/what-to-do-after-you-install-ubuntu-server-in-vmwware-fusion/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 11:04:01 +0000</pubDate>
		<dc:creator><![CDATA[Matt]]></dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[servers]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=4543</guid>
		<description><![CDATA[I recently installed a fresh copy of Ubuntu Server in a VMware Fusion virtual machine, so I could test some things out locally. (It&#8217;s a great way to set up a local development server with a similar configuration to your production server.) The initial setup was painless, but I had an amusing problem after. The [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I recently installed a fresh copy of Ubuntu Server in a VMware Fusion virtual machine, so I could test some things out locally. (It&#8217;s a great way to set up a local development server with a similar configuration to your production server.) The initial setup was painless, but I had an amusing problem after. The default keyboard mapping didn&#8217;t match up with my MacBook&#8217;s keyboard, so pressing the arrow keys would lead to unexpected behavior. Obviously this is problematic behavior when the only way you have to interact with the OS is text-based&#8230;</p>
<p>Fortunately, <a href="http://blog.thefrontiergroup.com.au/2011/03/broken-arrow-keys-ubuntu-10-10-vmware-fusion-mabook-pro/">the solution is simple</a>.</p>
<p>You just need to run s<code>udo dpkg-reconfigure console-setup</code> and follow the on-screen prompts. You would usually use the arrow keys to traverse the menus, but that isn&#8217;t exactly possible, is it? Pressing the first letter of the option you&#8217;re looking for until it cycles up and is selected works fine, though. (<em>A</em>pple Laptop, <em>U</em>SA-style layout, etc.) The full instructions on what you should pick for MacBooks are available <a href="http://blog.thefrontiergroup.com.au/2011/03/broken-arrow-keys-ubuntu-10-10-vmware-fusion-mabook-pro/">here</a>.</p>
<p>Now, moving in and out of the VM window is a little bit annoying, so I installed an SSH server.<span id="more-4543"></span></p>
<p><code>sudo apt-get install openssh-server</code></p>
<p>Easy enough. Now you can SSH into the server from a native Terminal session, which is easier to Command+Tab in and out of, and you can make use of the clipboard. Not being able to copy and paste sure is limiting.</p>
<p>Now you only have one final obstacle standing between you and easily connecting to the server. Whether you&#8217;re using SSH or accessing a web page being served by the VM, you need to figure out the local IP address of the VM on the network and input that. Or you can set up <a href="http://www.zeroconf.org/">ZeroConf</a>, which lets other machines on the network automagically find the VM when you call it by name. Instead of addressing it as <code>192.168.0.255</code>, you could use <code>Ubuntu.local</code>. (Very handy when you&#8217;re running game servers on your LAN.)</p>
<p>The following command will install the required packages to enable ZeroConf on the VM.</p>
<p><code>sudo apt-get install avahi-daemon avahi-discover avahi-utils libnss-mdns service-discovery-applet mdns-scan</code></p>
<p>Now you can reach the VM at thehostname.local, which is considerably easier than figuring out what IP your router has assigned it and pasting it in whenever you need it.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.webmaster-source.com/2012/03/13/what-to-do-after-you-install-ubuntu-server-in-vmwware-fusion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What are Some Good Places to Find Linux Server Tutorials?</title>
		<link>https://www.webmaster-source.com/2010/10/01/what-are-some-good-places-to-find-linux-server-tutorials/</link>
		<comments>https://www.webmaster-source.com/2010/10/01/what-are-some-good-places-to-find-linux-server-tutorials/#comments</comments>
		<pubDate>Fri, 01 Oct 2010 11:20:46 +0000</pubDate>
		<dc:creator><![CDATA[Matt]]></dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[servers]]></category>
		<category><![CDATA[VPS]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=3600</guid>
		<description><![CDATA[Are you planning on moving from shared hosting to a more robust hosting platform, such as a VPS? It&#8217;s easy enough to find a provider, such as VPS.net, Linode or Slicehost. But that&#8217;s just the beginning. You have to learn how to set up and maintain your new server. Here are a few resources to [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Are you planning on moving from shared hosting to a more robust hosting platform, such as a VPS? It&#8217;s easy enough to find a provider, such as <a href="http://manage.aff.biz/z/158/CD2985/">VPS.net</a>, <a href="http://www.linode.com/">Linode</a> or <a href="http://www.slicehost.com/">Slicehost</a>. But that&#8217;s just the beginning. You have to learn how to set up and maintain your new server.</p>
<p>Here are a few resources to help you figure things out:</p>
<ul>
<li><a href="http://www.howtoforge.com/">HowtoForge</a> — All sorts of Linux tutorials. They have guides to setting up server configurations on the various Linux flavors, as well as basic  introductions to Linux.</li>
<li><a href="http://articles.slicehost.com/sitemap">Slicehost Article Repository</a> — Even if you aren&#8217;t a Slicehost customer, you will find some invaluable guides and tutorials here.</li>
<li><a href="http://library.linode.com/">Linode Library</a> — Much like Slicehost, Linode maintains a collection of useful tutorials.</li>
<li><a href="https://help.ubuntu.com/">Official Ubuntu Documentation</a> — Select your version of Ubuntu and look for the &#8220;Server Guide&#8221; link.</li>
<li>Google! — Search engines are your friend. If you don&#8217;t know what something means or you want to learn how to do something, search for a tutorial. The chances are good that someone else has already written something on the subject.</li>
</ul>
<p>If you really get stuck, try leaving your question on your host&#8217;s forum or on <a href="http://serverfault.com/">Server Fault</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.webmaster-source.com/2010/10/01/what-are-some-good-places-to-find-linux-server-tutorials/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP 5.3.3 Adds PHP-FPM</title>
		<link>https://www.webmaster-source.com/2010/08/18/php-5-3-3-adds-php-fpm/</link>
		<comments>https://www.webmaster-source.com/2010/08/18/php-5-3-3-adds-php-fpm/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 11:15:32 +0000</pubDate>
		<dc:creator><![CDATA[Matt]]></dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[servers]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=3509</guid>
		<description><![CDATA[If you run alternative server software like NGINX or Lighttpd instead of Apache, you know very well about how you need to run PHP as a standalone FastCGI daemon. (This is because there is no equivalent to Apache&#8217;s mod_php.) If you have the faintest idea what I&#8217;m talking about, you may be interested in something [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>If you run alternative server software like NGINX or Lighttpd instead of Apache, you know very well about how you need to run PHP as a standalone FastCGI daemon. (This is because there is no equivalent to Apache&#8217;s mod_php.) If you have the faintest idea what I&#8217;m talking about, you may be interested in <a href="http://www.php.net/archive/2010.php#id2010-07-22-2">something new in PHP 5.3.3</a>.</p>
<p>The latest PHP release includes <a href="http://php-fpm.org/">PHP-FPM</a>, the PHP process manager.</p>
<p>I&#8217;ve managed to find one decent <a href="http://renebakx.nl/22/compiling-php-5-3-3-with-nginx-on-ubuntu-10-4-for-drupal-7/">guide to compiling and setting it up</a> so far. It looks fairly simple. I might have to give it a try sometime, as my current setup (which doesn&#8217;t use PHP-FPM) tends to hang occasionally.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.webmaster-source.com/2010/08/18/php-5-3-3-adds-php-fpm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/


Served from: www.webmaster-source.com @ 2026-05-01 07:48:42 by W3 Total Cache
-->