How to make "Different" LEMP+EasyEngine stack for each Wordpress website on one VPS‏ plan?

Hello,

I'm running websites each with different PHP version and php.ini setting by reseller plan of other hosting provider, and I want to migrate 2~3 of them to Linode VPS.

I've signed up and bought $10/month VPS plan of Linode, and almost finished basic construction of guide "Getting Started…" and "Secured …".

I've also created an user "website-A" under root and private/public SSH key has been generated and upgraded in /home/website-A/.ssh/ . There are some methods I'm thinking & need your suggestion for sure:

1.One Configuration Profiles ( Debian 8 ), One whole Disk (Debian 8 Disk), One Swap image (256mb).

Log in Lish as a created user "website-A".

And then all LEMP and EasyEngine (choose one of PHP 5, PHP 7, PHP-FPM, HVVM) and all above LEMP and EasyEngine will be deployed only under the user and website by Named-based Virtual Host of "website-A".

2.One Configuration Profiles ( Debian 8 ), separate an indivisual needed disk storage for the website/domain name belong to "website-A", One Swap image (256mb, It seems can only exist one Swap for all).

And then all LEMP and EasyEngine (choose one of PHP 5, PHP 7, PHP-FPM, HVVM) and all above LEMP and EasyEngine will be deployed only under the user and website by Named-based Virtual Host of "website-A".

3.If there comes the migration of another (the second) websites to this VPS plan and one of method 1. or 2. is a feasible solution, then I can just use the same method to settle down the migration of another websites by creating another user at the first.

And then I can make a "different and suitable" LEMP and EasyEngine setting for each website which has been set belong to "website-A" or other user. ex: use PHP 5, or PHP 5+HHVM instead of PHP 7 because of the compatibility with different websites.

Those above are all I want as my first priority. But I'm not sure whether these are feasible solution or not, in addition, not sure about the execution order. Like I said, it depend on whether the key is creating a user and could deploy any suitable LEMP stack+EasyEngine for each website which belong to the user or not.

If it is the method, I'll feel easy. If not, I'll be headache for "all websites could only on the same LEMP stack and EasyEngine setting, but could not suitable for each website :(

Or…Maybe there's exactly good method but I don't know?

Thanks,

Green

3 Replies

@yanggh:

Hello,

I'm running websites each with different PHP version and php.ini setting by reseller plan of other hosting provider, and I want to migrate 2~3 of them to Linode VPS.

I've signed up and bought $10/month VPS plan of Linode, and almost finished basic construction of guide "Getting Started…" and "Secured …".

I've also created an user "website-A" under root and private/public SSH key has been generated and upgraded in /home/website-A/.ssh/ . There are some methods I'm thinking & need your suggestion for sure:

1.One Configuration Profiles ( Debian 8 ), One whole Disk (Debian 8 Disk), One Swap image (256mb).

Log in Lish as a created user "website-A".

And then all LEMP and EasyEngine (choose one of PHP 5, PHP 7, PHP-FPM, HVVM) and all above LEMP and EasyEngine will be deployed only under the user and website by Named-based Virtual Host of "website-A".

2.One Configuration Profiles ( Debian 8 ), separate an indivisual needed disk storage for the website/domain name belong to "website-A", One Swap image (256mb, It seems can only exist one Swap for all).

And then all LEMP and EasyEngine (choose one of PHP 5, PHP 7, PHP-FPM, HVVM) and all above LEMP and EasyEngine will be deployed only under the user and website by Named-based Virtual Host of "website-A".

3.If there comes the migration of another (the second) websites to this VPS plan and one of method 1. or 2. is a feasible solution, then I can just use the same method to settle down the migration of another websites by creating another user at the first.

And then I can make a "different and suitable" LEMP and EasyEngine setting for each website which has been set belong to "website-A" or other user. ex: use PHP 5, or PHP 5+HHVM instead of PHP 7 because of the compatibility with different websites.

Those above are all I want as my first priority. But I'm not sure whether these are feasible solution or not, in addition, not sure about the execution order. Like I said, it depend on whether the key is creating a user and could deploy any suitable LEMP stack+EasyEngine for each website which belong to the user or not.

If it is the method, I'll feel easy. If not, I'll be headache for "all websites could only on the same LEMP stack and EasyEngine setting, but could not suitable for each website :(

Or…Maybe there's exactly good method but I don't know?

Thanks,

Green

If this is about separation of concerns, setting up docker instances might be helpful. That or purchase one Linode instance per requirement. You could mix and match, do a couple of Linodes for major requirements then as many docker containers in each to satisfy grouped requirements.

Make sure the code in the containers is committed to branches. When you have the configurations you want, merge the appropriate branches into your master branch, replicate master to your production instance(s) then destroy the docker containers.

You could also leave the docker containers running if you want to maintain ongoing A/B testing and keep the main Linode instance(s) pristine.

> If this is about separation of concerns, setting up docker instances might be helpful. That or purchase one Linode instance per requirement. You could mix and match, do a couple of Linodes for major requirements then as many docker containers in each to satisfy grouped requirements.

Make sure the code in the containers is committed to branches. When you have the configurations you want, merge the appropriate branches into your master branch, replicate master to your production instance(s) then destroy the docker containers.

You could also leave the docker containers running if you want to maintain ongoing A/B testing and keep the main Linode instance(s) pristine.

Thanks for your suggestion! I had googled for "docker container", finding out that's a smart solution!

But it seems still too fresh and unreliable for the container resources for me, so I thinks I should give up to insist to my high demand…

I've found this discussion about Which is the most appropriate way to host multiple websites in linode?~~[http://stackoverflow.com/questions/13726675/which-is-the-most-appropriate-way-to-host-multiple-websites-in-linode" target="_blank">](http://stackoverflow.com/questions/1372 … -in-linode">http://stackoverflow.com/questions/13726675/which-is-the-most-appropriate-way-to-host-multiple-websites-in-linode](

There is one of the answers in the discussion:

You could set a quota by creating a virtual slice of your disk space and mounting that as your individual web directories. This has a couple benefits, including limiting space, and keeping it separate from the OS in case the OS becomes corrupted and needs to be re-imaged. This happened to me a few weeks ago, and because I had the /www directory on a separate partition, I re-imaged and got the sites back up on my Linode in under an hour. – CDub Dec 6 '12 at 17:21

I'm interested in using the same solution to plan & manage mutiple websites and different 2 PHP version (PHP 5/php 7) for different websites for the compatibility reason.

Could some one know how to do these work and could share the detail? I only know how to have both PHP 5 & PHP 7 exist, but don't know about mounting the disk partition :(

Thanks.

You can create additional disks in your Linode Manager based on how much disk quota you have.

Then attach each disk to your main configuration profile.

Then when booted, you'll need to modify your fstab file to boot with these partitions consistently on each boot.

Reply

Please enter an answer
Tips:

You can mention users to notify them: @username

You can use Markdown to format your question. For more examples see the Markdown Cheatsheet.

> I’m a blockquote.

I’m a blockquote.

[I'm a link] (https://www.google.com)

I'm a link

**I am bold** I am bold

*I am italicized* I am italicized

Community Code of Conduct