We're wanting to be able to offer students a basic web development environment for anyone who's interested, but I'm having trouble finding a good solution for something like this.
We currently have an old Windows Server machine that hosts outdated versions of PHP and MySQL, but are looking to provide a higher level of service. I suppose ideally, I'd want the system to:
- Run PHP (more?).
- Offer MySQL databases.
- FTP (and/or SFTP) access.
- Included automated account creation/management ability (SSO, API).
Also, preferably:
- Hosted and managed off-site.
- No maintenance required.
- Latest versions always available.
We've recently switched to Google Apps and feel like we'd prefer something like a "GoDaddy Apps" model. I could be wrong, though. What are other colleges / universities doing to address this need?
We've deployed a private cloud environment to address this sort of use case. It is neither hosted or managed off-site, but in practice it's largely hands-off for us once deployed.
We use CentOS as our underlying OS, and we rely on the native package management system to keep everything up-to-date. We maintain our own local repositories for things that aren't available via CentOS or EPEL.
We use Puppet to define different configuration profiles (e.g., "webserver", "database server", "software development host", etc).
We use OpenNebula as our cloud management tool, with a thin set of shell scripts wrapping the native tools to make it easy for students to deploy and destroy virtual machine instances using our defined configuration profiles.
We don't bother with "accounts" as such in most situations. We configure a static user on the vm instances (username "local") and push ssh keys to the vm instance when it gets deployed. All student access to the system is via these ssh keys. We grant privileged access via sudo for those situations in which it is necessary.
I think the Hatsize people provide the kind of thing you're looking for. Not sure about all your requirements (or budget).
While not for students, we have a HostGator reseller account, which allows us to divy up our top-level quotas (bandwidth and disk space) among our IT services clients.
Since each of these clients have very small sites requiring a single MySQL database and PHP for scripting, I created a "basic plan" with one MySQL database and one GB of storage, and we've been able to setup about 25 sub-accounts with full CPanel access for each client; we're at about 60% of our allotted bandwidth/storage every month. Best part, our monthly HostGator bill is about 45 USD.
Along with the CPanel, creating an account is very simple: the same username and password by default are used for the FTP account and the PHPMySQLAdmin, all very common (and useful) things for students to learn to use as most shared hosting offers that. There is shell access at an additional cost; same with SSL certificates. DNS Management is built-in, so if the students need to management their DNS zones (or if you want to setup a wildcard domain and manage it yourself i.e. *.myschool.com and then somestudent.myschool.com for each student).
Not the greatest performing servers (as with most shared hosting) but I've never had a client complain and I'm assuming these students aren't building the next Twitter at your school either, so it should be fine.