Web Developing in Linux

Linux is an excellent platform for web development since most web development tools such as, Apache, MySQL, PHP, SVN, and SSH were created for Linux. This advantage gives us an edge over developing in other operating systems; however, many people make the switch to Linux not knowing which apps to use. In this post we will try to remedy this.

Text editor

Vim Vim/emacs

I recommend Vim/Emacs because they are a console based text editor. This means you can connect to a remote machine and use it to edit files. Your configuration never changes and almost every distribution includes Vi/Vim by default including popular web hosts like Dreamhost. This allows you to hop on a friends Windows/Mac computer and be up and running in your same exact development environment that you normally use.

In addition, once learned, vim/emacs has the potential to increase your productivity over even the best text editors and IDEs.

Ubuntu systems come with a limited version of Vim to get the complete version click here.

or use this command:

sudo apt-get install vim-full

Aptana Studio

Aptana Studio is another option for those of you that just can’t get away from an IDE style editor. You can download Aptana from their website. The standalone package is about 110mb, which is quite large to just do some simple web editing but I am a bit biased on editor size as Vim including the source code is less than 7mb.

If you do decide to go with Aptana you will need to follow these instructions.

Other Options

So, you don’t have the time to learn Vim or already used to a specific editor and looking for something else? No problem, Linux comes with tons of different options for editors from the Windows WYSIWYG clones, simple text editors, to even familiar editors like jEdit.

Web Server: Apache, MySQL, PHP

Apache MySQL, PHP combination web servers are by far the most prevalent and it is always better to develop in an environment that is as close to the production as possible. This makes Linux a particularly good OS choice for web development as it doesn’t get any closer. Developing on a Linux system makes utilizing these applications easier as they were originally designed for this operating system.

This will get you up and running fast: Installing Apache Mysql and PHP on Ubuntu 8.10

FTP

Lets face it you need an FTP client if you are doing web development. You will find yourself needing to upload an image or upload that fresh copy of Wordpress; although, lately I have been using SVN to transfer development files to production and FTP is cut out of the loop entirely.

gFTP

gftp

FileZilla

Another option is FileZilla. I use this FTP in Windows and you might not want to migrate to gFTP if you are already used to FileZilla.

Version Control

When I was talking about using SVN above this is what I was talking about, version control. Version control is an awesome way for developers to collaborate on projects while limiting the risk of work being written over. It also stores past versions (hence version control) in case you decide to switch back to a previous version or abandon terribly written code that just broke your website.

Image Manipulation

Well, websites just aren’t the same without images. Fortunately there are quite a few apps at our disposal. Because Adobe Photoshop’s save for web feature doesn’t cut it.

But I HAVE to have Photoshop what can I do?

Photoshop isn’t the most simplistic program around and I understand you have put a lot of working learning its features and getting used to the way it works. For this reason we can run Photoshop under Linux using either Virtualization or Wine.

Since Adobe hasn’t released a Linux version of Photoshop we can’t run it natively but we get close using a program called Wine. Google has recently helped out and made Adobe Photoshop CS2 work reasonably well under Wine.

If Adobe CS2 isn’t good enough and you want to run bleeding edge Adobe products unfortunately you are going to have to take a performance hit and install VirtualBox or another virtualization application. The good news however, is that you can run any “Windows only” app you want along side your Adobe Photoshop. Using this to our advantage we might as well have IE7 or IE6 installed on the virtual machine for testing.

Firefox Extensions

Compression

Speaking of making your site load fast, Linux has some great compression tools available.

Miscellaneous

Even those these are filled under Miscellaneous doesn’t mean they aren’t entirely awesome!

If you really want to gain an edge you can always learn how to use sed and awk.