darknite
By:
darknite

Recommended droplet size for wordpress and Joomla combo

April 21, 2017 1.3k views
Apache MySQL PostgreSQL PHP Python CentOS

Hi guys, can you tell me how much System requirments I need to run WordPress, Joomla and do occasional run php and python webpages on...

Let me give you a bit of context..

I want to learn how to fully customize wp and joomla but also learn php and django from the ground up.. I am wondering what would be a reasonable size droplet to use for now.. I expect at most no more than 5 people connecting at a time on the site.. mostly it will be me just checking edits and so forth.. tweaking and experimenting...

Reason I ask this is because after 7 days of headaches with zero experience of ssh, linux, commands like systemctl start httpd, ssh keys and so forth I finally thought I was going somewhere had mariandb, phpmyadmin, httpd, sftp, wordpress running but when I tried installing pureftpd I think it also installed postgresql and mariandb crushed and log said something about not being enough resources. looking at monitoring tools on DigitalOcean I saw the charts spike from 60% to 100% right at the same time too..

being the rookie I am I deleted the droplet instead of attempting to remove postgresql incase it was the reason marian would not start. I forgot what I was installing but I remember it mentioning how postgresql eats up more resources than mysql.. I think it was virtualmin..

Its been a lot of try and error but I have learnt quite alot thanks to the community guides and tutorials and I am grateful for them and thanks in advance for any recommendations.

1 comment
  • While this setup can work on a 512MB, with a LEMP stack, it's best if you pick the 1 GB of RAM model, because that one is better suited to run MySQL/MariaDB (pretty high ram usage).

6 Answers
iteagle03 April 21, 2017
Accepted Answer

It would be nice to know what size droplet you currently are working with. I'm going to guess a 512 MB droplet based on the challenges you're encountering. My experience with a LAMP stack is that 1 GB helps you get by with the common background services (httpd and MariaDB/MySQL) involved.

Wordpress's RAM requirements is deeply dependent on the plug-ins you will have running on your site. Bare metal you can get away with 512 MB but with more plug-ins 1 GB is preferred.

I think with Joomla you can use it bare metal with 512 MB of RAM. More plug-ins and extensions will likely require more RAM.

One thing you didn't cover was expected volume these two apps will create on your server. Higher expected volumes will require more compute resources (CPU and RAM).

Its 512mb
with volume I assume you mean like users and traffic ? if so it will mostly be me only.. and maybe sometimes 1 to 4 people max at a time minus robots and crawlers.

when you say 512 on Joomla and wordpress 512 does that account for having both of them or both would need 1gig?

I am willing to upgrade it later to more than 1gig ram have a budget and its still very experimental..

But I do eventually am planning to stick with 1, need both Joomla and Wordpress for just a few days at a time demonstration purposes and might keep doing that while im learning them both at the end I will want to keep one then and work on learning css, php, html5, python and django.

@darknite

If you're running database-driven websites, I'd start with 1GB of RAM -- even if traffic is minimal. That should give you a little breathing room to work on your projects without any issues.

While you can run LAMP and LEMP Stacks on 512MB of RAM, you need to know how to tweak and tune the configurations to work in such a low-resource environment. Apache and MySQL can take up quite a bit of RAM on their own, which makes 512MB dwindle down to nearly nothing relatively quick.

Okay. thx guys for the answers.

offtopic : now I stumbled upon NGinx ( When I googled what LEMP is) and according to one test it takes up way less RAM and system resources I wonder how true that is..\

where is the password when I create a new droplet, each time I have to do password reset because my account password never works on new droplets..

and when I tried to update Wordpress in the AdminCP and entered the root SFTP details that works on FileZilla (username: root and my account password) it didn't work.

  • Hi @darknite

    Nginx uses less resources than Apache, and both @jtittle and I would probably recommend that above Apache.

    When you create a new droplet, it sends a password to your registered email account. Unless you have chosen to create the droplet with SSH key, then you have to use the key to access the droplet.
    It is not the same password as for the DigitalOcean control panel - that is a security precaution.

    My guess is that you have problems with the SFTP because of the previous mentioned password security.

    A good rule: Never ever use the same password more than once.
    Use a password manager to keep track of passwords, and then have a unique password for your email, bank, DigitalOcean, droplet, WordPress and so on. Never re-use passwords - generate long, strong passwords and have the password manager remember them for you.

    @jtittle I've never used AdminCP - do you know if that could be the problem with SFTP?

  • @darknite

    In regards to the root password for the Droplet, it depends on how you deployed.

    If you didn't deploy with an SSH key, you'll receive an e-mail with a root password (or, at least, you should have).

    If you did deploy with an SSH key, you won't receive a root password and will need to login using said key using Terminal (MacOS) or PuTTy (Windows/Linux).

    ...

    As for SFTP, it really depends on how you've setup your server. If the directories and files are not owned by the user that either the web server or PHP process is running as, you won't have the permissions needed to upload or modify files from the web.

@darknite

@hansen would be right on the mark -- my full recommendation goes to NGINX over Apache in more than 99.99% of the cases I work with. This one would be no different.

NGINX does indeed use less RAM than Apache in both high and low-traffic scenarios as it doesn't do dynamic configuration processing. You have to reload or restart NGINX anytime changes are made.

NGINX also "outsources" requests to PHP-FPM using FastCGI (a proxy of sorts), instead of building in a module like Apache does (i.e. mod_php).

At the end of the day, NGINX simply takes a request and pushes it somewhere else, which is why it can handle more traffic than Apache in most all scenarios, and do it with fewer resources. Apache handles things a little differently, builds modules in to the configuration, etc -- that all equates to a lot more resources being used for, in my experience, sub-par performance.

...

For example, with Apache there's a file called .htaccess, which is what WordPress uses to handle the permalink rewrites (i.e. instead of index.php?p=32 you see /category/post-title).

You can make any number of changes to .htaccess without restarting Apache as that file will be read and processed on-the-fly (i.e. on each request).

With NGINX, if you make changes to the configuration, the only way they take effect is when you do a reload or restart NGINX altogether. NGINX also doesn't use .htaccess, and the rewrites are a little bit different, but I find them far more simplistic.

The typical WordPress .htaccess looks like this:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

With NGINX, that gets shrunk down to:

location / {
    try_files $uri $uri/ /index.php?$args;
}

The location block basically tries a URL without a slash, with a slash, and if neither of those are able to handle the request, it pushes the request to index.php with $args which would be, in the case of WordPress, the post ID, category ID, etc. You don't have to worry about that part though, just having the $args in the location block above is all you need to worry about having in place.

You guys rock... ill go with the LEMP stack.

Have another answer? Share your knowledge.