Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Apache, mod_*, PHP, Perl, Python, Ruby; Learning backwards

I started web development some time ago, but have invested essentially all my time in learning PHP, MySQL/SQLite, (X)HTML/XML (XPath, XQuery, XSL), etc. I went with an out-of-the-box XAMPP install, everything was pretty straightforward, and I could focus my learning on languages.

Now, however, I'm looking to learn Ruby and Python (and more Perl) but to my dismay, have discovered that I know essentially nothing about Apache configuration, or any related tasks associated with setting up an environment for embedded PHP, Perl, Python and Ruby.

I posted recently a question that I thought would take me in the correct direction. Having read the mod_wsgi and mod_rails docs, I'm more confused than I was to start.

I'm running Windows 7 x64 with an existing XAMPP installation, just grabbed Ruby and Python, just installed NetBeans; and I'm wondering:

  • Should I start with a fresh Apache install, or is XAMPP fine to pile additional modules on?

  • Where can I find some information about configuring Apache to support these modules? I'm thinking step-by-step to build an environment that supports some of, all of, or more than the aforementioned languages.

I suppose my question can be summarized to; What are some suggested reading/learning resources for configuring an Apache based multi-language web application development environment?

I hope this question isn't regarded with high subjectivity or generality; I'm just lost and don't want to waste time staring blankly at configuration files or the like.

I really appreciate any insight, and forgive my noob factor. I am surprised I am as unfamiliar with this territory as I am, and quickly need to change that.

like image 978
Dan Lugg Avatar asked Mar 12 '11 23:03

Dan Lugg


2 Answers

I would recommend the following:

Make your home in the Ubuntu environment within the VM you mentioned

Essentially all of the technologies you mentioned started out in Unix-based systems, and, while the playing field is leveling, there are still significant advantages to developing with these technologies in a Unix-based OS (such as the Ubuntu install you mentioned.)

Additionally, Ubuntu is very well documented online, has active forums, and has very nice install systems (apt-get, aptitude.)

Learn Nano

You can use other IDE's or text editors, but Nano is really, really easy to use, so you can focus on learning the technologies you're interested in, not a complex text editor such as vim or emacs (which are both fantastic, but learning sessions in and of themselves.)

Get yourself a cheap cloud server to pound on

Many companies offer great cloud servers. The nice thing about this is that you can play with the every aspect of the environment, including the networking capabilities, such as getting a firewall running, etc.

For instance, Rackspace Cloud Servers work great and the Wiki pages walk you through a vast number of installs and configurations (I just pointed you to the Ubuntu docs cuz that's what you mentioned already running):

Rackspace Cloud Server Wiki

Build up your web server from scratch (and keep a log of the build steps, so if something doesn't go well, you could redo things quickly.)

Start building (and breaking) your next great app

Start making a cool app using the technology of choice. If you want to focus on Ruby next, crank out an ROR app, or even dig down and use RACK to set up you're own baby framework for handling web requests:

Rack: a Ruby Webserver Interface

Or, if python is your next learning project, try out Django, or even jump down to CherryPy for a low level web server implementation that helps you see all the moving parts:

CherryPy

Join the mailing lists of the technologies you're most interested in

Mailing lists provide great insights into the strengths and weaknesses of technologies. Just joining a list to listen to the daily banter can significantly help your understanding of the technology and the challenges that you'll likely face in the future.

These are all things I've done (different language focuses, but same techniques) and they've helped me greatly. Hopefully, they help you, too :) Happy coding!

like image 105
AdamJonR Avatar answered Oct 17 '22 17:10

AdamJonR


Just an additional info, XAMPP has mod_perl included since version 1.7.2.

To setup this quickly on Windows, already prepared stacks built by BitNami can help:

  • Ruby + Rails
  • Python + Django
like image 2
bvr Avatar answered Oct 17 '22 16:10

bvr