<?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>The Code Dojo &#187; PHP</title>
	<atom:link href="http://dojo.codegreene.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://dojo.codegreene.com</link>
	<description>The Code Dojo is the veritable repository of random musings from the development team at Code Greene.</description>
	<lastBuildDate>Fri, 20 Jan 2012 18:09:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Securing WordPress with Plugins</title>
		<link>http://dojo.codegreene.com/2011/12/securing-wordpress-with-plugins/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=securing-wordpress-with-plugins</link>
		<comments>http://dojo.codegreene.com/2011/12/securing-wordpress-with-plugins/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 18:49:01 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://dojo.codegreene.com/?p=883</guid>
		<description><![CDATA[The purpose of this post is to help you secure your WordPress self-hosted site by installing and setting up plugins. As of the time of writing this post these plugins have been used with WordPress 3.2.1. Keeping your site secure or safe from hackers is not always easy but is something you need to be [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-885" title="Picture 5" src="http://dojo.codegreene.com/wp-content/uploads/2011/12/Picture-5-300x84.png" alt="" width="300" height="84" />The purpose of this post is to help you secure your WordPress self-hosted site by installing and setting up plugins. As of the time of writing this post these plugins have been used with WordPress 3.2.1.</p>
<p>Keeping your site secure or safe from hackers is not always easy but is something you need to be aware of. One thing I encourage you to do just in case your site is compromised is to always have a back up of your files and database. As a start, one plugin that can help with this is named BackWPup ( <a title="BackWPup" href="http://backwpup.com" target="_blank">www.backwpup.com</a> ). You can set this plugin to backup your files and database daily, weekly, monthly, or if you feel even hourly. But you can have it email it to you, save it to another server via FTP, or even save it to your DropBox account.</p>
<p>There are a few steps that you can take from the beginning when you first setup your WordPress site. The first thing to do is do not use the default table alias. WordPress by default will suggest that it use &#8220;wp_&#8221;. If you are only going to use the database for your site and not add any other tables I would suggest you take it off all together, but to make it even more secure use a different alias.<span id="more-883"></span></p>
<p>If you already have a site up and running and just want to take what you have now and make it secure here are the list of plugins and what they do:</p>
<ul>
<li><strong>Change the login URL</strong><br />
By default WordPress uses your URL / wp-login. To make it more secure  you can change the URL to be used to login. Sometimes people want /manger, /login, or /admin. Whatever it is that you choose you can use one of these plugins to change it from the default<br />
- <strong>Ozh&#8217; Simpler Login URL</strong> &#8211; <a href="http://wordpress.org/extend/plugins/ozh-simpler-login-url" target="_blank">Link</a><strong><br />
</strong>- <strong>Peter&#8217;s Login Redirect</strong> &#8211; <a href="http://wordpress.org/extend/plugins/peters-login-redirect" target="_blank">Link</a><br />
- <strong>Custom Login and Admin URL&#8217;s</strong> &#8211; <a href="http://wordpress.org/extend/plugins/custom-login-and-admin-urls" target="_blank">Link</a></li>
<li><strong>Limit Login Attempts</strong><br />
By default WordPress does not limit that amount of tries to log into the Admin. It will instead inform the user instantly that it is not correct and allow them to try again. So using one or even both of these plugins will help you limit this and track what is going on<br />
- <strong>Limit Login Attempts</strong> &#8211; <a href="http://wordpress.org/extend/plugins/limit-login-attempts" target="_blank">Link</a><br />
- <strong>Login LockDown</strong> &#8211; <a href="http://wordpress.org/extend/plugins/login-lockdown" target="_blank">Link</a></li>
<li><strong><strong>Find Out What Security Holes Your Site Is Susceptible To</strong></strong><br />
Run tests on your site to see what security holes may appear in your site. It is a full time job to stay on top of what the latest security risks are out there. So to help know what your problems are run one, or both plugins to evaluate your sites holes and close them up as you can<br />
- <strong>Ultimate Security Checker</strong> &#8211; <a href="http://wordpress.org/extend/plugins/ultimate-security-checker" target="_blank">Link</a><br />
- <strong>Secure WordPress</strong> &#8211; <a href="http://wordpress.org/extend/plugins/secure-wordpress" target="_blank">Link</a></li>
</ul>
<p>These are just a few ways you can secure your WordPress site just using plugins. There are other ways that I may expound on at a later time but it requires editing code, editing configuration settings on the server, and even updating the .htaccess on the server.</p>
<p><strong>Bonus Thought:</strong><br />
Another thing that I would encourage all to do that does not make your site a little more secure is in your robots.txt file that you have available to the search engines is to have them ignore your wp-content directory. There is no reason they need to go through these files. To do that you can add the following to your robots.txt file:<br />
Disallow: /wp-admin<br />
Disallow: /wp-includes<br />
Disallow: /wp-content/plugins<br />
Disallow: /wp-content/cache<br />
Disallow: /wp-content/themes<br />
Disallow: /wp-login.php<br />
Disallow: /*wp-login.php*<br />
Allow: /wp-content/uploads</p>
<p>What plugins are you using to secure your WordPress site?</p>
]]></content:encoded>
			<wfw:commentRss>http://dojo.codegreene.com/2011/12/securing-wordpress-with-plugins/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Sharpening the Blades: Future of Web Typography, Helpful jQuery Methods, April Fools &#8211; PHP Style</title>
		<link>http://dojo.codegreene.com/2010/04/sharpening-the-blades-future-of-web-typography-helpful-jquery-methods-april-fools-php-style/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sharpening-the-blades-future-of-web-typography-helpful-jquery-methods-april-fools-php-style</link>
		<comments>http://dojo.codegreene.com/2010/04/sharpening-the-blades-future-of-web-typography-helpful-jquery-methods-april-fools-php-style/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 21:11:11 +0000</pubDate>
		<dc:creator>Master Sensei</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[April Fools]]></category>
		<category><![CDATA[Typography]]></category>

		<guid isPermaLink="false">http://dojo.codegreene.com/?p=576</guid>
		<description><![CDATA[This April Fools edition of Sharpening the Blades only has two serious articles and we&#8217;ll let you decide on the last one. Luke talks about the Future of Web Typography, Benjam talks about jQuery Methods and Mac, well, Mac is the playful one at the office so he chimes in with his April Fools joke [...]]]></description>
			<content:encoded><![CDATA[<p>This April Fools edition of Sharpening the Blades only has two serious articles and we&#8217;ll let you decide on the last one. Luke talks about the Future of Web Typography, Benjam talks about jQuery Methods and Mac, well, Mac is the playful one at the office so he chimes in with his April Fools joke for all you PHP gurus.</p>
<p><strong>Luke</strong>,<a href="http://www.smashingmagazine.com/2010/03/01/css-and-the-future-of-text/" target="_blank"> Future of Web Typography</a><img class="alignright size-full wp-image-581" style="border: 1px solid #444444; margin: 8px 0pt 0pt 20px; padding: 2px;" title="web-typography" src="http://dojo.codegreene.com/wp-content/uploads/2010/04/web-typography.jpg" alt="" width="100" height="100" /><br />
For years typography on the web has been very limited when compared to what can be in the print world. Over the last few years though we have been given more and more tools to help us accomplish good typography on the web. As time goes on these tools will get better and will become more widely supported. There was an article on Smashing Magazine this week that talked about a lot of these tools that are available to web designers. I really enjoyed reading up, refreshing my memory of code I haven&#8217;t used in a while, and also learning some new ways of styling type. Read it over, the text on your website will be very happy you did.</p>
<p><strong>Benjam,</strong> <a href="http://net.tutsplus.com/tutorials/javascript-ajax/20-helpful-jquery-methods-you-should-be-using/" target="_blank">20 Helpful jQuery Methods You Should Be Using</a><img class="alignright size-full wp-image-579" style="border: 1px solid #444444; margin: 8px 0pt 0px 20px; padding: 2px;" title="nettuts" src="http://dojo.codegreene.com/wp-content/uploads/2010/04/nettuts.jpg" alt="" width="100" height="100" /><br />
While developing a website, I use a lot of tools, both in the creation of the website files (my text editor of choice, file manager, etc.), and within the website itself (CakePHP, jQuery, CSS, etc.), and I&#8217;m always interested in finding features of those tools that I might not be very familiar with.  While I have a deep familiarity with the features I use regularly, and a passing familiarity with most of the features of these tools, it&#8217;s always good to get a refresher on what I could be using more.  Here is a post highlighting 20 jQuery methods/features (actually 33 methods in 20 groups) that should be in everybody&#8217;s familiarity tool box.</p>
<p>Mac, <a href="http://phpdeveloper.org/news/14281" target="_blank">April Fools &#8211; PHP Style</a><img class="alignright size-full wp-image-580" style="border: 1px solid #444444; margin: 8px 0pt 0pt 20px; padding: 2px;" title="phpdeveloper" src="http://dojo.codegreene.com/wp-content/uploads/2010/04/phpdeveloper.jpg" alt="" width="100" height="100" /><br />
This discusses a topic that we often only think about once or twice a year, but it is still worthy of our attention and deserves some practice to improve our skills. Also, while you are there, subscribe to the <a href="http://www.phpdeveloper.org/feed" target="_blank">PHP Developers feed</a>. The main guy, Chris Cornutt, does an excellent job of filtering the best PHP articles.</p>
]]></content:encoded>
			<wfw:commentRss>http://dojo.codegreene.com/2010/04/sharpening-the-blades-future-of-web-typography-helpful-jquery-methods-april-fools-php-style/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Well-known problems with undocumented solutions</title>
		<link>http://dojo.codegreene.com/2010/03/well-known-problems-with-undocumented-solutions/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=well-known-problems-with-undocumented-solutions</link>
		<comments>http://dojo.codegreene.com/2010/03/well-known-problems-with-undocumented-solutions/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 16:23:02 +0000</pubDate>
		<dc:creator>Master Sensei</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[imap]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://dojo.codegreene.com/?p=551</guid>
		<description><![CDATA[I just spent about an hour banging my head on a brick wall with the apparently well known &#8220;Unable to create selectable TCP socket&#8221; problem, which manifests itself most notably with failing imap_open() calls from PHP. It is related to fd_setsize and a frequent limit of 1024 open files (or at least selectable open files). [...]]]></description>
			<content:encoded><![CDATA[<p>I just spent about an hour banging my head on a brick wall with the apparently well known &#8220;Unable to create selectable TCP socket&#8221; problem, which manifests itself most notably with failing imap_open() calls from PHP. It is related to fd_setsize and a frequent limit of 1024 open files (or at least selectable open files). It is quite well documented that it is some kind of bug/shortcoming in the c-client libraries that underlie a lot of email-related stuff, particularly the UW suite of tools like uw-imap, pine, alpine, etc. as well as the IMAP extension in PHP. I love being able to go Google for answers and find a ton of related content. It is really annoying though when people have been talking about this bug for years, since at least early 2007, with very very few workable solutions posted, or even workarounds.</p>
<p>So, I&#8217;m going to do my part: I found a workaround that I think might work very well for a lot of people who run into this problem. It&#8217;s biggest advantage is that it is very very easy to try, and has almost no downside, even if it doesn&#8217;t work for your particular situation. In my case, I found that Apache did indeed have a lot of files open, including log files for all my VirtualHosts, all the libraries that httpd depends on, files from sites that are hosted there (though it seems to open and close those just fine), and a large buildup of hundreds of entries for /tmp that were open and apparently never got closed properly. In my case, the server in question has an uptime of over 2 years, and while &#8220;apachectl restart&#8221; runs at least daily for log rotation, it seems that doesn&#8217;t really close unused file descriptors. The workaround I discovered was running &#8220;apachectl stop&#8221; followed by &#8220;apachectl start&#8221; which fixed the problem completely for me, at least for the next year or two I hope. From over 1600 open files, after restarting Apache fully that way, it only reopened about 325 files. And the imap_open() calls started succeeding as they should.</p>
<p>One last thought before I hop off my soapbox: when you find an answer to a problem, and that answer was hard to find or was not well documented, do your part to remedy that for the next guy or girl to hit that problem, and post your solution somewhere that Google will find it. It makes the internet a better place for all of us, and makes us all more productive. Who knows, maybe down the road you&#8217;ll run into the same problem again yourself, and not remember how to solve it until you find your own post from years before, and it will be your own time you&#8217;ll save. I fully recognize that a lot of what I accomplish each day is based on work done by others that I have found and emulated, as they say, standing on the shoulders of giants. Each contribution to the body of human knowledge lets us reach that much higher, so when you can, add your bit and as we all do that, it adds up.</p>
]]></content:encoded>
			<wfw:commentRss>http://dojo.codegreene.com/2010/03/well-known-problems-with-undocumented-solutions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

