Newb-Friendly Linux Flavor For LAMP Server?
First time accepted submitter bhcompy writes "I need to setup a system to serve 2500 users and I've been looking at a LAMP setup. This is not commercial, more of a personal side project for some friends. I've no experience configuring or administering a Linux server having worked with MS and PICK based solutions my whole life, so I'm looking for something that will be relatively straightforward to implement and not a chore to manage and preferably not completely CLI. I will be serving a forum(phpBB 3 suits my needs and seems adequate) and a variety of PHP driven content with a MySQL backend. Requirements are PHP 5.3.0+ and MySQL 5+. Suggestions?"
I haven't verified that it has all the versions that you want, but I've used SME server on and off over the years for such things. It's quite newb friendly, and not completely command line. There are quite a few other options as well.
-- Who is the bigger fool? The fool or the fool who follows him? --
Pick Debian or something Debian based like Ubuntu.
You sure have a lot of friends!
I suggest Virtualmin on top of Ubuntu. Its easy to configure and setup and maintain.
http://www.virtualmin.com
There's a nice article here on setting up the LAMP stack on Fedora (or its relatives, Red Hat Enterprise Linux and CentOS):
http://fedorasolved.org/server-solutions/lamp-stack
You may treat all information submitted above as wild speculation.
LAMP Stack
www.turnkeylinux.org
Turnkey provide many popular stacks, dev environments etc on pre-configured virtual machines. Can be run from sny host linux/windows.
Highly recommended
For a completely unknown platform I'd suggest mucking about with a very small project with just yourself as a user or maybe a couple of others that don't care if it's down or broken. Once you know your way around you can then move on to something else.
Making stupid mistakes in front of an audience of 2500 users would be embarrassing no matter how trivial the subject matter of the site is. You are better off making the stupid newbie mistakes where only you can see them. Having test and production environments only go so far if there is nobody in the project that really knows what you are testing for - if you don't know what you are doing your stupid stuff will go live.
Ubuntu 10.04 server with Virtualmin installed. Makes managing one or more websites dead simple. It has one click install for phpBB through virtualmin, has php5.3, and MySQL 5.x. I use this config in a small commercial setting and it's been working well for years. My boss is a MS junkie, so it had to be easy if I was going to deploy a LAMP stack. Without webmin/virtualmin, I'm not sure we'd have any Linux servers...
CentOS and RHEL have become the industry standard for LAMP setups, for whatever its worth. Given that you probably don't need a support contract, CentOS 6 would fit the bill nicely. A free control panel like Webmin would probably make your life a bit easier in the configuration department.
"Make it idiot proof, and someone will make a better idiot."
I'd suggest that you go with one of the mainstream/common Linux server distros: either RHEL (for which you can use CentOS, which is essentially the same, minus the RedHat-copyrighted bits) or Ubuntu Server.
Either of these can be configured to use a GUI. I'd actually pick RHEL/CentOS over Ubuntu, and during the install (which is graphical), you can select to install a web+database server along with a Desktop (GUI). The installation is fairly straightforward; the most complex part is arguably the partitioning, although you can use the guided partitioner to just use all free space on the disk. Partitioning isn't something that's linux-centric, although the partition scheme for Linux is perhaps a bit more complex than what'd you would expect coming from a Windows world (dedicated swap device, LVM to virtualize the partitions, etc..). If you use the guided "do it for me" option, you can avoid getting your hands wet with this complexity.
The primary reason I'd suggest going mainstream is that the support will be there. If you choose some OS that no one really uses, you'll be hard-pressed to find distro-centric documentation for it. If you go with Ubuntu or RedHat, you can use Google to get through any obstacles you may find. There are plenty of tutorials available when you google for a simple [do this task] on [this distribution]. For example:
http://www.google.com/search?gcx=w&ix=c1&sourceid=chrome&ie=UTF-8&q=install+phpbb+on+rhel
http://www.google.com/#sclient=psy-ab&hl=en&safe=off&site=&source=hp&q=install+phpbb+on+ubuntu+server
While you could probably use this documentation to complete a task on another distro, it's helpful to have a tutorial for the specific OS you're using; all the commands will be the same, and any dependency problems, etc... will all be accounted for.
Additionally, should you decide that you want to learn more and play around, having something mainstream installed means that your learning experience will be directly relevant to anything you want to do down the line.
As an alternative, you could go with a pre-built phpBB appliance. http://www.turnkeylinux.org/phpbb is a single ISO or VDK that is built on Ubuntu Server and comes pre-configured with phpBB (they have many other applications available as well - highly recommended!). It'll ask you a few questions during the install, and once complete, you'll boot up into a fully-functional Linux server with phpBB already running.
Nemilar http://www.techthrob.com - Visit Me!
Is that you, Zuckerberg? I'm not setting up any systems for you without a firm contract.
www.debian.org
The essential, and without any brown lipstick smeared all over.
These are arguably the best options for beginners. Both have great communities and any issue you have you can typically find a solution on Google in 5 minutes. Ubuntu even has a LAMP package that will setup everything(well, most everything) you need. Couple pointers: Disable root login via SSH as soon as possible. You're asking for a bruteforce attack if you leave that enabled. Set up something like fail2ban or OSSEC monitoring to help thwart bots that are trying to break into your server.
Bitnami, Bitmami, Bitnami
http://bitnami.org/cloud
"Flyin' in just a sweet place,
Never been known to fail..."
i 'm using TKL linux. Highly recommended.
A simple Ubuntu or Debian 5 installation will fill the bill nicely. Webmin will take some of the sting out of having to learn the CLI. However any true IT professional should learn and use the CLI (Even newer MS servers can not be installed sans GUI). Once learned, it is quicker, simpler, more powerful way to do things than any other method I know.
Don't let the unfriendly reputation of NIX scare you away. I did 16 years ago when I started our ISP. Went entirely Windows NT servers. What a mistake! These things were constantly failing for various reasons. I began learning Linux and slowly replacing the failed servers with Linux systems and they just didn't fail unless some hardware failed (not nearly as frequent).
Life is much easer now and I spend very little time on server maintenance.
I thought you meant you wanted 2500 users on the Linux system itself. That's a fairly big /etc/passwd file, and if they all log in at once then I suspect even a high-end system will crawl a bit.
What you really want is a system that can run a forum that can support 2500 users, but you don't say how many simultaneously, or anything else useful. For 2500 simultaneous users, all posting and reading, you might need more than one box...
So, proper requirements spec plzkthx.
Take the bus.
I am nearly equally Linux-ignorant, I set up Amahi as a "home cloud" (googling for that is what led me to it). It runs on Fedora by default. It's been mostly easy to install and maintain, and I even managed to install Trac on my own with not too much pain (given that I already have installed Trac on MacOS and Solaris).
phpBB is one of their apps that is in beta, where I suspect it will be for a while (it's volunteer-mostly), but the apps so far are click-and-go. I administer the box with webmin, which in practice means installing software updates from time-to-time, and watching the Smart status on one of my drives indicate that it is dangerously old and in need of replacement. No handy Linux app that I can see yet that replicates the user-friendly behavior of MacOS SuperDuper (sigh).
A forum and some custom LAMP pages ... soooo why not focus on that and leave the server/hosting/etc to someone else? There are a lot of LAMP hosting providers out there that you could use for a few $$ per month.. Go with a company that can give you SSH access so you can get familiar with some CLI management (or concurrently attempting to run the same stuff on a virtualbox linux setup) and perhaps down the road once your more comfortable with the LAMP config, then migrate the site to your own server.
not a chore to manage and preferably not completely CLI.
Aren't these inherently directly conflicting goals?
Easy to manage, is you change one little thing in your puppet config and puppet magically makes it happen, instead of having to babysit everything.
Easy to manage is someone tells you "make /etc/apache2/apache2.conf look exactly like this" instead of "click on the 2nd icon from the right that looks like two mating centipedes, then look randomly about the screen until you find the icon that looks like a discarded kleenex, oh you're seeing an icon that looks like a black hole, well, then click two pages back" etc for about ten minutes.
An analogy is "teach me physics, without any of that tedious math stuff".
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
Why not use ScarletDME? It's a fork of the open source OpenQM project and would handle your needs quite well. There's a couple of ways to access it via PHP as well. If you know Pick no reason not to stay with it. :)
http://www.scarletdme.org/
Have you even thought about a WAMP setup? A poorly admined Linux box is worse than a well managed Windows one. - from a *nix sysadmin
... yet another server "admin" running a system he knows nothing about, just waiting to become the next spam server when his insecure installation get pwned (and it will be just a matter of time).
How about just buying a webhotel instead of setting up a server? I mean if you just need to run php5.3 and mysql there is really no need to setup your own server.
Who is posting on slashdot who has 2500 friends?! Wait, does anyone have 2500 friends besides 16 year-old girls on facebook?
If you don't understand Linux and won't/can't want to take the time to learn it properly, then it would make more sense to get a hosting account from a reputable web hoster. Or if you insist on running the machine yourself, hire someone to do the initial setup for you.
In todays environment, you need to understand a great deal about many OS level things, most of which revolve around security. Firewalls, mail configurations, etc. Not setting these things up correctly can have bad consequences. For example, your server IP address is blacklisted by RBLs because you left your SMTP port open and spammers started using it.
Webmin.com is a web based system administration tool that is free and runs on most Linux and BSD based systems.
It will give you an easy way to see and manage all the subsystems on a server.
Make sure your installations are up-to-date and *easy* to upgrade, and follow any program-specific "security" FAQs, instructions, manual chapters, etc...
A LAMP System with common server applications and without careful configuration is basically begging to be cracked. Following the basic instructions for tightening it down (limiting system access of www-data user, limiting database permissions of the database user your web applications are accessing the database as, making sure strong input validation is used on anything you create personally and that all applications are up-to-date, etc...) will go along way toward reducing the risk and consequences of an attack, and will take much less time to do in the beginning than it will take to fix if the system gets compromised.
Besides, you'll learn a surprising amount doing it, if you've never done it before.
-- IANAL, this isn't legal advice, and definitely isn't legal advice for you. Also, Squee!
Check out rPATH LAMP appliance [www.rpath.org] I have used them several times and work very well and ready to run.
As a Linux server admin, Mac OS X desktop user, and one who does not prefer Microsoft products (for the most part), I'd recommend going with what you know. While I personally could implement and administer that type of server with that type of workload using any Debian or RedHat derived distro, I would probably fail if I attempted that with Mac OS X server and I would fail in a very spectacular way with Microsoft products. If you're using this as a reason to learn Linux, I'd recommend doing that in a much smaller test environment, and implement any production scale project of that size using tech that you're familiar with.
If you must go with Linux though, like others say, go with a big distro - preferably RedHat or Debian derived (RHEL, Centos, Debian, Ubuntu server, SUSE, etc, not necessarily in this order), and find someone who is skilled with Linux and learn from them while they implement and administer this. Good Luck!
I am surprised that no one has mentioned XAMPP or Portable XAMPP yet.
I used Portable XAMPP under WinXP as a development environment for several years. It comes with a couple of GUI management tools and has an active community behind it. Advantages: you get a LAMP-like setup on a removable drive running under an OS you are already comfortable with. If things go totally weird, you can replace the XAMPP drive with one loaded with an earlier backup and be confident that none of the weirdness has been left in your system. I found that was a very comforting thought when I was going through the newbie jitters phase.
XAMPP is probably powerful enough to handle 2,500 users doing typical Internet stuff (avoiding serving out hundreds of full length movies, etc). So it might be suitable for your production environment as well as development: install it on a fast fixed HD using Ubuntu Server as the OS and you will have a bullet proof operation that is easy to manage and develop for. XAMPP is plain vanilla and seems to play well with any of the Linux servers.
Here is a link to one source of XAMPP goodness. Anyone who is still using Windows should think about exploring the PortableApps site, too. There are some FOSS gems there.
Will
Dear Slashdot,
I've been riding a bicycle for awhile, but lately some friends of mine need me to give them a ride around town. I've been looking at cars, preferably something where I don't have to learn how to drive. I just want to go from one place to another with it. Any suggestions?
This is how thousands (millions?) of Wongs have approached your transportation problem: Cycle rickshaw.
So, is "Newb-friendly Linus" is an oxymoron? Ouch.
Obi-Wan: "I felt a great disturbance in the Force, as if millions of voices suddenly cried out in terror and were sudden
Ubuntu server is very good, but you really will have to deep-dive into Apache and the mail server of your choice which adds about 200% over just learning Linux. In your case, though, it sounds more like you are setting up to serve a few PHP apps. If that is the case, I'd recommend setting up on a Cpanel based hosting service (Cpanel runs on CentOS and has become a de-facto standard for serving PHP apps like PHPBB 3). If you need a dedicated server, you can find places where you can get a Cpanel server for $100/month-$200/month... or you can license it for your own server. There is a reason that Cpanel is so popular...
Ignore all the static here about "another admin who doesn't know what he/she is doing". Every one of us here knew nothing at one time. Yes, you'll learn a few lessons the hard way, but as long as you have regular backups and pay attention to ensuring users have strong passwords, you probably will not do anything you can't recover from.
-- $G
Seriously, that's the issue with PGSQL. There's almost no comparison, having maintained both RDBMS for extended periods of time. For simple bulk indexed storage tasks with very high read/write ratios like most webapps have it just isn't worth the pain of dealing with the idiosyncracies of PGSQL. MySQL 'just works', is a lot easier to automate, requires less maintenance, and tasks like migrating to another server or making a simple replica is trivially easy. They are both good database servers, MySQL is just 5x easier to deal with.
"Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
Just go with the crowd.
I've just been playing around with LAMP using VirtualBox on Windows and this is the procedure I use to setup a test server.
For the record, I'm not recommending you use VirtualBox to host 2500 users, although it is an easy way to practice.
1. Install Linux Mint. I use Linux Mint because it's the most user friendly distro I've found, but any Ubuntu-based distro should do.
2. Use the Package Manager to install Apache, mySQL and PHP. The trick is to search for "apache meta", "mysql meta" and "php meta". Adding "meta" or "metapackage" in the search string restricts the search to metapackages, which are the currently recommended version of the associated package with the most common add-ons. I install both "mysql-server" and "mysql-client".
The installation of Apache, mySQL and PHP using the Package Manager is completely automated, except during the installation of mySQL it will stop and ask you for a root password for your installation.
3. I usually use the package manager to install "phpmyadmin" to admin my mySQL database. Note, there is no "metapackage" associated with "phpmyadmin".
4. Searching for "phpbb3" in the package manager turns up phpBB 3 as an installable package.
Having said all that, you're probably better off if you used one of the commonly available WAMP server packages.
just be sure to tighten its security before letting it loose, by default its as secure as a wet paper bag ... it runs on windows as well if it makes you feel more at home
Well how this sound for anon's requirement.
The website is called trisquel.im
I would like at least 2000 registered users by next side of christmas '11.
I have a hp (amdXP) and a hp pavilion (amd chip unknown/ to be updated to your specs.) both system are pre-2006.
The idea is to use the 2nd updateable hp as the server, administering a wiki site. The wiki-site would be the basic wiki with one exception, the lingua-franca being MANX . The user would be able to log on and edit the various wiki-parts that the trisquel-user would find appropriate in an effort to bolster another language to the trisquel if not the Ubuntu family. The same aterations would apply as on the normal wiki-site with the mode of input being slightly different. The input-er would change/ or add a maximum of 300 words/ (Kb) jpeg (in Manx) and the user would hit the update button. A pop-up would occur saying that a bridge had been opened and that the upload would not take longer than the 300 second counter as displayed. After the upload is complete to the amdXP machine a-nother message would be left as to whether the upload had occured/ the upload was accepted as to be admitted to the wiki/the upload was to unrecognisable (too big) for the wiki ... then the system operator ("Hey" (let's face it Fonzy was crap)) would be able adopt the text/picture to the wiki by making the necessary changes to the server hp pavilion (plz suggest an iso here peeps!). The update from the first to the 2nd computer may well be done remotely if the server operator is pre-disposed due to hosp. etc
The system get updated and updated as the slashdot effect takes effect until cannonical which was originally a manx company (as of 1996) realises that we need inclusion not exclusion to the Ubuntu family there-by creating an important extension to the poor-man's armoury of things to do on an idle Sunday.
Oh here's the Spotify http link:
http://open.spotify.com/track/58cCnMoXzeQNEX6m3aCwbW
Warmest regards.
Easiest setup of any distro.
As other posters have pointed out -- Ubuntu is your best bet for a user friendly Linux distro, especially if you plan on using a GUI for administration. /user/local/zend) with everything you need pre-configured and packed up with an installer. It even includes a service monitor for easy access to log files.
For the LAMP stack, Zend Server is your best bet, it's a free, self contained environment (installs to
If you're going to be learning it, may as well learn it the correct way. CentOS (short for Community ENTerprise OS) is great for servers, and LAMP on red-hat based systems takes about two minutes to install and configure. Any Linux distro will be hard to learn at first, and CentOS isn't any harder than the other big names. Keep this in mind as you struggle through learning the command prompt. If you end up liking CentOS, you could try Fedora for a workstation to really lock down the Linux essentials. If you end up hating CentOS, you could try Ubuntu. Which brings me to the "avoids CLI" comment. While GUIs are nice and all, honestly, the CLI is much simpler. Even if you don't know what you're doing yet, you can copy-paste commands from guides and get things setup rather quickly. I'm not sure I've ever setup much of anything in Linux without use of the CLI. To give you an example of CentOS installing a LAMP server using YUM (package manager), you would type this at the command line: yum install httpd mysql mysql-server php php-mysql Now you have Apache, MySQL, and PHP all installed. If you want phpmyadmin, just throw "phpmyadmin" to the end of that line. If you really want to avoid the CLI, you can install "webmin" as well. It's worth looking into, at least: http://www.webmin.com/demo.html And then to start the services: service httpd start service mysqld start If you want these services to run every time at boot: chkconfig httpd on chkconfig mysqld on Everything will be running, and will startup with reboots. Your website will be located at /var/www/html and directory read/write permissions should be set to the new user, "Apache". See how short and simple that was from the CLI? It was five commands! Anyway, I digress...
Some people have suggested Ubuntu, but Ubuntu isn't a server distro. It will work, but if you want to run a stable server from a Debian standpoint, you would probably use the original: Debian. I don't recommend this, however, because Debian can be a PITA, if memory serves correctly. A lot of people out there will try to tell you that Ubuntu can be, and is, used for servers. Well, it's true. Anything can be used for a server, and there are quite a few Ubuntu servers out there, but that doesn't mean it's right. I mean, deep-fried Twinkies are still food, but that doesn't make them /proper/ food.
If all this distro talk is going a little over your head, I wrote an article a while back as part of a series I never finished, introducing people to Linux. It's short, but you may find this section useful: http://drprofessor.info/index.php?option=com_content&view=article&id=151:a-brief-history-of-linux-and-distros&catid=50:linux
and this one, too, if you want to know more about the directory structure differences between Linux and Windows:
http://drprofessor.info/index.php?option=com_content&view=article&id=152%3Adirectory-structure&catid=50%3Alinux&Itemid=449
If this is going to be on the public Internet, I'd question the wisdom of managing it yourself when you've admitted it's not one of your core strengths. Instead, I'd set up a cheap & cheerful shared hosting account - it'll be locked down thoroughly, it'll have a pretty sophisticated set of management tools and if you install phpBB through the management tool there's every chance any security issues will be dealt with by your hosting company. Considering the security history of most PHP forums (dire), managing this yourself when you don't really know how and don't really need to seems to be asking for trouble.
As a fan of CentOS, I would tell any newbie who does not want to deal with actually getting under the hood for as long as possible, go with Ubuntu. Sooner or later with RedHat/CentOS you will need to compile/install something that is not part of the standard distro and you will not want to have to know anything about which library is installed where, how to configure a start script, or any such thing.
What are you serving these users?
Your best bet is to just go with some cheap PHP hosting site. You'll never need to deal with any admin issues. Ask each friend for a dollar apiece and you'll even have costs covered
SLAMPP will give you what you are looking for on a boot cd. http://slampp.abangadek.com/info/
Just use Centos/RH/Fedora or Debian /Ubuntu,
yum install httpd php php-mysql mysql-server, in centos or rh might be php53,
In debian/ubuntu
apt-get install apache2 php mysql php-mysql or something like that if you know the basic of how apache php and mysql work, they work the same in linux.
You might look into Ubuntu Server running Virtualmin GPL. The Virtualmin installer script will install a LAMP stack. You can configure and management things via web browser.
After all, the installing of the server will be the main difference. Once it is installed, they will be basically the same.
I hope you did not bite of more then you could shew. With Apache and MySQL you wioll already have your hands full to make it secure. Add php on top of that, which you do not know and it will become a leaking basked when looking from a security point of view.
You are not even sure about phpBB as it only seems adequate.
The selection of the Linux Distro would be the least of your problems. In the 90-ies many managers asked who had Internet access and the chmuck who raised his hand was the Internet IT specialist from then on with all the responsibilities.
I would reconsider if you are the right person for the job.
I also know you won't listen, so here some tips. (Blatant distro plugging ahead.)
1) Use openSUSE. It installs very easy and has a GUI as well as a CLI to do the installation called YaST and an easy option to select a LAMP and anything else. Also easy to use YaST later for cvonfiguration of other parts, including basic configuration of Apache. Workable via ssh.
2) Also install phpMyAdmin as it is easy to do MySQL admin via the website
3) Learn all there is about securing you php site.
4) Learn to work via CLI
5) Make incremential daily or more often backups and know how to restore them
6) Look if there is somebody who can replace you while you are on a holiday or in hospital or worse, not interested anymore.
If 6) is nobody, don't even bother to start. It will be a short lived project that will die and you will be blamed for letting it die.
Don't fight for your country, if your country does not fight for you.
maybe what you're looking for is a small managed hosting. then you wouldn't need to configure the xamp stack. another good thing about this is the cost factor. a root server is quite expensive and propably a bit too much for such a project. i developed a a site with more than 50.000 page views a day on a small managed server for 15€.
hope that helps, martin
Fuck ubuntu. Use the real thing --- DEBIAN. Ubuntu an ancient African word Meaning Debian for tots. Looking at the ubuntu forums and all the problems with ubuntu. Why the fuck would anyone use it ? especially for any type of server.
Seriously, if you don't know anything about linux, and don't want to be bothered with securing and updating it, just go with a hosted solution like Dreamhost who has a GUI panel for most of your administrative needs. Getting something "simple" is a recipe for you getting hacked.
phpBB is the reason the PHP team asks people not to use "php" in their project names. Because phpBB makes PHP look bad. Which is like saying "my herpes sores makes my genital warts look bad".
I agree with other posts about using XAMPP (http://www.apachefriends.org). I've used it quite a bit for development work and I found it super easy to install. It supports Linux (debian and redhat among others) and Windows. It comes with MySQL and SQLlite with the phpMySQLAdmin admin tool, PHP and perl for development). The best thing about it is Apache, MySQL and PHP are all pre-configured. There's even an FTP server included. I'm not too sure about security though as I never went live using it, but if you read up on server (esp. web server) security, you can configure it pretty easily from what I understand.
There's a LAMP task-RPM last time I looked.
Excellent at installation, hardware detection, system administration.
Take your pick anyone who cant handle that at this stage of the game dont deserve to own a computer.
2500 users doesn't say much. 2500 people that will log into a forum a few times a week or 2500 people that'll upload and download eachothers' entire lives in multimedia?
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
ClearOS is a great choice for what you're describing in terms of your needs of the OS and your abilities with linux.
Show me packet captures and log entires, or it never happened.
first url: http://open.spotify.com/track/6ddLlmOcS6GE7xVRYI0cgH !!
I'd go with Linux From Scratch, and the TUX web server for a little speed boost.
Mageia has magical wizards for everything. You can set up a web server with a few mouse clicks:
http://www.mageia.org/en/
Also, if you are uneasy with a CLI, you need to ask yourself whether you can actually do this. Unease with CLI is typically due to lack of understanding how things actually work. In that case you should stay in the MS world, where people are (mostly) protected from making severe mistakes but are seriously limited in what they can actually do.
If you are trying to break out of the MS-world corset, then do not fear the CLI, learn to use it instead. It is the only way to be free of those restrictions, as GUIs are not and cannot be powerful interfaces due to fundamental limitations. Remember, the CLI gives you the power to command (and shoot yourself in the foot), while the GUI just interfaces you, allowing you to do just what the GUI designer chose to allow you to do. Both terms are surprisingly self-explanatory.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
not a chore to manage and preferably not completely CLI
In my experience, you spend more time & headaches trying to avoid CLIs and config files than you would need to spend just learning how to use those tools.
Debian does a *really* good job of making it easy to work with the CLI and config files. Don't fight that; just learn it. The knowledge is very reusable, and it remains useful for years (even decades?) rather than months.
Even if it's just for fun that's a heck of a lot of users to let down if you run into trouble. I'd be concerned that even if you get it set up and running, some day it will go down and it'll take several days to figure to while the community languishes. I'd host somewhere else until you are really comfortable and familiar with LAMP administration.
I'd probably pay for some hosting company to host it if I had the money. Pick someone who will keep your system patched. Pick someone you can pay to support you if needed. You then can concentrate on the application.
If you outsource to a hosting company .. you still need to build one at home and it should use nearly same technology as the hosting company. This for you would be RHEL/Centos .. but it could be something else.
That said .. 2500 users doesn't say much.
How they are going to use the system says much more.
You need to get a grip on how much bandwidth and cpu and disk they will need based on what you are serving and how many people will use the system at once.
You can measure this on the local system and make educated guesses for the 2500 users.
RHEL/CentOS and then follow the guides on http://www.linuxhomenetworking.com/ . The guides cover almost everything a sysadmin should know.
(1) The latest Ubuntu LTS
(2) Webmin and Virtualmin.
That's It! Nuff said.
Loban Amaan Rahman ==> Anagram of ==> Aha! An Abnormal Man!
Go with Linux Mint. It just works. (and I'm a dyed-in-the-wool SlackWare guy)
Mint is based on Ubuntu, which itself is great, and has more polish, apps, etc. I prefer the KDE version, but Gnome works too.
Get an ISO, AMI, or VM image complete with LAMP already configured. Hell, they even have configurations that include apps already configured like trac, mediawiki or redmine. You'll have full control including root, so no worries about lock-in.
I'd just test one of these out, get your deployment script tested, then roll out the AMI on Amazon EC2 (then apply your deploy script)... where you can scale up the capabilities as needed.
Ultimately, cost/capability will determine whether you host locally, remote or cloud, but there's almost no reason you'll need to roll your own. My only gripe with these services is that they don't have Ruby-on-Rails with Apache and the Rails Passenger module pre-configured (as I find Mongrel/Webrick to be too ligthweight for production usage)... but that's only an issue if you're going production RoR.
Make sure everyone's vote counts: Verified Voting
First time accepted submitter bhcompy writes "I need to setup a system to serve 2500 users and I've been looking at a LAMP setup. This is not commercial, more of a personal side project for some friends. I've no experience configuring or administering a Linux server having worked with MS and PICK based solutions my whole life, so I'm looking for something that will be relatively straightforward to implement and not a chore to manage and preferably not completely CLI. I will be serving a forum(phpBB 3 suits my needs and seems adequate) and a variety of PHP driven content with a MySQL backend. Requirements are PHP 5.3.0+ and MySQL 5+. Suggestions?"
My first and current linux server distro is CentOS. You have to know some obvious things about Unix/Linux, and be savvy enough to google what you don't know or otherwise find tech advice.
Also may I add Open Source Software all the way is great for a personal project!
Suggestions.. PHP 5.2 is the 'standard' for many things, but it's usually best to have have the latest version of anything running on your server. You'll find this is true until you actually build software that interacts with these elements and one day suddenly breaks on a software update. After this you are faced with the agony of A) using the deprecated software with possible gaping security holes or new features missing -or- B) Rewriting your software, because if you don't it won't work.
Here's some advice that EVERYONE learns, so don't say I didn't warn you. The #1 rule in all of Server Admindom:
Backup, backup, BACKUP!
If you have important data on the server, back it up to other things! WHENEVER you are going to edit any sort of crucial configuration file (and you won't be a good server admin if you can't face editing a file that could totally -FUCK- your system up, and probably will in fact, so it's a good thing you took those backups that were actually from last tuesday oops) BACK IT UP FIRST!!
You're going to learn that on your own anyways. Everyone does.
If you're an administrator, you're going to need to get proficient in programming languages like PHP and SQL; having a programming language background, or at least passion, is essential. The only time the Administrator wouldn't do this is if someone else on the team does, in which case maybe they should be in charge of the software.
For one box, managing 2500 simultaneous socket connections, like a server for a real-time shooter game, is not an easy thing. Where is this box going to be? If it's in someone's house and hooked up to a slow residential line, that's never gonna happen. Are you renting it from somewhere, how much are you paying, what are the data limits, etc etc etc. Managing 2500 users on a website where you have a load of maybe 50 or 60 at any given time consumes much less in the way or resources.
If you want to rent but not pay a lot and you don't have any particular hosting service in mind, may I humbly suggest http://www.wtfserve.com./
A quick note to performance. You need a system for 2500 users, and a lot of posts here will say 'Users doing what?' which is important because obviously they can't understand what you want server-setup wise, and you don't really know yet either, because you don't know linux servers. Don't be disheartened by this; your mind might be overloaded with a dream that is not easily attainable, but it is also the driving force for what you wish to accomplish.
I could suggest ClearOS (http://www.clearfoundation.com/Software/overview.html). I've used this in the past to power a portal for a small intranet; without an awful lot of administration overhead.
As far as I remember, software updates are automatic and come free of charge, however, if you want it automatically updating definition lists for spam filters, etc., you'll have to pay for the subscription service.
Of course, you could get any of the popular distributions, run webmin and/or virtualmin on them and get semi-automatic updates and easy-install for server-software for free.
There are also managed hosting/server offers around, if you're willing to pay. There, you let the (hopefully experienced) admins handle most of the technical intricacies of your project.
I've been using OpenSUSE for years, and setting up a LAMP server is ridiculously easy on that. After a basic install, just fire up YaST, choose software management and select 'HTTP server' from the 'patterns' list. All necessary packages will be auto-selected, installed and pre-configured. You'll might also want to use YaST to set up server options such as URL rewriting or change the default document root, but that's about it as far as Apache is concerned. Use YaST/System/Runlevel editor to make Apache and MySQL auto start at boot if you want that. The one package which might cause hassles is phpMyAdmin, which can be hard to find in the YaST's software lists, but it's there. It shouldn't take more than a few minutes to have a LAMP server up and running.
Why the hell would someone asking a question this stupid be supporting 2500 users anyway??
This is not something to do as a "newb", as you describe it. Such a large project requires attention to mirroring, high availability, backup, load handling, security, and API's for accessing the data that are beyond a weekend "just set it up and run" project. It's a good time to contact your local DBA's for their guidance, and their preferences, and let them help you save time addressing the concerns they will raise later, and which may not be on the original plan.
Stability for a server class project would suggest a commercially supported product, like SuSE or RHEL. Bleeding edge utility requirements would suggest a development version, such as Ubuntu or Fedora or Mandriva. Debian and gentoo are not good choices for new admins who are not already very experienced and comfortable hand-editing their own configurations, ore turning dozens of badly advised Google referenced solutions into one supportable choice.
Much of this depends on your local resources: will you deploy in a data center with remote support, which many ISP's will happily provide with backup and failover configurations built-in? Or do you need to build your own purely as a proof of concept?
Don't go with MySQL, use PostgreSQL instead. It's not just about Oracle adding closed source extensions to MySQL, it's the whole idea of going with a full database that is compatible with other 'real' databases, at the minimum we are talking about actual SQL standard.
You can't handle the truth.
I know I'll get booed for this, but why use Linux at all? Apache, PHP and MySQL are all available for Windows, and run on any version. I use a Linux distro for my firewalls, but Windows for everything else, including two internal web servers, two mail servers and multiple file servers. Yeah, you can do the same thing with less hardware with Linux, and it's probably a bit more stable, plus less work to keep up to date, but if you know Windows, and don't know Linux, you're better off staying with Windows. You don't really need that much more hardare, mostly RAM, and that's not that expensive these days, and you'll be more secure and stable with an OS you know than something brand new. Plus, it's more likely to work.
(As a side note, I'd be very, very cautious about using XAMPP. It's not intended for a production environment, and it installs in a very insecure state. Plus, last I checked, they were pretty slow about adding new versions of stuff to their package, so things tended to be out of date. You can get all the components - Apache, MysQL, PHP, for free, direct, at the current version, from the people who make them. And while Mercury is a fine mail server, it tends to be updated slowly. Even if you go with XAMPP, use hmailserver for your email instead.)
I agree. Mandriva is a very newbie-friendly, easy to install and configure distro.
PLF.zarb.org provides lots of patent-encumbered software, but there is a lot in the CONTRIB repositories.
Has great hardware detection and their sysadmin tools are very easy to use/understand.
I've used the LAMP-task RPM before and it requires minimal post-install configuration.
"I believe in Karma. That means I can do bad things to people all day long and I assume they deserve it." : Dogbert
If you want to have a general purpose full-featured Linux server distro that will be easy to set up and maintain, and be flexible enough to adapt to any purpose, choose either Ubuntu or CentOS (the Redhat clone).
They are easy to work with, and both can do everything.
(I'm guessing you're going to be physically sat at the computer while you're working on it, or working over VNC or some such, and that therefore you'll want a GUI - in this case use the usual Ubuntu desktop installer (rather than the -server edition which contains no GUI stuff).
Otherwise, if you want a quick and easy route to LAMP web serving, then the above suggestions of XAMPP, Zend, and also possibly Bitnami are the obvious choices. (They don't necessarily involve Linux though.)
Personally, I would recommend Ubuntu. It is a cinch to install and set up, great active community support, and you're not limited in what you can do.
Here's a little demo of what setting up LAMP on Ubuntu would look like. You can get where you want to be pretty quickly:
- download and install Ubuntu to the server (installation could be 10 minutes)
- open a terminal and type:
# sudo apt-get install apache2 mysql-server phpbb3
(this will take probably 2-3 minutes to complete)
You are now 90% set up with your LAMP server. Current versions of Apache, Mysql, PHP, phpbb3 and all their specific dependencies are now installed AND running.
Time to configure the services!
If you want to stay away from the CLI - and set up a web-based GUI to admin the server - here are four CLI commands :-) to achieve that: /etc/apt/sources.list
# sudo echo "deb http://download.webmin.com/download/repository sarge contrib" >>
# wget -q http://www.webmin.com/jcameron-key.asc -O- | sudo apt-key add -
# sudo apt-get update
# sudo apt-get install webmin
(probably another 2-3 minutes for all these steps to complete)
That's it. You now you have a full-powered LAMP server, configurable via a web GUI.
Total work? About 30 minutes.
Barring security concerns (firewall rules and following guidelines on apache/phpbb3 config, passwords etc), backups, and future updates (which Ubuntu will handle almost completely automatically for you), that's about all you need.
The solution is obvious - just use some $1/month hosting company and spare yourself the stress of managing something you don't (want to?) understand and the embarassment of 2500 people seeing you fail.
Not being rude, just not understanding why you would want to do that. Oh, and I'd rather go with a minimal FreeBSD installation with added Apache, PHP and MySQL instead, but that's purely CLI and therefore not what you want, plus it's not Linux. But I've used FreeBSD as web servers for more than a decade and am really impressed with the security and uptime.
Who is General Failure and why is he reading my hard disk?
1) Check out TurnkeyLinux for pre-assembled Linux virtual machines.
2) Download the free VMware player from VMware.
3) Start the VMWare player and open the virtual machine on your windows box.
4) Hack away.
This is a very effective solution. I used WinSCP and notepad++ with this setup to create a sophisticated database-driven website. There are web hosts out there who will host your virtual machine.
You have no experience with Linux, and given the question you're asking you likely have no experience with either PHP or MySQL. Trying to learn on the job with a public-facing server running this software is a bad idea. PHP-based forum packages routinely have security holes, as does the language itself - and you're going to give it access to a MySQL server? You're gonna get owned pretty quickly.
I really think a better solution for you is paying a hosting company to do this. They've got experience, and if things break - it's their problem to fix. Otherwise, get ready for your next Slashdot submission - "Hackers keep getting into my system and I can't keep them out".
#DeleteChrome
http://www.turnkeylinux.org/
Easy to start and learn from, offering a lot of simple virtual machines you can choose from as a starting point.
effect until cannonical which was originally a manx company (as of 1996) .
Dude, the guy's a genius. Is no-one else going to at least comment of the mastery of this guys rip on a wiki's way of tinkin' ??
This is exactly what you need. ignore all the tech speak and nerd lingo.
http://www.opensuse.org/en/
They're using their grammar skills there.
I used to host my own server for a small user community. I found myself burning up dozens of hours at a go dealing with annoying and basic administration responsiblities when I really wanted to work on higher-level stuff like performance-tuning and content management. Hackers were an ongoing threat to my free time.
You can rationalize away all of this and intend to just do things right from the start.You're going to eventually get hacked in some way. This isn't your primary job, so eventually a vulnerability will arise in one of your web apps and it's going to get exploited on your server. What's your backup strategy? Are you going to want to reformat the hard drive, reinstall the OS, and roll the database back to a recent snapshot prior to the break-in?
Let the administration be the hosting provider's headache. With a company like Dreamhost, if your web app becomes compromised, you can roll back the database and filesystem to backups taken hourly, daily, weekly, and monthly. Your site will be up within minutes and then you can work on patching.
Seth
$5 / month hosted VPS on linux = awesome!
TL;DR: commandline-only interface on the server is fine, since you won't be administering the server locally in most cases.
To implement: "sudo apt-get install webmin sshd knockd", then read the documentation and edit/create your configuration files.
Webmin is a useful tool for "avoiding the command line"; it gives you a browser-based interface to many common server systems and tools.
Between webmin and SAMBA, you can avoid the CLI for many common tasks, if that truly is your goal.
On the other hand, if you're serious about administering your server, you'll just bite the bullet and learn the handful of commands you'll need on the CLI to do the things you need to do, and read the man pages for ssh ("Secure SHell", a remotely accessible command-line interface using cryptographic security measures).
Implement port-knocking (Google "knockd"), use a non-standard SSH port, and implement certificate-based security to simplify your security concerns and keep the bots from being able to crack your sshd.
None of my servers have anything attached except power and network, unless/until there is a reason to interact directly with them - remote administration is the way to go.
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
You have 2500 'friends'? Do you know them all by name?
The simple fact of the matter is that if you just want to use Linux as a desktop, all the distributios provide some sort of GUI interface for doing the basics of system configuration.
But if you're running a server, you are going to HAVE to get down to the CLI and edit configuration files, install software, test startup scripts, etc. At least SOME knowledge is required to run a server, and if you're not willing to learn, you're just wasting everyone's time -- your's, your potential user's, and whoever tries to help you along the way. Buckle up and stop whining about needing to use the CLI.
I do not fail; I succeed at finding out what does not work.
it's free and supports Ubuntu, rhel, etc and gives a GUI for configuring loads of stuff. only needs perl, too. it's at webmin.com :)
I'm guessing here but, it seems to me you might have the machine to host (either co-located, Vm, or Dedicated server) already and are looking for a good linux to run on the server. Alot of people have mentioned ubuntu, which has an server edition. The ubuntu standard edition will have a standard gui that can be connected to remotely but, this is a bad choice for a server. Your pretty much going to be stuck mucking about in the command line at some point or another. The best thing you could do is grab a server edition of linux (ubuntu server, centos, etc.). and install it. Once it's loaded you can use the package system to install your additional software.
I would recommend using webmin to assist in managing the server. It gives a nice web-based gui that allows for the administration of Apache, MySQL, and, PHP and the best part is, it's free. There are a number of commercial "control panels" that do the same but, since this is a personal project I would stay away from these.
A primary concern when running your own server is going to be security. You will need to make sure you keep all of your software updated to correct for bugs and security holes. Also ssh is going to be a required part of any remote linux system. You are best off replacing password with key files, changing the port, and (do I need to even say it) not allow root login. Updating mysql, apache and, php can sometimes break things in your code so it is a good idea to have a separate development system to mirror your production server and allow for testing of compatibility. Regular data backup is also going to be required so prepare to find a solution to that, even if it just means your home machine connects once and week and downloads a backup. Having the filesystem go down the tube or everything get hacked is a terrible thing but, having it happen when you dont have a backup is a killer.
nothing in this post that dreamhost cant handle for 7 bucks a month.
The difference between a server and a desktop kernel is the way all those questions you get when running "make menuconfig" are answered.
A few important (on my opinion) differences are the way the scheduler is optimized (to throuput instead of lantency) and the default stack size. In old times the desktop kernel normaly missed SMP, but those days are gone now.
Rethinking email
A good tip to get started is using Centos and webmin (for managing the server). If you are going to host more than one site virtualmin is a great help also. Webmin also have a nice interface to edit the firewall rules (iptables). Make sure you do a minimal install and let virtualmin do the rest if you are using it.
Wanted to do that in caps, but shouting is considered gauche here even when appropriate.
Please, no encouraging webmin.
I mean, I suppose they may have completely re-written it in the last eight years since I last had to work with it, but I don't think so.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
An interesting (although completely wrong) viewpoint.
Nothing against you personally, but I find that people who spew party lines (such as "Ubuntu: an African word meaning (insert implication that user is retarded)") tend to have little or no experience with the distro itself, and are merely parroting information they picked up in some snarky forum in an attempt to appear to be somehow better than "the rest of the rabble".
That said, the Ubuntu forums are huge, bloated with reported issues because many desktop users (read: Windows-only users who wish to learn about their options) have been pointed at Ubuntu as an easy learning curve. On the other hand, how many of those problems go unsolved? The user base is large, but this means that solutions crop up almost as quickly as issues are brought to their attention.
A large amount of users engenders new potential issues that RTFM-shouting elitist assholes have no idea how to cope with, because only 6 or 7 people have managed to actually find and use their specific and precise (or home-rolled) distro of choice, so they have no idea how to support a larger user base, and are threatened if someone suggests there might be any issues whatsoever with their "perfect" platform.
In other news, when complaining that a specific solution is inappropriate, it is customary to offer a more appropriate solution; typically with supporting information as to why your preferred solution is better suited to a particular purpose.
Oh, and to bring you up-to-date: the distro flamewars died out several years ago. If you're going to troll, at least try to stay current and relevant.
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
its based on Debian so its 'standard' in case you want to expand or need help, and will setup a lamp server with just a few simple questions like what admin password you want. It does all the hard work for you.
It also installs GUI tools to manage the thing.
---- Booth was a patriot ----
I suppose I get too excited about things like webmin, and i haven't worked with it in something like eight years, but I'm going to warn you anyway.
Tools like webmin are just wrong in principle.
First, they expose way too much of the administration interface to the vagueries of ssl. (Thankfully, they usually at least give you that these days). You did notice the flap about the BEAST attack on chained block ciphers recently? (MSWindows tools also vulnerable, to the extent it's an issue.)
Don't confuse SSL with SSH, by the way.
Second, they hide the real tools from you. If you want to learn Linux/Unix tools, you don't want tools like webmin hiding the tools you want to learn from you.
Third, as many have said already, don't fear the command line. It really is your friend. Sure, the GUI tools show you the most used commands and options with a lot less excess information than the man pages. But you really want to learn to use the man pages, because sometimes the options you need aren't in the GUI interface. Searching the web is also necessary in many cases, whether you use the GUI stuff or not.
Well, I suppose I won't convince you.
Whether you use webmin and its ilk^H^H^H like or not, you really want at least one other machine for this project, for practice and backup.
If you do use the same machine for practice and backup, you probably want a detachable drive to keep the backup on. USB is okay, but don't try to just copy stuff onto VFAT or NTFS formatted USB drives. If you don't use a *nix format like ext3, you must at least pack up your archives with tar, so that permissions and stuff can be retained. ("man tar". And check the options for the ACLs if you use those.)
Practicing/designing on a machine that is not the live server is a good idea whatever OS you use, of course, but especially when you are learning a new OS/environment.
Which kind of brings me back to the command line. You are going to be doing remote work. You are going to be using ssh. You can tunnel an X session over ssh, but there's a kind of chicken-and-egg problem there, since you end up using command-line tools to set the tunnel up.
Don't fear the command line. Just get a practice server and make lots of mistakes on it. Problems solve themselves that way.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
Translation: "WAAAAAHHHH! I have nothing to add, but I HATE Ubuntu for no good reason, and I like to type poorly and swear! And I'm pissed-off because my mom doesn't have dinner ready yet. Sorry for being a rebel, like Pepsi drinkers, or Avril Lavigne. Ubuntu SUCKS, and I'm MAAAADDD!"
This is a hacked account, for which the owner can not be held responsible.
It takes some effort, sure, but you don't have to give out the root password with sudo. In fact, you can disable root logins with sudo.
Sure, it's a bit of a pain to be typing your admin user password every five minutes or whatever you set that to, and the real superusers are going to tend to "sudo sh" or such. But you can set up non-superusers with permission to do things like backups and, gasp, rebooting. And you can set them up so they can't easily type "sudo sh" and get root.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
Whatever you used, install AND CONFIGURE OSSEC.
http://www.ossec.net/
That way you have some kind of indication when the box gets hacked.
"Draco dormiens nunquam titillandus."
2500 users are "some of my friends"???
As someone who does this professionally, what you want to do is incredibly simple. Trust me in that you don't want to be doing maintenance and management of the hardware and OS yourself. Instead, just get a shared hosting account. It's cheap and will give you everything you need to do phpBB and MySQL. I'd recommend BlueHost for starters. They give you Plesk as the management tool (CLI available upon request) and it's only $6/month.
Once you grow beyond the capabilities of the shared hosting (not likely if this is truly for a group of friends) then you can switch over to Amazon's EC or another suitable cloud provider for the same tools, but the capability to scale your resources and manage the cost.
For what you've described, the flavor of Linux doesn't really matter at all. You'll save yourself a lot of headaches if you aren't the one responsible for the physical hardware and OS configuration.
I'm out of my mind right now, but feel free to leave a message.....
I may get flamed by the Ubuntu/Fedora crowd for this, but for servers I use and recommend Debian stable.
There are two major reasons for this: great support and things don't change unexpectedly. Because of its long release cycle you rarely see the latest and greatest versions of anything in the repos, but if anything mission-critical is needed these can be installed manually. Some recent python libraries or Firefox builds come to mind. See http://bugs.debian.org/release-critical/ for a graphical view of recent Debian releases.
The current Stable release ("Squeeze") meets your MySQL and PHP version requirements (5.1 and 5.3.3 respectively).
"Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
Free for the first year right now.
The paragraph in my above post that starts "As for firing up dd on the raw device" should have included "on a currently active system" for the rest of that paragraph to be valid and make sense.
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Turnkey Linux: http://www.turnkeylinux.org/ I know roughly nothing about linux and have used this to set up a few servers. It's based on ubuntu server and has a nice web-based management interface.
I have been using SME server for over 11 years in numerous environments and can highly recommend it. It is very easy to set up and maintain, has a very good support base and most importantly is really stable. It is based on CentOs, with a web configuration interface and hundreds of useful, pre-configured addons.
you can download it at http://www.contribs.org.
http://www.apachefriends.org/en/xampp-windows.html
If you want easy, quick, and simple, give Turnkey Linux a go, when I need a quick system up and running I tend to use one of these... then, prepare the "production" system afterwards. However, in a few cases I have ran these images as the production system with no problems.
http://www.turnkeylinux.org/lampstack
2500 friends ? do you know them all ? :P
With CentOS you get stability (Debian too, but *forget* Ubuntu) and friendly tools to help you configure your server. There are lots of recommendations for Virtualmin however I would discourage you from using this because it is full of vulnerabilities and does very little to educate you on how your server works. If you really want something like Virtualmin maybe look into an alernative like ISPconfig.
CentOS (and Debian) also both have mature and experienced communities who can help you. (Ubuntu community just suggests ugly hacks).
In CentOS (or any Red Hat based distro) you get the system-config-[blah] tools which give you friendly interfaces for the GUI, TUI and CLI and also I find the chkconfig tool useful (rcconf is similar to this in Debian). The command line takes all of half a day to learn and it is ofen the quickest and easiest way to get around and in my experience it avoids a *lot* of headaches that graphical/web based tools give you.
SELinux (blocks naughty behavior of programs) also comes with CentOS by default which is important for locking down your server. SELinux can be frustrating to learn however if you're only running a web stack you're rarely going to get into trouble with it (occasionally if you move files around their context can cause trouble in their new location) and when somebody exploits PHP or Apache it can really stop the spread of the damage.
My biggest piece of advice is to set up a few virtual machines and have a play. Make mistakes in tesing, not production. Also, if it smells like a dodgy way of doing things, it probably is.
Install virtualbox on whatever machine you have now, Linux Windows or Mac
Download the turn-key phpBB virtual machine from turnkeylinux.com here: http://www.turnkeylinux.org/phpbb
Add the downloaded virtual machine to virtualbox and you are ready to go.
Fedora is good for this if and only if one can deal with the 6 month system release cycle.
Used well, the cycle can help push the development of the site. But if you get under the wave, that cycle can get torrid.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
Part of learning the CLI is learning how to use man pages, including the apropos (or man -k) command.
Another part is learning to search the web, but that's true of the GUI stuff, too.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
heh.
bhcompy -- I'm kidding about openbsd as a real option at this point.
But when you get this project settled in a bit, take a look at it. Good place to practice CLI when you're ready, and learn basics about X11 when your ready for that. Fun times.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
Slashdot got it wrong. The easiest LAMP server to setup is not Ubuntu, its not SuSe and its not Debian. Its ClearOS. Its very easy for a noob to configure. Has a nice web browser based configuration panel and is piss easy to setup.
If the poster has no experience with administering Linux, Apache, PHP, and MySQL, what good does Webmin do? Webmin is only user friendly to those who know what they are doing already. There are no really good explanations for anything in Webmin, so they would all be confusing to a Newbie.
If you want to start with something that is pretty automated, check out the XAMPP project for Windows.
If you are planning on using LAMP (instead of WAMP), I would suggest just using some of the awesome tutorials out there. They will pretty much walk you through every step. If you use Ubuntu Server, either install Apache, PHP, and MySQL during the server install, or learn to use something simple like apt-get. The basic command is: "apt-get install apache2 php-5 mysql-server" and almost everything is configured for you. Or, if you want to use something like Drupal 6 for your forum, you could just issue the command "apt-get install drupal6" and all of the other stuff should be installed for you (I say should because I have never done it that way). If you want to stick with phpbb, just issue the command "apt-get install phpbb3" and it will be installed with all of the dependent programs.
Most of the tutorials will walk you through exactly what commands to issue. If you go to Linux.org you can take a basic tutorial on how to use the CLI. The Apache site has pretty good documentation for most things that you'll need to configure the Web server. If you're going to just put one site on the machine, the basic Apache server setup is already installed by Ubuntu. You just have to start placing your Web pages into /var/www/ and possibly configuring a few settings in your php.ini file at /etc/php5/apache2/php.ini to enlarge maximum file sizes, timeouts, etc. If you install phpmyadmin (apt-get install phpmyadmin), you can easily create the MySQL database and the database user and password needed for your installation.
When learning Linux, using the man pages and the "locate" command to find stuff is very helpful. Just remember to run the "updatedb" command to create or update the list of files and folders for the locate command. You can pretty much Google for anything you need help with, and you should be able to figure things out.
Or try using a hosting company with all this stuff already in place. Lots of them provide scripts that automate the basic install of everything. Once you get your feet wet, you can try installing it all from scratch, but that isn't really necessary at the beginning.
The best distro for LAMP would be one with a repository that keeps up with the latest stable Apache, MySQL & PHP. So instead of getting whatever versions happened to be current at the time of the distro release, you could actually regularly apply AMP bug fixes and security patches.
Unfortunately I don't know of such a repository for any distro. Maybe someone else does?
So if I understand you correctly you want to play around with Linux and think a 2500 user server is a nice playground ? Please mail me your CV, I'll make sure you never get hired by my employer...
Don't go it all on your own then. At the risk of sounding a bit like an advertisement, for the sake of brevity:
If you can read German, that's a host to be seen: fully documented configuration, minimal GUI, ssh account at one click without much of an appetite for personal information, avidly blogging webmaster, domains at just 5€ for registration and 50 cents extra/month.
They would appreciate a monthly 5-10€ contribution after the free trial month, but let you start as low as 1€ if you're on a budget.
Haven't found that kind of feature set lately (since hosting at French altern.org was lawyered out of existence more than a decade ago actually) at such a price point, let alone in English - is there any other host like this these days?
Those are your only rational choices. Either invest the time in learning Linux so you can take advantage of Linux, or invest the money in a Mac so you can take advantage of the Mac. If you have more time than money, use Linux; if you have more money than time, use a Mac. The only work you will have to do with the Mac is the actual writing of the code. There will not be any configuration to do at all.
http://www.clearfoundation.com/Software/overview.html
ClearOS: easy to use and configure, all with a nice web interface. Free and open source, commercial support if needed!
Ubuntu is easy to install and you can install a server edition with three-year "long term stable" support. Just remember to update system packages, just like using Windows Update, or you'll wind up cracked eventually.
Also make darn sure you update phpBB and whatever else you install at the PHP level. All software has security flaws that get discovered from time to time and if you don't keep them up to date getting hacked is a matter of when, not if. If you can install something from the package manager, do it, because that makes it easy to update it - less for you to fuss with. If you must install it manually add it to a checklist of things you update regularly.
What concerns me more is that it sounds like you're setting up a physical server and its connection to the Internet from scratch. Why? In the great majority of cases you'd be so much better off with VPS hosting from servergrove or rackspace or whoever. That gives you a completely rebootable, you-have-the-root-password virtual Linux machine with Ubuntu preinstalled and gets you completely out of the responsibility for maintaining its connection to the world or paying way too much for bandwidth.
It's possible this is a campus server of some kind, in which case it might make sense, especially if the bandwidth and power are "free" (already paid for anyway).
I have run ISPConfig for years under Fedora. HowToForge has many nice instruction sets for LAMP stacks and ISPConfig offers complete server admin including DNS, Mail, Apache, MySql, User and Account management, logging and more.
... a caveman could do it
https://help.ubuntu.com/community/ApacheMySQLPHP
O comon!!!! what the hell do I read /. any-more ? Not even one flame on how MySQL is being controlled by Oracle and you might as well go with M$ if you ain't gonna go proper and use postgres .... shame on all of you
First, let me just say that since you're in a Windows environment, if you just want to play around with LAMP the easiest way to get started is to grab a LAMP appliance for vmware player and run it.
That out of the way, whether you're using a physical machine or not, I think you should run Debian. You will be able to find lots of help, because the solutions for Ubuntu will apply to your system as well (For problems with the LAMP stack, anyway.) But meanwhile, you will have a relatively simple system; I'm not especially pleased with some of the added complexity in recent versions of Debian, but you are unlikely to have to mess with any of it for the scope of your problem anyway.
There *is* merit to running an Ubuntu server, mostly that sometimes you find great stuff in PPAs and you don't have to go building it yourself. Sometimes, getting software to build is an epic journey. When I have found it to be so, I have sometimes packaged it and put it up on my PPA. Some of those things are now part of Ubuntu, although I don't think they bothered to use the packages I produced. There is a great tendency for people to reinvent the wheel over at Ubuntu so that they can get all the credit. Cue the violins.
Problem is, when you install Ubuntu you get a lot of junk. So I install Ubuntu with debootstrap, from a functioning Linux system. You probably don't want to figure that out right now. So just install debian and follow along. Once you log in you can just install the packages. An article from 1996 described the process with php4, but you could use its advice on finding packages to find the ones you're looking for. (I don't have any debian systems booted right now, sorry.)
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
http://www.turnkeylinux.org/
I just used their LAMP server to setup a DAViCal but they have many to choose from. Excellent site.
http://www.turnkeylinux.org/
The first thing you need to know about Linux is that it aint two things: DOS or Windows. You will not get very far trying to treat it like either. I am familiar with both systems since I cut my teeth on DOS 5 and grew up on windows and eventually migrated my whole operation over to Linux. In my experience, if you can admin a Windows server then Linux is a breeze. To put it in math terms, administering a Windows shop is like doing trig, where a Linux server is more akin to addition and subtraction with the occasional multiplication problem. Windows is actually a bigger admin headache, and the GUIS tend to slow me down, add complexity and I'll tell you a dirty little secret, they tend to break, even in Linux. The other side of that coin though is if you're a Windows guru, why not set up a WAMP server instead of a LAMP server? K.I.S.S. and go with what you know.
I think the simplest server from every standpoint is the least complex one. I recommend a pure(er) system that will allow you to do a base install and then add just the packages you want, or a system with a LAMP option during the installation. As far as staying away from the CLI... That's fine if you can spare the overhead on the GUI. For server configuration and administration all you will be doing from the CLI is opening and either viewing or editing files and running the occasional auditing or monitoring program (top, htop, etc) and you don't need a degree to open and edit files or run programs. I also think you need to know what configuration files you need to alter to configure the server, you can do that configuration work through something like gedit (gui) or nano (cli). A GUI configurator that doesn't make it clear what you are altering and where it is located is no good. You need to know where the files are and how to get to them from the CLI and you need backups of all of those files and you need to know where to restore those backups to. Either way the amount of CLI interaction does not change, nor does the stuff you need to know. Based on all of this I would recommend Debian. The only "complicated" thing about Debian versus many other flavors of Linux is the install, and if you can install Windows then by golly you can install Debian. Install the base system and add the AMP packages, or do a LAMP install.Fedora and Redhat would probably also fit the bill too. Ubuntu is ok but I find it extremely unfriendly and restrictive. Debian is my personal and professional choice for any and every possible implementation. Flexibility is what makes Debian Debian. Frankly though, if I was in your shoes I would go with WAMP. It doesn't pay to build a production server on technologies you are not comfortable with.
Any recommended good Books & Resources?
Use Xampp or any turnkey local solution for starters and testing. From there i recommend ClearOs ( http://www.clearfoundation.com/ ) to run and experiment. If you need an even easier solution i'd say you go for hosted. There are tons of good virtual server or reseller deals if you want to have some freedom but even easier is a plain webhosting account. Still you should be prepared to do a lot of research and read some forums.
I'm running CentOS on my workstation at work (and at home), and 90% of our close-to-200 servers and workstations are, also. We're slowly rolling out 6.0 (and waiting for 6.1), but I just checked, and I think everyone has mysql 5.x, and CentOS 6 also has php 5.3.2-6 (spare me the "that's soooo ooooollllld", kiddies). It's *solid* (exactly equivalent to RHEL) - you're not going to waste time debugging the o/s, and I've almost *never* had an update that broke anything.
mark
PICK ?!?
I love PICK DB
Ok, lets address the elephant in the room. It sounds like you want to point and click your way to the perfect LAMP setup, and even though there a lot of decent GUI overlays out there, it just aint gonna happen for you. Linux administration philosophy tends to be very minimal. We run as few services as we possibly can, and then try to find ways to trim the remaining services as much as possible. Linux and the tools for it are built by those of us who use it and since we tend to use the command line... Based on that, there is no room for a GUI on a Linux based server, we just don't use them. Therefore, you can expect that even with the best and most complete GUI tools, your going to drop to the command line anyway for most administration tasks. Linux development is not moving away from the command line, this isn't a DOS -> Windows scenario. The command line is not a low tech option that we are trying to move away from so if you are going to administer Linux servers then you are going to be seeing a lot of black and white for at least the foreseeable future and probably well beyond.
The command line is light years faster, easier and more powerful than any GUI anyhow, let me give you an example done both ways and you tell me which is better.
Command line: /location/where/you/want/the/file
$/# cd
$/# touch file.txt
$/# echo "Now you can start editing the file with whatever editor you like, or you can do it directly from the command line"
Alternatively you could have created a file in an editor then saved it but this is just an example and many of us tend to create blanks first.
GUI (standard gnome under debian squeeze):
click applications -> System Tools -> File Browser -> browse to the location where you want the file created assuming you have the rights to do so -> right click -> Create Document -> empty file -> right click on the empty file -> rename -> erase what is there -> type in "file.txt" -> and finally, you have a file to edit. note that you need to launch additional software to edit this file, you can not edit it directly from the GUI.
Again, you could have created a file in an editor then saved it but this is just an example and many of us tend to create blanks first.
So for painfully clear and obvious reasons most of us don't fool with GUI's too much. Even on this laptop (debian squeeze) I typically launch my programs from the run prompt or from the CLI even though I use gnome. And I have not mentioned the overhead the GUI requires. Nearly 2 gig on disk and a negligible amount of ram on a home workstation, but on a server every bit is precious.
The bottom line is that if you require point and click then you require Windows especially for server administration.
How absolutely rigid and negative. I can tell you learned a lot by sticking your nose into really bad books. I couldn't disagree with you more. There is absolutely no difference, if you do it right, between setting up a LAMP server for 25 250, 2,500, or 250,000 users. You always treat every web server as if it is touching the internet and the users are undomesticated and untrustworthy, unless you're lazy, in which case I fire you and replace you with an ambitious 20 yr old hacker who has never read any books, has no degrees or certifications and has learned practically, by doing, and I pay that greenhorn at least three times as much as I paid you for your dusty, cobweb ridden outdated ideas. What changes with a good setup, by and large, is hardware, you just scale up. The whole idea behind LAMP and the beauty of it is that it is scalable. Your security practices and server configurations are the same though. Sure, you need to add a few things as you grow, a webcache like varnish maybe and memcached, but I install those on any web server with and expectation of 50 or more concurrent users. You make 2,500 users sound like a large setup, I got new for ya, it aint, not by a long shot. I administer systems with between 30,000 and 75,000 concurrent users, and they are simple LAMP servers. LAMP is perfect for a newbie, especially when they know they can expect 2,500 users +/-. How sweet it is to actually know how many people will be accessing your web server and apparently who they are, what a luxury. Besides, he isn't a newbie, he is an experienced Windows admin and 99% of administration is ADMINISTRATION the same basic best practices and rules apply regardless of the platform. He wants to setup a BB. Whether you drive a stick or an automatic the speed limit is still 55 and a stop sign is still a stop sign, so stop trying to make the differences seem so dramatic. I wouldn't want someone so ambitious to work for my company either, by the way, because they might take my job. You have good reason to be concerned. Linux is a playground and LAMP, along with everything else Linux can do is a toy and those of us who treat it that way, Mark Zuckerberg, Kevin Rose, etc.., we are successful. I made my fortune by treating it that way and encouraging my employees to HACK and play with the tools. Please let me know who your employer is, I'll make sure to buy them and fire you and hire him to replace you.
I've set up a few LAMP/WAMP stacks recently. I began with almost no web experience (other than writing HTML back in high school), but a fairly broad knowledge of nix/win administration. I recommend starting with some small project. I began with out of the box blogs, forums, intranets, etc. You can re-purpose some POS from your closet, or try some of the virtual environments. I started with WAMP since I thought it would be easier, but after tinkering around, I actually prefer linux. I've also found MySQL easy and adequate for just about everything I've had to do. Play around and you'll find your preferences along the way. Just sharpen your google-fu and dive right in on something. I've actually found it quite surprising how incredibly easy it was to set up some projects, and how little kinks can turn a simple project into a mess. Also, look into hosting solutions. Most come with SQL and many of your PHP apps come with fairly idiot-proof installers.
I agree Virtualmin GPL or Virtualmin Pro.
Fantastic community support as well as professional support from the Developers.
I started on Webmin years ago. It was so helpful I finally bought Virtualmin Pro 50 server license.
I use the latest Ubuntu 11.04 as my daily system however on a server I use Centos because of it's Long Term Support (LTS).
Ubuntu 10.04 (LTS) is a rock solid server as well.
I just prefer Centos and Scientific Linux because they are based on Redhat Enterprise binaries and I grew up on Redhat so it is just easier for me.
INSTALL a Linux DESKTOP install.
Don't do the server install because the Virtualmin install.sh script downloads, installs and configures everything using the Virtualmin repositories.
You can do it with a minimal install that gives you only a shell to start but I like to start with a minimal Desktop install for convenience.
Go to http://www.webmin.com/vinstall.html [webmin.com] and download the install.sh script.
bring up the shell terminal and execute the 2 commands they give on the above page
I just tested it yesterday on the new Centos6 and it did the setup flawlessly.
After it completes the install you'll be able to examine how they setup everything in the server.
You may want to test it on Scientific Linux as it is based on Redhat Enterprise.
http://www.scientificlinux.org/ [scientificlinux.org]
I use ubuntu 11.04 on my desktop but I use Centos5.3 on my servers and am now in the process of upgrading to Scientific Linux6 which in essence is Centos6 or Redhat Enterprise6
There is a debate about Centos kind of dragging their feet and many are switching to Scientific Linux since it is looking to be aggressively maintained.
Read this post.
http://www.virtualmin.com/node/17463#comment-80722 [virtualmin.com]
For some reason the post link in the drupal forums would not link to the one I wanted however if you search the above link thread for Posted: Wed, 2011-05-04 14:51
and read from there, it may cause you to try scientific Linux.
You have to be root for the script to install the system. Centos already has the Root user enabled.
In Ubuntu, you'll need to temporarily enable the root user, then disable it after Virtualmin installs.
I suggest Centos6 for your first test because I know the install.sh script worked OK on it. I'll assume it will work in Scientific Linux since the binaries are the same as Centos or Redhat Enterprise.
I think, Joe at Virtualmin mentioned they are going to switch from Centos to Scientific Linux for their servers.
http://www.virtualmin.com/os-support [virtualmin.com]
Virtualmin GPL Supported Systems
The automated installation script supports the following operating systems:
CentOS 5 and 6 on i386 and x86_64
RHEL 5 and 6 on i386 and x86_64
Scientific Linux 6 on i386 and x86_64
Debian 5.0 and 6.0 on i386 and amd64
Ubuntu 8.04 LTS and 10.04 LTS on i386 and amd64
All Virtualmin GPL supported systems are considered "Grade A" and provide an excellent platform for virtual hosting
* * * *
Here is a little background to try and convince you to give Virtualmin a try.
You're in for a wild ride being new to LAMP servers. Running a Linux server is an addictive experience. A blessing and a curse ;-)
In 2002 on Redhat 7.3. I hired a friend, Lee Bertagnolli, to help me get my first server going. He setup the server manually.
I couldn't follow all he did at the time. I was an ultra Linux noob
I would strongly suggest turnkeylinux as a great preconfigured LAMP server that is based upon the current LTS version of ubuntu. it's easy to set up and use, features webmin for general administration which is pretty nice, and it's super easy to roll out... I often use this for virtual machine or vps web hosting accounts due to it's easy setup and preconfigured LAMP environment... there's not a whole lot to go wrong, and it's really easy to use.
May the coffee god Smile upon you!
I guess I've read his comments differenty than you.
The way I see it, he wants a quick startup now, and he wants to study the real stuff, explicitly including the cli, later. That's why I made the comments about openbsd -- as something to do later. And you can't deny that openbsd is a good way to learn who to work things from the cli.
Yeah, there are differences between the several BSDs and the several Linux distros, but the differences are instructive. (BTW, I don't recall having suggested openbsd for security purposes in this article. I do remember having mentioned it in connection with learning the cli.)
Hobby project? 2500 users, whether that's 2500 users who will be using it every day or 2500 users that may use it once a month or less, is not a hobby project. 2500 may not be 25000, but it's still enough users to attract attention from people interested in using the server for their own purposes.
Ten users is a hobby project. That's also a good number to target while he's bringing up the system prototype, which he should do on one box, before he brings up the production system on another.
I'm not talking paranoia. If I were talking paranoia, I'd be suggesting openbsd on custom firewalls and separate servers for each function, at minimum.
But with 2500 users, he does need a dev function and a backup function, and he does need to put a security plan in place, and webmin is not a security plan.
Once he has experience, maybe he can wing it, but not while he's trying to find his way around.
Your anecdotes? Maybe you've been lucky. Maybe you only think you have been lucky. I have no way to know which from here.
Maybe you've been using webmin long enough to get away with what you are bragging about. The current version of webmin may be securable if you know what you are doing. But if you don't realize you are bragging, that's a problem, too.
Uhm, using your own certs can cover some problems, but it doesn't address the primary issues.
I don't want to be too obnoxious, but you do have a schedule to go back and check all those servers you have deployed periodically, right? Some sort of canary or tripwire in place, checksums of some sort on the executables exposed to the web, etc.?
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
Debian Stable works amazingly as a server. Just select what server software you need during the install (an SSH server, a web server, a PostGreSQL server, etc.) along with the Desktop GUI.