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.
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.
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
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.
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!
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
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
Just go with the crowd.
turnkeylinux.org has great LAMP appliances, along with other loadable VMs. Free.
---- Teach Peace. It's Cheaper Than War.
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
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.
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.
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.
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.
Maybe MySql "just works", but pgsql "works properly"
Sent from my ASR33 using ASCII
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.
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.
Sorry, years of experience trumps statements by random /. posters. Years of running large line-of-business applications has clearly taught me that admin of pgsql is a pain in the ass, and the way many features are implemented in MySQL is simply more straightforward and easier to support. Nor have I ever witnessed any of the mysterious "doesn't do it right" nonsense. MySQL just works. It works in a way that is clearly designed to make administering it as easy as possible. PGSQL OTOH seems to have some other agenda. Its command line client is horrendous for instance. It is overly difficult to move databases around, restore rarely manages to recreate exactly what you had before, etc. For every hour I've spent running around doing a task on MySQL I spend 3 doing equally routine tasks using PGSQL. There's just no comparison. PGSQL is a perfectly fine database engine, it is simply not better than MySQL in any definable way that translates to an actual advantage in production. There will be cases where one will provide some little handy feature that is easier to use than the other, or perform some specific type of work more easily or more quickly, but that cuts both ways IME. Hands down I'll pick MySQL by default. If I have to use PGSQL for some specific reason, well, OK, so be it, I can live with that, but I'd usually prefer not to.
"Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
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.
(1) The latest Ubuntu LTS
(2) Webmin and Virtualmin.
That's It! Nuff said.
Loban Amaan Rahman ==> Anagram of ==> Aha! An Abnormal Man!
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.
That looks pretty amazing, I was thinking about setting up my own VM for my webserver soon, and that sounds like it has some really cool infrastructure for management/backups - thanks!
which is totally what she said
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?
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
PostgreSQL might have been better engineered, but running, and maintaining, a MySQL installation is a lot easier; when working at an ISP I maintained dozens of both and always preferred MySQL. Restoring a backup? MySQL is a LOT easier and needs less work. Making a special backup? MySQL is a lot easier. Adding a user and granting rights? I prefer MySQL's way of doing. (I'm assuming all commandline here... maybe if you used a GUI things would work out differently but he's talking server and LAMP, which in my book means no GUI)
Only when you need the extra features of PostgreSQL you should consider it, but for a simple webbased forum package it's very much overkill and only gives more maintenance grief, specially as the original poster doesn't appear to have much experience with either system and the PostgreSQL learning curve is a los sharper.
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
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!
Oh, you know... Postgres was always yelling at him for stupid little things like passing invalid dates or breaking constraints and stuff.
By switching to mysql, he got all those errors, warnings, and notices to go away, with the simple little tradeoff having date fields full of 0000-00-00
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.
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
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
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.
Also excellent at having a gay-sounding name.
Blame the lawyers and the French . Mandrake sounded very cool, but a lawsuit was threatened . Then they bought Connectiva. They should have bought a better name.
But LibreOffice makes them look smart by comparison.
"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 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
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.
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.
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.'"
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
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.