News for hackers. Stuff that matters.
Re:A Built-in Web Server For PHP by X-Istence on Thursday March 03, 2011 @12:51AM (#2282994)
Developers don't want to spent time setting up an entire LAMP environment. There is a reason why Django and Rails are doing so well and that is it is extremely easy to start development and start testing. With SQLite as the database you don't have a need for a full DB to start developing.

Being able to launch a quick server to do testing is absolutely fantastic. I use poole.py for my site (to create a static portfolio website) and I use its built in web server to view my changes before committing them and pushing them live.

If PHP development became as simple as launching a quick web server just like in Python or Ruby I might once again take an interest in it, at the moment I am just not too interested in working on it, as either I have to set up and run Apache with mod_php on my local machine or I need to set it up on a remote machine, and then files are no longer local, and testing becomes a deploy/test cycle instead, or I am editing files remotely over a possibly slow SSH session, or having to FTP them on save.

No, a built in web server in PHP that does the handling of requests would be absolutely fantastic. Having a simple web server doesn't have to add much bloat at all, it isn't bloated in Python or Ruby either. Look at publicfile [1] for an extremely small web server, look at the examples in libevent [2]. A web server built into PHP only has to do the bare minimum, serve requests. It doesn't need all of the functionality that Apache has. It isn't meant to be used in production.

[1]: http://cr.yp.to/publicfile.html

[2]: http://monkey.org/~provos/libevent/ see [3]

[3]: http://monkey.org/~provos/libevent/doxygen-2.0.1/ (Event Driven HTTP servers)

Re:A Built-in Web Server For PHP by acabal on Thursday March 03, 2011 @01:14AM (#2283070)
But it's not that hard to set up a bare-bones Apache serving PHP on localhost! It's literally as simple as the two commands I posted above on a modern Linux box, and as simple as downloading and running the Apache installer on a Windows box. The installers do it all for you. IIRC after running the Apache Windows installer you can access http://localhost serving PHP right away!

In fact that's part of the reason why PHP became so popular: 1) it's free, 2) it's easy to do basic html manipulation, and 3) it's easy to get a basic setup running.

Why bundle a custom web server with a scripting language when literally all you have to do is visit one more web site and download and run one more installer? I feel like I'm missing some huge key revelation here because I keep getting downvoted for these thoughts. Should PHP also bundle their own custom MySQL engine so I don't have to run 'sudo apt-get install mysql'? Or a copy of Tuxracer too so that I can play it when I need a coding break without having to run the installer?

Edit: in fact, at the risk of further downvotes, I would go so far as to say that if it really is that difficult for someone to do a basic Apache/mod_php install in their OS of choice, they should probably do more reading/tutorials before proceeding down the PHP rabbit hole any further. Figuring out how to install a dev instance of Apache isn't more difficult than reading the documentation for getting this new embedded PHP server running.

Re:A Built-in Web Server For PHP by bluesnowmonkey on Thursday March 03, 2011 @05:34AM (#2283515)
> Why bundle a custom web server with a scripting language when literally all you have to do is visit one more web site and download and run one more installer? I feel like I'm missing some huge key revelation here because I keep getting downvoted for these thoughts.

Don't worry man, I've got you covered. Key revelation coming up.

I suspect you're thinking of this in the context of getting a single PHP app running on your box. What if you have several? Or what if you want to have several branches of the same codebase checked out and running? It's doable with some VirtualHost kung fu, maybe a wildcard ServerAlias, but it's no longer as simple as 'apt-get apache'.

Much simpler to tell someone, "Do a 'php -S' in whatever project you're working on at the moment."

Re:A Built-in Web Server For PHP by X-Istence on Thursday March 03, 2011 @11:33PM (#2287024)
Thank you for explaining it in a much more succinct fashion than what I could muster.

This is EXACTLY why it would be awesome to have a web server bundled with PHP.

Re:A Built-in Web Server For PHP by roel_v on Thursday March 03, 2011 @06:10AM (#2283579)
It's not as simple as you make it seem! After installation, you still need to edit your DocumentRoot, enable mod_php, maybe set up a virtual host, maintain which document on your machine corresponds to which port on your machine, ...

Your scenario of running a simple test.php from the default DocumentRoot is a very contrived one, one that only the very first beginner will ever use, and even then only because he doesn't know how to configure Apache. Plus it assumes a lot of things: that it's on Linux, that it uses the distro-supplied packages, that they use a setup that is the very basic one, ... OK for beginners, but serious friction ('friction', not 'unsolvable problem' - that still doesn't make it unworthy of being addressed) for many experimentation scenarios.

Re:A Built-in Web Server For PHP by matei on Thursday March 03, 2011 @08:04AM (#2283795)
sorry, but from scratch (no apache, no mysql, no php) to running 2 php/mysql sites in different virtual hosts takes less than 10 minutes on a modern ubuntu box (and probably most of the time will be spent configuring the site, not the servers). plus, i don't want to run a php -something in a shell each time i want to test something. also, while modern ORM's abstract away most of the database , I still wouldn't use sqlite on the dev machine for a site which will run on mysql in production
Re:A Built-in Web Server For PHP by X-Istence on Thursday March 03, 2011 @11:36PM (#2287028)
You are the exception. You can still set up your environment as you wish, don't let the built in web server in the CLI stop you from doing that.

Also running php -S in a shell is simple, run it, and minimise the window.

Re:A Built-in Web Server For PHP by powertower on Thursday March 03, 2011 @09:29AM (#2284083)
> literally all you have to do is visit one more web site and download and run one more installer?

Your statements are only true for the simplest of cases.

I've been working with both LAMP and WAMP (Windows version) since 2003 - about 7 or 8 years now...

And even provide a pre-packaged WAMP type-distribution with a Pro edition and a Community Edition: http://www.devside.net/server/webdeveloper

I'll skip you the drama, but take my word for it, getting AMP to work well together (and working with AMP) is not a trivial task and requires literally years of experience. There are about 1000 ways you can screw it up. You might laugh at this statement with your "apt-get" or your Windows-based Apache setup.exe, but what happens afterwards? And what happens if there is a problem?

Having provided support for so many years, I can tell you it can be a nightmare for some people.

Re:A Built-in Web Server For PHP by Florin_Andrei on Thursday March 03, 2011 @11:17AM (#2284565)
Yes, Mr. Comic Book Guy, it's not hard.
Re:A Built-in Web Server For PHP by X-Istence on Thursday March 03, 2011 @11:33PM (#2287019)
sqlite is pretty much bundled... so no MySQL required. Much like Python and or Ruby ...