EasyEngine(ee) Stack Module covers following operations:
Install Packages
Install web packages:
ee stack install
# Another way
ee stack install web
Sample output:
^_^[root@example.com:~]# ee stack install
Adding rtCamp NGINX launchpad repository, please wait...
Adding Ondrej PHP5 launchpad repository, please wait...
Executing apt-get update, please wait...
Installing nginx-custom, please wait...
Reading package lists...
Building dependency tree...
Reading state information...
The following extra packages will be installed:
libxslt1.1 nginx-common
The following NEW packages will be installed:
libxslt1.1 nginx-common nginx-custom
0 upgraded, 3 newly installed, 0 to remove and 78 not upgraded.
Need to get 595 kB of archives.
After this operation, 1,692 kB of additional disk space will be used.
[...]
.
.
.
[...]
Setting up NGINX, please wait...
Generating SSL private key
Generating a certificate signing request (CSR)
Removing pass phrase from SSL private key
Generating SSL certificate
Setting up PHP5, please wait...
Setting up MySQL, please wait...
Executing service nginx restart, please wait...
Executing service php5-fpm restart, please wait...
Executing service mysql restart, please wait...
Git commit on /etc/nginx/, please wait...
Git commit on /etc/php5/, please wait...
Git commit on /etc/mysql/, please wait...
Git commit on /etc/postfix, please wait...
Downloading Adminer, please wait...
Downloading phpMyAdmin, please wait...
Downloading WP-CLI, please wait...
Installing phpMemcachedAdmin, please wait...
Downloading nginx FastCGI cleanup script, please wait...
Downloading OPcache, please wait...
Cloning Webgrind, please wait...
Cloning Anemometer, please wait...
Successfully installed web packages
Create your first WordPress site powered by NGINX using:
ee site create example.com --wp
Above command install all the require packages, now you can create your site using Site Module.
NOTE: By default EasyEngine set easyengine:easyengine
as HTTP authentication
Refer: How to change HTTP Authentication
If you are thinking installing all packages is not suitable for you, can install single packages by using following commands:
Install NGINX
ee stack install --nginx
NOTE: By default EasyEngine set easyengine:easyengine
as HTTP authentication
Refer: How to change HTTP Authentication
Install PHP
ee stack install --php
# Deprecated way
ee system install php
Install MySQL
ee stack install --mysql
# Deprecated way
ee system install mysql
Install Postfix
ee stack install --postfix
# Deprecated way
ee system install postfix
Install WP-CLI
ee stack install --wpcli
# Deprecated way
ee system install wpcli
Install Adminer
ee stack install --adminer
# Deprecated way
ee system install adminer
Install phpMyAdmin
ee stack install --phpmyadmin
# Deprecated way
ee system install phpmyadmin
Install Utilities
Below command installs phpMemcachedAdmin, FastCGI cleanup script, OPcache, Webgrind, Anemometer.
ee stack install --utils
# Deprecated way
ee system install utils
Install Mail Packages:
Note: Recomened RAM for Mail Package installation is minimum 1GB
ee stack install --mail
Sample output:
^_^[root@example.com:~]# ee stack install --mail
Installing Dovecot, please wait...
Reading package lists...
Building dependency tree...
Reading state information...
Suggested packages:
ntp dovecot-gssapi dovecot-pgsql dovecot-sqlite dovecot-ldap dovecot-solr
ufw
The following NEW packages will be installed:
dovecot-core dovecot-imapd dovecot-lmtpd dovecot-managesieved dovecot-mysql
dovecot-pop3d dovecot-sieve
0 upgraded, 7 newly installed, 0 to remove and 106 not upgraded.
Need to get 2,437 kB of archives.
After this operation, 7,370 kB of additional disk space will be used.
[...]
.
.
.
[...]
Setting up Postfix, please wait...
Generating self signed certificate for Postfix, please wait...
Setting up Dovecot, please wait...
Generating self signed certificate for Dovecot, please wait...
Setting up Amavis, please wait...
Setting up ViMbAdmin, please wait...
Setting up Roundcube, please wait...
Setting up Sieve rules, please wait...
Executing service nginx restart, please wait...
Executing service postfix restart, please wait...
Executing service dovecot restart, please wait...
Executing service amavis restart, please wait...
Git commit on /etc/nginx, please wait...
Git commit on /etc/postfix, please wait...
Git commit on /etc/dovecot, please wait...
Git commit on /etc/amavis, please wait...
Configure ViMbAdmin: https://example.com:22222/vimbadmin
Security Salt: UpRBT4LLJwfFcZTNOg0CJkDeJSnSLPYsUylCFzrILcoAreOPRhVwqqipjTCltOBw
Successfully installed mail server packages
Above command install all the require packages for mail server.
ViMbAdmin Setup
Now you need to complete ViMbAdmin setup by accessing following url
https://example.com:22222/vimbadmin
and Copy Security salt from terminal to browser
Security Salt: UpRBT4LLJwfFcZTNOg0CJkDeJSnSLPYsUylCFzrILcoAreOPRhVwqqipjTCltOBw
Paste that into webpage and click on activate my account
Now you can create virtual domains and mailboxes in your mail server.
NOTE: If you are getting this error: Fatal error: session_start(): Failed to initialize storage module: memcache
then to resolve this use this FAQ
Accessing roundcube
Webmail can be accessed using
http://webmail.example.com
Setting Up Organization Identity
vim /var/www/22222/htdocs/vimbadmin/application/configs/application.ini +250
Now set the following details as per your Organization:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Identity
identity.orgname = "Example Limited"
identity.name = "Example Support Team"
identity.email = "support@example.com"
identity.autobot.name = "ViMbAdmin Autobot"
identity.autobot.email = "autobot@example.com"
identity.mailer.name = "ViMbAdmin Autobot"
identity.mailer.email = "do-not-reply@example.com"
identity.sitename = "ViMbAdmin"
identity.siteurl = "https://www.example.com/vimbadmin/"
;;
;; All mail and correspondence will come from the following;;
server.email.name = "ViMbAdmin Administrator"
server.email.address = "support@example.com"
Install All Packages:
ee stack install --all
This command is combination of following two commands:
ee stack install --web
ee stack install --mail
Remove Packages
Remove Web Packages
ee stack remove
# Another way
ee system remove --web
Sample output:
^_^[root@example.com:~]# ee stack remove
remove nginx-custom package, please wait...
Reading package lists...
Building dependency tree...
Reading state information...
The following package was automatically installed and is no longer required:
libxslt1.1
Use 'apt-get autoremove' to remove it.
The following packages will be REMOVED:
[...]
.
.
.
[...]
Removing Adminer, please wait...
Removing phpMyAdmin, please wait...
Removing WP-CLI, please wait...
Remove EasyEngine (ee) admin utilities, please wait...
Removing unwanted packages, please wait...
[...]
.
.
.
[...]
Successfully removed all packages
Above command removes all packages installed by ee stack install
If you are thinking removing all packages is not suitable for you, can remove single packages by using following commands:
Remove NGINX
ee stack remove --nginx
# Deprecated way
ee system remove nginx
Remove PHP
ee stack remove --php
# Deprecated way
ee system remove php
Remove MySQL
ee stack remove --mysql
# Deprecated way
ee system remove mysql
Remove Postfix
ee stack remove --postfix
# Deprecated way
ee system remove postfix
Remove WP-CLI
ee stack remove --wpcli
# Deprecated way
ee system remove wpcli
Remove Adminer
ee stack remove --adminer
# Deprecated way
ee system remove adminer
Remove phpMyAdmin
ee stack remove --phpMyAdmin
# Deprecated way
ee system remove phpmyadmin
Remove Utilities
Below command remove phpMemcachedAdmin, FastCGI cleanup script, OPcache, Webgrind, Anemometer.
ee stack remove --utils
# Deprecated way
ee system remove utils
Remove Mail Packages
ee stack remove --mail
````
This command will remove all mail server packages keeping configuration files as it.
Sample output:
```bash
^_^[root@example.com:~]# ee stack remove --mail
remove Dovecot package, please wait...
Reading package lists...
Building dependency tree...
Reading state information...
The following packages will be REMOVED:
dovecot-core dovecot-imapd dovecot-lmtpd dovecot-managesieved dovecot-mysql
dovecot-pop3d dovecot-sieve
0 upgraded, 0 newly installed, 7 to remove and 59 not upgraded.
After this operation, 11.7 MB disk space will be freed.
[...]
.
.
[...]
Removing Roundcube dependencies, please wait...
Removing Roundcube, please wait...
Removing unwanted packages, please wait...
[...]
.
.
[...]
Removing libunix-syslog-perl (1.1-2build5) ...
Removing pax (1:20120606-2+deb7u1) ...
Removing re2c (0.13.5-1build2) ...
Removing spamc (3.4.0-1ubuntu1) ...
Removing librpm3 (4.11.1-3) ...
Removing librpmio3 (4.11.1-3) ...
Removing liblua5.2-0:amd64 (5.2.3-1) ...
Removing libnss3:amd64 (2:3.15.4-1ubuntu7) ...
Removing libnss3-nssdb (2:3.15.4-1ubuntu7) ...
Removing libnspr4:amd64 (2:4.10.2-1ubuntu1.1) ...
Processing triggers for man-db (2.6.7.1-1) ...
Processing triggers for libc-bin (2.19-0ubuntu6) ...
Successfully removed mail server packages
Remove All packages
ee stack remove --all
This command is combination of following two commands:
ee stack remove --web
ee stack remove --mail
Purge Packages
Purge Web Packages:
ee stack purge
# Another way
ee stack purge --web
Sample output:
^_^[root@example.com:~]# ee stack purge
purge nginx-custom package, please wait...
Reading package lists...
Building dependency tree...
Reading state information...
The following package was automatically installed and is no longer required:
libxslt1.1
Use 'apt-get autoremove' to remove it.
The following packages will be REMOVED:
[...]
.
.
.
[...]
Removing Adminer, please wait...
Removing phpMyAdmin, please wait...
Removing WP-CLI, please wait...
Remove EasyEngine (ee) admin utilities, please wait...
Removing unwanted packages, please wait...
[...]
.
.
.
[...]
Successfully purged all packages
Above command removes all packages installed by ee stack install
If you are thinking removing all packages is not suitable for you, can remove single packages by using following commands:
Purge NGINX
ee stack purge --nginx
# Deprecated way
ee system purge nginx
Purge PHP
ee stack purge --php
# Deprecated way
ee system purge php
Purge MySQL
ee stack purge --mysql
# Deprecated way
ee system purge mysql
Purge Postfix
ee stack purge --postfix
# Deprecated way
ee system purge postfix
Purge WP-CLI
ee stack purge --wpcli
# Deprecated way
ee system purge wpcli
Purge Adminer
ee stack purge --adminer
# Deprecated way
ee system purge adminer
Purge phpMyAdmin
ee stack purge --phpMyAdmin
# Deprecated way
ee system purge phpmyadmin
Purge Utilities
Below command remove phpMemcachedAdmin, FastCGI cleanup script, OPcache, Webgrind, Anemometer.
ee stack purge --utils
# Deprecated way
ee system purge utils
Purge Mail Packages:
ee stack purge --mail
This command will purge all mail server packages.
Sample output:
^_^[root@example.com:~]# ee stack purge --mail
purge Dovecot package, please wait...
Reading package lists...
Building dependency tree...
Reading state information...
The following packages will be REMOVED:
dovecot-core* dovecot-imapd* dovecot-lmtpd* dovecot-managesieved*
dovecot-mysql* dovecot-pop3d* dovecot-sieve*
0 upgraded, 0 newly installed, 7 to remove and 59 not upgraded.
After this operation, 11.7 MB disk space will be freed.
[...]
.
.
[...]
Processing triggers for man-db (2.6.7.1-1) ...
Removing Roundcube dependencies, please wait...
Removing Roundcube, please wait...
Removing unwanted packages, please wait...
Reading package lists...
[...]
.
.
[...]
Removing libunix-syslog-perl (1.1-2build5) ...
Removing pax (1:20120606-2+deb7u1) ...
Removing re2c (0.13.5-1build2) ...
Removing spamc (3.4.0-1ubuntu1) ...
Removing librpm3 (4.11.1-3) ...
Removing librpmio3 (4.11.1-3) ...
Removing liblua5.2-0:amd64 (5.2.3-1) ...
Removing libnss3:amd64 (2:3.15.4-1ubuntu7) ...
Removing libnss3-nssdb (2:3.15.4-1ubuntu7) ...
Removing libnspr4:amd64 (2:4.10.2-1ubuntu1.1) ...
Processing triggers for man-db (2.6.7.1-1) ...
Processing triggers for libc-bin (2.19-0ubuntu6) ...
Successfully purged mail server packages
Purge All Packages:
ee stack purge --all
This command is combination of following two commands:
ee stack purge --web
ee stack purge --mail
EE Stack Status
Display important status about EasyEngine services.
ee stack status
# Deprecated way
ee system status
Sample Output :
^_^[root@example.com:~]# ee stack status
System information as of Mon Jul 28 17:19:41 IST 2014
System load: 0.14 Processes: 183
Usage of /: 79% Users logged in: 4
Memory usage: 74% Swap usage: 32.39%
Service status information
Nginx: Running
PHP5-FPM: Running
MySQL: Running
Postfix: Running
EE Stack Services
All EasyEngine services can be operated using following commands:
Start NGINX, PHP, MySQL & Postfix service
ee stack start
# Deprecated way
ee system start
Sample output:
^_^[root@example.com:~]# ee stack start
Executing service nginx start, please wait...
Executing service php5-fpm start, please wait...
Executing service mysql start, please wait...
Executing service postfix start, please wait...
Stop NGINX, PHP, MySQL & Postfix service
ee stack stop
# Deprecated way
ee system stop
Sample output:
^_^[root@example.com:~]# ee stack stop
Executing service nginx stop, please wait...
Executing service php5-fpm stop, please wait...
Executing service mysql stop, please wait...
Executing service postfix stop, please wait...
Reload NGINX, PHP, MySQL & Postfix service
ee stack reload
# Deprecated way
ee system reload
Sample output:
^_^[root@example.com:~]# ee stack reload
Executing service nginx reload, please wait...
Executing service php5-fpm reload, please wait...
Executing service mysql reload, please wait...
Executing service postfix reload, please wait...
Restart NGINX, PHP, MySQL & Postfix service
ee stack restart
# Deprecated way
ee system restart
Sample output:
^_^[root@example.com:~]# ee stack restart
Executing service nginx restart, please wait...
Executing service php5-fpm restart, please wait...
Executing service mysql restart, please wait...
Executing service postfix restart, please wait...
When I run ee system install nginx I get an error message:
“W: Failed to fetch http://ppa.launchpad.net/brianmercer/nginx/ubuntu/dists/saucy/main/binary-amd64/Packages 404 Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.
[ Wed Dec 11 18:13:29 UTC 2013 ] Unable To Update APT Cache
“
Looks like you were trying to use Ubuntu 13.10.
Launchpad repo easyengine depends on doesn’t support – http://ppa.launchpad.net/brianmercer/nginx/ubuntu/ as of now.
You may raise issue at https://github.com/rtCamp/easyengine
We will try to fix it soon.
If you are setting up a new server, try using Ubuntu 12.04 LTS.
I tried that too but got the following now:
Reading package lists… Done
Building dependency tree
Reading state information… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
nginx-custom : Depends: nginx-common (= 1.4.1-0ppa~precise) but 1.4.4-1~precise0 is to be installed
E: Unable to correct problems, you have held broken packages.
Are you trying easyengine install on fresh Ubuntu 12.04 LTS?
Looks like you have nginx installed previously.
I did, had a new VM provisioned with Ubuntu 12.04 LTS with nothing installed previously… I didn’t try again unfortunately as I decided to go with building my own package for 13.10 and the latest nginx binaries. If someone needs Purging for 13.10 and the latest mainline features I upload my build to https://launchpad.net/~cloudingenium/+archive/nginx-mainline. Install the nginx-extras package or the naxsi one for cache purging.
Thanks for update. I am not sure if easyengine is working for you with your custom setup. If its working its find, if its not you may need to tweak easyengine on your end or manually manage sites.
Hi Rahul.
Im learning about NGINX, Im planning to migrate mi site from LAMP to NGINX based system, so Im newby on this…
Do you recommend install varnish and memcache over the default easyengine intallation???
Regards.
easyengine install memcache automatically for w3-total-cache’s database and object cache.
We don’t recommend varnish in front of Nginx for reasons posted here – https://easyengine.io/blog/why-we-never-use-varnish-with-nginx/
Thanks a lot for your fast response… Totally agree!!
Is there a reason why MySQL 5.5 is installed with Easyengine while your post https://rtcamp.com/tutorials/linux/ubuntu-php-mysql-nginx-postfix/ installs the Percona-MySQL 5.6 version?
When we started easyengine, percona-mysql 5.6 did not have GA release.
Thanks for bringing it to our notice. I posted an issue at – https://github.com/rtCamp/easyengine/issues/107
We hope to fix this soon.
Hi Rahul,
I really appreciate you for creating an awesome script which have increased my productivity in setting up nginx wordpress installations. I’m interested in knowing by when the mailserver will be added to this script. It will be really helpful if you can tell me how can I install a mailserver with gui in ubuntu os. Thanks!
We trying to finish it before month-end.
You can track progress at https://github.com/rtCamp/easyengine/issues/65
On a brand new, test droplet in Digital Ocean, using Ubuntu 12.04.3 x64, I tried the
curl -sL rt.cx/ee | sudo bash
and theee system install
command and received this http://d.pr/i/iqaany clues?
Check line “Failed to fetch” from bottom. Looks like when you ran setup script, digitalocean mirror of Ubuntu packages was broken. Just run “ee system install” command again.
If you see that “Failed to fetch” message again for any mirrors.digtialocean.com URL, please contact digtialocean support. (Most likely you won’t need to contact anybody)
Thank you for your quick response! It worked. Is this a common problem?
Nope. Saw this first time. DigitalOcean is very high quality host.
Most likely the mirror you have connected must be undergoing upgradation.
Hey, man! This command ee stack install isn’t working anymore. I’ve found a way around it, but since I am just a beginner i’m not sure if it’s correct or not. I’ve found the command “wget -qO ee https://rt.cx/ee4 && sudo bash ee ”
Is this correct? Is there a better way of doing it?
Hey Pedro, the installation commands you are using are for EasyEngine version 4. “ee stack” command is no longer present in version 4. You can take a look at the commands in EE4 here: https://easyengine.io/commands/
Also, to find out more about version 4, check: https://easyengine.io/blog/v4-first-stable-release/