I recently started running Microsoft’s latest operating system Windows 10. As a developer, I have preferred developing on OSX or a Linux VM – it’s just easier unless you’re developing for a Windows platform. But for web development, Windows has never been an option for me. I’ve tried in the past but I always hated the experience. Lately, I have found resources and articles on how I can use a Windows OS for web development. I’d like to share how I have my environment set up.
Laravel / PHP
Laravel is a PHP framework that I have been using for a couple of years now. In order for you to get this to work, you will need to install PHP. The version of Laravel I currently use is 5.1 and it requires PHP5.5.9 or higher. That version of PHP has a built-in web server which eliminates having to run IIS, Apache, Nginx, or any other web server. To install it, I use Microsoft Web Platform Installer. Just search for PHP. It will install not only PHP but the PHP IIS Manager and PHP MSSQL driver – for those that want to connect to SQL Server. I will be using this with IIS so I also installed URL Rewrite 2.0. Also, note that even though you are installing PHP5.5 or higher, it will also install PHP5.3x.
If you are running Windows 10 like I am, you may encounter an error when trying to install PHP IIS Manager. You don’t have to install it but if you’re using IIS with PHP, it does allow you to use a GUI for the settings. Until Microsoft fixes the issue, you will need to edit your registry. Make sure you do the necessary precautions to cover yourself if something goes wrong. You can find some information about it athttps://phpmanager.codeplex.com/workitem/2653. Here is a screenshot I took when I ran into the error.
Once PHP is installed, you should be able to run the PHP command and use the web server. If it doesn’t work, you may need to adjust your environment variables. Of course, you don’t have to use Web Platform Installer, you can just use the files from the PHP website.
Composer isn’t necessary for Laravel to work but it makes things easier. It is a dependency manager. It’s easy to install in Windows. You just download the Windows installer and make sure it’s part of your environment variables – this usually is automatic. To create a new Laravel project, just type the following.
composer create-project laravel/laravel [project_name]
If you are running IIS, the next step is to add IUSR IIS_IUSRS to the project directory and add the write permission. That should eliminate any permission related issues.
node.js / npm
I use node.js and npm so I can use grunt.js compile CSS with LESS along with other things. It’s easy to install in Windows as well. Just download the installer from http://nodejs.org/download/. Again, make sure your environment variables are set, usually it’s done automatically.
Ruby / Jekyll
I use a static site generator called Jekyll. You will need to install Ruby and the devkit. You can download both from http://rubyinstaller.org/downloads/. The Ruby installer is simple but the devkit is not as self-explanitory but not too difficult either. I unzipped the devkit into my C:ruby_devkit directory. Within this directory, run the following command.
ruby dk.rb init ruby dk.rb install
This will install the devkit. Once you do this, do not move or rename the devkit folder. Otherwise, you’ll have to do the process again. You can find out more from https://github.com/oneclick/rubyinstaller/wiki/Development-Kit
Once Ruby is install, you can install Jekyll with the following command.
gem install jekyll
The default syntax highlighter for Jekyll 2.5.3 is Pygments. This requires Python. Python is not installed by default on Windows so if you won’t be using Python or don’t want to install Python, then you can use Ruby’s syntax highlighter called Rogue. You can install it through gem.
gem install rogue
In a Jekyll project, you will need to edit the _config.yaml file with the following.
You must explicitly have this. Otherwise, it will use the default pygments highlighter even though you don’t have it in your config file. If you don’t have Python installed, you will get an error. Maybe in a future version of Jekyll, they will drop the pygments dependency and switch to rogue.
git / Sourcetree
So that’s a brief summary of how I have my development environment configured on Windows 10. It has been working well, a lot better than how I remembered it before switching to OSX and Linux. The reason why I needed this set up is my main desktop at home is running Windows. I still run Windows for gaming. It’s not always work, got to have time for play as well. And my Windows machines are both running Hexacore processors, so it would be a waste if I didn’t develop off it. I could run Linux in a VM but I don’t like the multi-monitor support or lack there of. Hope you find it useful. If you have any questions or run into an issue, let me know and I’ll try and help.