<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Thu, 23 May 2013 05:00:35 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[NetTuts.com: Setting Up A Staging Environment]]></title>
      <guid>http://www.phpdeveloper.org/news/19187</guid>
      <link>http://www.phpdeveloper.org/news/19187</link>
      <description><![CDATA[<p>
On NetTuts.com today <i>Gabriel Manricks</i> walks you through <a href="http://net.tutsplus.com/tutorials/setting-up-a-staging-environment/">setting up a staging environment</a> using Vagrant to install and setup a virtual machine running Apache 2 and PHP 5.4.
</p>
<blockquote>
Creating a staging environment is specific to your production environment. There is no magic solution that works in every situation. But most cases follow a similar pattern, and I'll cover all the key points as we go along. It's fair to assume that most people deploy their apps with some kind of versioning tool (like GIT). [...] Besides GIT, you have to think about the languages, software, and "special" features your production servers offer. 
</blockquote>
<p>
All of the commands and configuration files you'll need to make the automatic setup work are included in the article. It's based on a Debian (Squeeze) base image and uses packages to install the needed software. They also install other PHP extensions like mycrypt, GD, curl, APC and database support (MySQL, SQLite and Postgres). They help you get Apache set up to serve the application and work with git and its hooks to push the code and run Composer.
</p>]]></description>
      <pubDate>Fri, 15 Feb 2013 10:49:39 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Aaron Pollock: Setting up a PHP development environment on a VPS]]></title>
      <guid>http://www.phpdeveloper.org/news/19106</guid>
      <link>http://www.phpdeveloper.org/news/19106</link>
      <description><![CDATA[<p>
<i>Aaron Pollock</i> has posted <a href="http://aaronpollock.co.uk/setting-up-a-php-development-environment-on-a-vps/">a detailed guide</a> that will help you get a full PHP development environment set up on a VPS, complete with a domain name and self-signed certificate.
</p>
<blockquote>
I've been developing PHP apps for over eleven years. PHP remains 85% of what I do on a daily basis. Over that time, I've tried lots of WAMP packages to run sites on my Windows computers and, since going Mac, I've used the native Apache install that comes with Mac OS X. Six months ago, I decided to try out a remote VPS for my development. The results have been so good that I forget the pain I used to experience on a daily basis doing it any other way.
</blockquote>
<p>
He walks you through the entire process (you'll need a VPS first) - it uses an Ubuntu-based setup, but the instructions are relatively easy to port over to other distributions. He helps you set up the system's hostname, install all needed packages/tools and generate the wildcard self-signed SSL certificate. Finally, he shows how to configure Apache's virtual hosts and set up a basic site.
</p>]]></description>
      <pubDate>Tue, 29 Jan 2013 12:57:50 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Justin Carmony:  Vagrant & PHP: Our Success Story at the Deseret News]]></title>
      <guid>http://www.phpdeveloper.org/news/18481</guid>
      <link>http://www.phpdeveloper.org/news/18481</link>
      <description><![CDATA[<p>
<i>Justin Carmony</i> has <a href="http://www.justincarmony.com/blog/2012/09/15/vagrant-php-our-success-story-at-the-deseret-news/">shared his success story</a> about the use of Vagarant and PHP as a platform to make setting up and configuring developers' environments simple.
</p>
<blockquote>
Now-a-days, you have frameworks that need to be setup [as a part of your environment], include paths that need to be changed, modules that need to be installed, web servers that need to be configured for your routing, etc. Then you might not just have MySQL, but Redis, Mongo, Couch, Memcached, Postgres, or any other dozen other servers. Then in Production you might have load balancers, multiple web servers, clusters of databases, and the list goes on. Simply put: web development environments are complex.
</blockquote>
<p>
He introduces <a href="http://vagrantup.com/">Vagrant</a> and talks a bit about how it helped them with the setup and configuration of two new remote developers they had limited contact with. After some initial quirks, Vagrant made it simple for them to get up and running with new environments in a day.
</p>]]></description>
      <pubDate>Mon, 17 Sep 2012 09:51:26 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Gonzalo Ayuso: How to use environ variables to create different environments with PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/18403</guid>
      <link>http://www.phpdeveloper.org/news/18403</link>
      <description><![CDATA[<p>
<i>Gonzalo Ayuso</i> has a new post to his site showing how you can <a href="http://gonzalo123.wordpress.com/2012/08/27/deployment-tip-how-to-use-environ-variables-to-create-different-environments-with-php/">set up and use environment variables</a> to make different environments for your applications.
</p>
<blockquote>
If you use a framework such as Symfony2 this problem is solved for you, but if you aren't using any framework you probably need to solve it in one way or another. [...] The solution that I like for this kind of problem [with having different environments] is to use apache's environ variables. We inject the environ variables in the virtual host configuration.
</blockquote>
<p>
He shows how to add a variable to the VirtualHost section of your Apache config, how to use the <a href="http://php.net/getenv">getenv</a> function to retrieve its value and how to use it to select a configuration set. This method can also be applied to other kinds of information including settings you may not want to hard-code directly in you app (like possible database credentials).
</p>]]></description>
      <pubDate>Mon, 27 Aug 2012 07:49:29 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Evan Coury: Environment-specific configuration in Zend Framework 2]]></title>
      <guid>http://www.phpdeveloper.org/news/18249</guid>
      <link>http://www.phpdeveloper.org/news/18249</link>
      <description><![CDATA[<p>
<i>Evan Coury</i> has a new post looking at setting up <a href="http://blog.evan.pro/environment-specific-configuration-in-zend-framework-2">environment specific configurations</a> in a Zend Framework 2 application letting you switch between configs based on an environment variable.
</p>
<blockquote>
So you're all excited to try out ZF2. You <a href="http://blog.evan.pro/getting-started-with-the-zf2-skeleton-and-zfcuser">clone the skeleton, install some modules</a>, maybe even follow <a href="http://akrabat.com/zend-framework-2-tutorial/">Rob Allen's excellent ZF2 tutorial</a>, and finally, start building your application. Now, if you're a former ZF1 user or refugee from another framework, you might be troubled at this point by the fact that, at first glance, ZF2 doesn't appear to take into consideration environment-specific configuration values (e.g., development, testing, staging, production). Luckily, this is not the case!
</blockquote>
<p>
He includes a bit of sample code showing how you can use a simple <a href="http://php.net/getenv">getenv</a> call to pull in the value from an "APPLICATION_ENV" environment variable and put it into an autoload path.
</p>]]></description>
      <pubDate>Thu, 19 Jul 2012 11:36:06 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[MaltBlue.com: 4 Keys to a Great Software Development Methodology]]></title>
      <guid>http://www.phpdeveloper.org/news/18150</guid>
      <link>http://www.phpdeveloper.org/news/18150</link>
      <description><![CDATA[<p>
On the MaltBlue.com blog <i>Matt</i> has posted <a href="http://www.maltblue.com/design/4-keys-to-a-great-software-development-methodology">four different keys</a> he sees to making a good software development environment and make for happier developers (and managers).
</p>
<blockquote>
A lot of the time when we're developing applications they're likely to be based around customizing or extending an existing application, such as WordPress, Joomla, Oxid eSales et al. In these cases, there's a clear set of rules and guidelines to work with. [...] But what about when we're building our own applications, bespoke ones, from scratch. [...] What do we do then? How do we set up a great software development methodology or set of processes to ensure that we develop cleanly, clearly and efficiently? In today's post, I'm going to go through 4 areas which can serve as a solid and reliable basis for us to do just this.
</blockquote>
<p>The four key elements he sees are:</p>
<ul>
<li>Organized Development Environment
<li>Organized Deployment Approach
<li>Organized Testing Approach
<li>Have a Professional Bug/Issues Database
</ul>
<p>
For each of these elements, he describes some of the methods and tools that can help make them possible.
</p>]]></description>
      <pubDate>Thu, 28 Jun 2012 09:26:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Sean Coates' Blog: Use `env`]]></title>
      <guid>http://www.phpdeveloper.org/news/17984</guid>
      <link>http://www.phpdeveloper.org/news/17984</link>
      <description><![CDATA[<p>
<i>Sean Coates</i> has posted a reminder for PHP developers (and really anyone executing command-line scripts) to <a href="http://seancoates.com/blogs/use-env">use "env"</a> instead of hard-coding the path to the PHP interpreter.
</p>
<blockquote>
These [support] scripts often run PHP in Gimme Bar land, and we make extensive use of the shebang syntax that uses common Unix practice of putting #!/path/to/interpreter at the beginning of our command-line code. Clearly, this is nothing special -lots of people do exactly this same thing with PHP scripts. One thing I have noticed, though, is that many developers of PHP scripts are not aware of the common Unix(y) environment helper, env.
</blockquote>
<p>
The "env" alias makes use of your currently defined include path to track down a PHP binary to use to execute the script. Since there's only a "best practices" approach to places to put PHP on a server, the "env" usage makes your script more portable and it's one less thing to remember to change.
</p>
<blockquote>
If you distribute a PHP application that has command-line scripts and shebang lines, I encourage you to adopt the practice of making your shebang line "#!/usr/bin/env php". Note that this doesn't just apply to PHP of course, but I've seen a definite lack of env in the PHP world.
</blockquote>]]></description>
      <pubDate>Mon, 21 May 2012 11:58:34 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Nefarious Designs Blog: Vagrant Virtualised Dev Environments]]></title>
      <guid>http://www.phpdeveloper.org/news/17670</guid>
      <link>http://www.phpdeveloper.org/news/17670</link>
      <description><![CDATA[<p>
On the Nefarious Designs blog there's a <a href="http://nefariousdesigns.co.uk/vagrant-virtualised-dev-environments.html">(very complete) guide to Vagrant</a> and using it to set up easily reproducible versions of your development environment.
</p>
<blockquote>
In case you've been living under a rock for the past couple of years, Vagrant is the latest development in easily controlled virtualised environments. [...] Vagrant automates creation and provisioning of virtual machines within VirtualBox via the command line, whilst also allowing for easy distribution and reuse across multiple projects. In this article, I'm going to look at how it can make life considerably easier when dealing with development environments.
</blockquote>
<p>Included in the post is just about everything you'll need to get started using this powerful tool:</p>
<ul>
<li>A link to <a href="http://vagrantbox.es/">Vagrant images</a>
<li>A guide to the VagrantFile
<li>the Provisioning process
<li> Interacting/Controllig the Vagrant VMs
</ul>
<p>
He also includes a basic setup of an environment (with the Vagrant config to create it) and an example of using Puppet to provision the Vagrant VMs.
</p>]]></description>
      <pubDate>Wed, 14 Mar 2012 08:16:38 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Joshua Thijssen's Blog: Setting up a development environment]]></title>
      <guid>http://www.phpdeveloper.org/news/17499</guid>
      <link>http://www.phpdeveloper.org/news/17499</link>
      <description><![CDATA[<p>
In a new post to his blog <i>Joshua Thijssen</i> <a href="http://www.adayinthelifeof.nl/2012/02/04/setting-up-a-development-environment/">gives a guide</a> to how he usually sets up his development environments when working in PHP. It includes working with virtual machines, configuring DNS and setting up his tools to work with it all.
</p>
<blockquote>
Doing development on multiple projects can be a burden from time to time. One project would be running on PHP 5.3, while another still needs 5.1. Sometimes you need a MySQL server, while on other occasions, you need a NoSQL solution like couchDB or MongoDB together with all kind of gearman functionality. This article shows you how I've setup such a development platform that allows you to quickly create new projects, and still maintain flexibility when you need it.
</blockquote>
<p>
He uses <a href="https://www.virtualbox.org/">VirtualBox</a> with either a Debian or CentOS installation as a base platform. He uses Vagrant to set up and configure the machines to make setup almost automatic. He still has to go in and configure a few things like the VirtualHost and DNS settings for the site/application he's working on. 
 Next up is setting up the tools he uses, specifically <a href="http://xdebug.org">XDebug</a> and setting up his editor of choice (PHPStorm) for remote debugging.
</p>]]></description>
      <pubDate>Mon, 06 Feb 2012 09:27:41 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Chris Hartjes' Blog: Better Remote Code Development]]></title>
      <guid>http://www.phpdeveloper.org/news/17359</guid>
      <link>http://www.phpdeveloper.org/news/17359</link>
      <description><![CDATA[<p>
<i>Chris Hartjes</i> is <a href="http://www.littlehart.net/atthekeyboard/2012/01/05/better-remote-code-development/">asking for suggestions</a> to help solve a common problem for developers (remote or otherwise) that have to develop in a non-local setup: a better method for remote code development.
</p>
<blockquote>
I've been playing around with <a href="http://www.sublimetext.com/">Sublime Text</a> (because of the awesome vim bindings) and was thinking about why do I always have to be logged into the remote server to do my work. Normally I connect using SSH, then attach to my <a href="http://tmux.sourceforge.net/">tmux</a> session and then fire up vim. This is okay but it lacks a certain elegance in it's approach. [...] What I'm chafing against is having to deal with multiple environments all the time to get my work done.
</blockquote>
<p>
His ultimate goal is to be able to update and commit code without having to be logged into the remote server - essentially to replicate the local development experience regardless of the underlying technology. Have a suggestion or a method that's currently working for you? <a href="http://www.littlehart.net/atthekeyboard/2012/01/05/better-remote-code-development/#comments">Leave him a comment</a>!
</p>]]></description>
      <pubDate>Fri, 06 Jan 2012 11:02:55 -0600</pubDate>
    </item>
  </channel>
</rss>
