Tell me more ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

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.

share|improve this question
2  
To configure Apache to run python + mod_wsgi the best documentation is the one you already read: The mod_wsgi.org wiki. Just do the quick install and if you encounter problems then read more. –  Clodoaldo Neto Mar 12 '11 at 23:56
1  
I can't speak for Python, but being on Windows isn't going to help your Ruby case much; there are ways to get it to run (perhaps even well?), but mod_rails isn't one of them. From their user guide: "Phusion Passenger [mod_rails] works on any POSIX-compliant operating system. In other words: practically any operating system on earth, except Microsoft Windows." You'll find that a lot in the Ruby world; it's primarily a *nix based system (though Windows support is, slowly, growing). –  Brandon Tilley Mar 13 '11 at 0:04
 
@Clodoaldo; Installed Python to /xampp/python27 pointed httpd.conf to the obtained module, but Apache won't restart. Docs say Apache should be able to find it via Windows system, but it's not happening. I'm sure there's more configuration settings I need to change.. Still reading.. @Brandon Tilley; Yea, I've gathered that regarding mod_rails, any suggested alternatives for Windows? I've heard mod_rack thrown around, any relevance there? –  Dan Lugg Mar 13 '11 at 0:10
 
Also @Brandon Tilley; I recently got Ubuntu running on VMPlayer on my Windows 7 machine. Though I would prefer to keep working in Windows, would you suggest I move development efforts for Ruby there? –  Dan Lugg Mar 13 '11 at 0:13
1  
@TomcatExodus To be honest, the issue isn't just getting an Apache module to work, it's the entire Ruby ecosystem. It not only thrives on but often fully embraces the tools and mindsets that Unix-based OS's provide and support. Perhaps I'm just biased, but I can't imagine doing serious Ruby development on Windows (and you'll find that the greater percentage of the community agrees). Even though a few projects are pushing toward getting Ruby proper citizenship in Windows-ville, I fear it'll never be a native. –  Brandon Tilley Mar 13 '11 at 0:33
show 1 more comment

2 Answers

up vote 3 down vote accepted

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!

share|improve this answer
 
Wow, thanks alot Adam; Your step-by-step approach to the explanation gives me greater hope of quickly jumping into this. I've gone with Ubuntu, for the same reason as many others; my general unfamiliarity with *nix systems, having come from a rather strictly MS background. I think I'll stick with Netbeans for familiarities' sake, however your suggestion of Nano sounds good as Vim is still a bit daunting for me. Any other suggestions regarding important tools for a *nix based web dev environment? –  Dan Lugg Mar 13 '11 at 6:33
 
@TomcatExodus, Ubuntu also provides the tasksel utility which can install a LAMP setup with the one command sudo tasksel lamp-server see what else it can install with tasksel --list-tasks –  Joel Berger Mar 14 '11 at 3:16
add comment

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:

share|improve this answer
 
Thanks bvr; I've already been working with Perl on my existing install. I believe I'm going to start putting my focus into understanding the Linux dev environment for the aforementioned languages I intend to learn, and leave Windows for C# .NET, AS3.0 Flash, and my multimedia suites. –  Dan Lugg Mar 13 '11 at 7:18
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.