PHP-5.4 is here

Posted in PHP by

Things certainly move fast on the web. Just a few weeks ago we described our PHP setup on this blog and we proudly explained that we had both PHP 5.2 and 5.3 installed on our servers. But now that blog post is obsolete because PHP 5.4 was just released!
Fortunately we’ve already installed PHP 5.4 on all of our servers, just days after it was released:

[remi@web300 ~]# php54 -v
PHP 5.4.0 (cli) (built: Mar  2 2012 06:58:40)

We’ve also added a new Static/CGI/PHP-5.4 to our control panel for the early adopters.
If you want to switch an existing PHP app to PHP-5.4 you can do so by putting this in a .htaccess file:

<FilesMatch .php$>
    SetHandler php54-cgi

Amongst many other improvements PHP-5.4 is faster and uses less memory and it provides a new feature called Traits which enables developers to reuse code.
More details are available in the ChangeLog.


Nine years already!

Posted in General by

Nine years ago we registered which later became WebFaction.
Since the beginning we focused on building solid foundations: fast and stable servers, great customer service and up-to-date software. A lot has happened in 9 years but we’re proud to say that the foundations are still there.

Things are definitely speeding up though and in the last year alone we’ve almost doubled in size and we’ve added more features in one year than in the previous several years: we extended into Europe and then Asia, we started rolling out a new control panel, we built a new server setup with an innovative neighbor-protection system, we provided two massive upgrades on our base hosting plan (first diskspace and then memory) and on our managed dedicated servers, we added a 1h account setup guarantee and we added a gazillion new tools and versions to our one-click installer and our server setup.

But most importantly we hope that we have sustainably kept our customers happy and we want to thank all of you for the nice comments on Twitter, on your websites and in support tickets.

To celebrate our 9-year birthday we are offering a $50 discount on all new signups (minimum one-year pre-payment). Existing customers can also get the discount if they buy extra plans for their account. To receive the discount just use the promo code “9YEARS” when you signup at or mention “9YEARS” when you request an upgrade in the control panel (under Account->Upgrade/Downgrade). This code is valid until February 12th 2012 at midnight UTC.

Here is to the next 9 years!


Asia, here we come!

Posted in General by

A few months ago we started offering servers in Europe. Today we’re happy to announce that we’re now offering servers in Asia too (in Singapore to be exact).

Most hosting providers charge an extra fee for hosting in Asia but we’ve decided to charge the same price as in the US and in Europe.

If your websites’ visitors are mostly in Asia then you might want to consider putting your sites on our Singapore servers rather than our American or European servers to make your sites slightly more responsive for these visitors.

When you sign up for an account you can now choose between USA, Europe or Asia for the server location (note that the Singapore location is not available for our managed dedicated servers just yet).

If you’re an existing customer you can also go to Account->migrate in the panel and request a migration of your account to a Singapore server. You can also go to Account->Upgrade/downgrade in the panel and order an extra plan in Singapore if you want one (you can have multiple plans in multiple locations from the same account).


Our biggest holiday present yet: app memory quota increased to 256MB for everyone

Posted in General by

Six months ago we started using much beefier servers for our shared hosting plans. We also started upgrading the hardware on our existing servers. We did that because we wanted to give you as much memory for your apps as possible without overselling the RAM and overloading the servers.

Today we’re happy to announce that our shared hosting plan has been upgraded from 80MB of app memory to 256MB! This applies not only to new customers but to all existing accounts as well. You can also buy an upgrade to 512MB for an extra $7/month*.

Keeping in mind that the memory used by the operating system, the MySql and Postgresql database servers and the frontend web server don’t count towards your app memory usage (unlike on a VPS) it should be plenty for most Django, Rails, PHP and other apps you might want to run.

If your apps outgrow 512MB of memory then you can either spread them across multiple servers or upgrade to one of our managed dedicated servers.

Here is to our biggest holiday present yet!

*The upgrade from 256MB to 512MB is only available on our newer servers (Web300 and over and all servers in Amsterdam) and the following servers: Web4, Web27, Web28, Web70, Web114, Web129, Web174, Web184, Web200 and Web213. This is because the other servers don’t have enough RAM. If you’re on another server and want 512MB of memory you can request a migration from the control panel (Account->Server migration).
Update: The list of servers where you can upgrade to 512MB is now: Web300 and over, Web4, Web27, Web28, Web70, Web114, Web129, Web174, Web182, Web200, Web208, Web209, Web210, Web211, Web213, Web216, Web217, Web218, Web223, Web224, Web225, Web226.


Server Name Indication enabled on all servers

Posted in Server setup by

A few weeks ago we enabled Server Name Indication (SNI) on all of our servers.

SNI allows you to use an SSL certificate for your secure site (https) without having to buy a dedicated IP address.

It works by having the browser send the hostname as part of the initial handshake so the webserver knows which certificate to use even if multiple certificates are used on the same IP address.

Note however that while SNI is supported by most modern browser some older browsers (notably all versions of Internet Explorer on Windows XP) don’t support it. If you choose to use SNI and someone visits your secure site with a browser that doesn’t support SNI they will receive our default certificate and their browser will display a certificate-mismatch warning.


1h account activation

Posted in General by

We’re pleased to announce that starting today we’re guaranteeing a 1h account activation time for all new signups*. This guarantee also applies to upgrade/downgrade requests from the control panel (except dedicated IP addresses). This will allow you to rapidly scale your apps up or down as you need.

* A small number of payments get flagged for manual fraud checks. In that case the 1h starts once the payment has cleared the checks. If for some reason we cannot activate the account within 1h then the first month is free.


Fair shared hosting

Posted in Server setup by

Traditional shared hosting has always suffered from the “bad neighbor problem”: your site runs fine until another user on the machine decides to encode 20 video files and all of the sudden your site is very sluggish.

That problem is now history on our centos6 servers thanks to a relatively unknown feature recently added to the linux kernel: cgroups.

cgroups allow admins to define various groups and various rules for which processes should go into which groups. Each group can then be allocated various resources or resource priorities relative to other groups.

Here is how cgroups get rid of the traditional “bad neighbor problem” in shared hosting:


  • Imagine a CPU-intensive script called “cpu-eater”
  • Imagine that user A runs 3 instances of the script (process 1, 2 and 3) and users B and C each run one instance of that script (process 4 and 5)
  • Without cgroups each of these 5 processes gets allocated the same amount of CPU (20% each if all the CPU power is available) which means that user A gets 60% in total and user B and C get 20% each. User A is being a bad neighbor and that’s not fair to users B and C.
  • With cgroups we can configure it so that each user gets their own cgroup and all of a user’s processes go in that user’s cgroup. We then configure it so that all cgroups have the same CPU priority. This means that users A, B and C each get 33.3% of the CPU to run their “cpu-eater” scripts which is fair.

Note that cgroups keep all the CPU power available to processes who want it: if there are only two CPU-intensive processes on the machine they’ll get 50% CPU each. If there is only one CPU-intensive process on the machine it’ll get 100% CPU.

Also, this example mentions CPU usage but cgroups can do the same for disk IOs and network IOs.

We’ve been running cgroups on all of our Centos6 servers for a few months and we’ve seen great results! No longer can a single user affect all other users on the machine.


New managed dedicated servers available

Posted in Managed dedicated servers by

We’ve just done a massive upgrade on our dedicated server range. The new specs/prices are:

  • Dedicated 1: $250/mo, Dual-core 2.8Ghz CPU, 4GB of RAM, 2 x 500GB disks in a RAID-1, 2TB of bandwidth
  • Dedicated 2: $350/mo, Quad-core 2.6Ghz CPU, 8GB of RAM, 2 x 500GB disks in a RAID-1, 4TB of bandwidth
  • Dedicated 3: $500/mo, Two Quad-core 2.3Ghz CPUs, 16GB of RAM, 4 x 1TB disks in a RAID-10, 6TB of bandwidth

We’ve also made the following improvements:

  • No more setup fees
  • 1h server activation*
  • Available in both the US and in Europe (Amsterdam)
  • Centos6-64bit on all new servers
  • If you have a shared account with us we can migrate it for you to a dedicated server**

Our managed dedicated servers are perfect if you want the power of our server setup and control panel on your own server without the hassle of setting it up and maintaining it. Here is what you get with our managed dedicated servers:

  • We setup the server just like our shared servers, with Centos6-64bit plus hundreds of our own packages that don’t come with Centos6
  • You have access to our control panel for easy app installation, site configuration, email management etc.
  • We apply frequent security patches for you to keep the server secure at all times
  • We backup your data to remote servers every day
  • We monitor your server availability from multiple points around the globe and handle alerts within minutes
  • Your server runs “bare metal” (no virtualization layer) so you have access to all the server’s power

If you’re interested you can view the configurations and sign-up at
If you’re an existing customer you can order a dedicated server by going to “Account -> Upgrade / Downgrade” in the control panel.

* The 1h activation period starts once your payment has cleared our fraud checks. If for some reason we are unable to provision the server within 1h we will email you immediately and will give you the option to either get a $50 refund as compensation or to cancel the order and get a full immediate refund.

** If your shared account is on a Centos-5-32bit server there may be post-migrations steps which you will have to do yourself. See this page for more information.


New server setup: Centos-6-64bit, MySql-5.5 and Postgresql-9.1

Posted in Server setup by

A few weeks ago we quietly started using a new setup for our new servers based on Centos-6-64bit. Apart from the new Centos version and the new architecture the main difference is that they run the latest MySql and Postgresql versions: MySql-5.5 and Postgresql-9.1.

If you would like to migrate your account to a Centos-6 server you can do so by going to “Account -> Server migration” in the control panel. There you will have the option to either migrate the data yourself (see this page for the procedure) or ask us to do it for you.

Regardless of the migration method that you choose be aware that in many cases you will need to tweak your apps in order for them to work on Centos-6-64bit:

  • Apps that use only a scripting language such as pure-PHP apps (WordPress/Drupal/etc.), pure Python apps, pure Ruby apps etc. usually work without any modification.
  • Anything that is compiled will most likely need to be re-compiled or replaced with Centos-6/64bit versions of the binaries. For instance Django apps will need to have the Apache binary and its modules replaced. See this page for details on how to migrate Django, Rails and Trac apps.

New email management interface

Posted in Control panel by

We’ve been working hard on making our control panel easier to use and today we’ve released a new email management interface.
The new interface allows you to manage your emails from a single screen, even if you need to create new domains and mailboxes.
You can save your emails to local mailboxes, forward them to other email addresses, set up an autoresponder or send your emails to a script written by you for automated processing.
A video speaks a thousand pictures so here is how you create an email address (including a new domain and mailbox) in a few clicks with the new interface:

As a reminder the control panel isn’t the only way to manage your email addresses. Our API lets you automate the process and if you have tons of email addresses you’ll be thankful for it!

We’d love to hear your feedback or suggestions for improvements so let us know in the comments or using the “Feedback” button in the panel.