How to use OneinStack to deploy LEMP/LNMP/LAMP on VPS

LEMP stack is another most setup of a server or a virtual private server (VPS) besides LAMP. LEMP (or LNMP) stands for Linux, Nginx, MySQL and PHP.It’s a web server that can server millions of visitors a day with no single blip.

In today’s post I’ll show you how to build a working CentOS/Redhat Debian and Ubuntu VPS to host websites using Nginx Or Apach including steps how to install  full LNMP stack.This guide will make use of OneinStack, a LEMP (Linux, Nginx, MariaDB MySQL & PHP-FPM) web stack installer.

Prerequisite

1.A server (VPS / Dedi) :

  1. Linode VPS Review-How to Create a Linode Server
  2. RamNode VPS Review-Cheap KVM and SSD VPS Starts at $3.50/mo

2.A knowledge on:

  1. How To Install LEMP on Debian & Ubuntu (Linux, nginx, MySQL, PHP,PHPMyAdmin)
  2. How to test VPS Speed and Performance? Install and Run UnixBench & sysbench

What is OneinStack?

This script is written using the shell, in order to quickly deploy LEMP/LAMP/LNMP/LNMPA(Linux, Nginx/Tengine/OpenResty, MySQL in a production environment/MariaDB/Percona, PHP), applicable to CentOS 5~7(including redhat), Debian 6~8, Ubuntu 12~16 of 32 and 64.

Github:https://github.com/lj2007331/lnmp

 

OneinStack Features

Many Shared Hosting users worry about complexity of setting up and managing a VPS.What OneinStack does is automating most common configuration of server for web hosting. It helps newbies to setup a working server to host their website, blog or forum easily and quickly .

Database versions (MySQL-5.7, MySQL-5.6, MySQL-5.5, MariaDB-10.1, MariaDB-10.0, MariaDB-5.5,Percona-5.7, Percona-5.6, Percona-5.5)
PHP versions (php-7, php-5.6, php-5.5, php-5.4, php-5.3)
Provide Nginx, Tengine, OpenResty
Providing a plurality of Apache version (Apache-2.4, Apache-2.2)
PHP Cache Accelerator: ZendOPcache, xcache, apcu, eAccelerator. 
PHP encryption and decryption tool: ionCube, ZendGuardLoader.
Installation Pureftpd, phpMyAdmin.Install memcached, redis .
Providing add a virtual host script, include Let's Encrypt SSL certificate
Provided under HHVM install CentOS 6,7

How to install Oneinstack ?

For CentOS/Redhat:

yum -y install wget screen   // For CentOS / Redhat
wget http://mirrors.linuxeye.com/lnmp-full.tar.gz   // Contains the source code
tar xzf lnmp-full.tar.gz
cd lnmp    
screen -S lnmp    // if network interruption, you can execute the command `screen -r lnmp` reconnect install window
./install.sh   

For Debian/Ubuntu:

apt-get -y install wget screen    
wget http://mirrors.linuxeye.com/lnmp-full.tar.gz   // Contains the source code
tar xzf lnmp-full.tar.gz
cd lnmp    
screen -S lnmp    // if network interruption, you can execute the command `screen -r lnmp` reconnect install window
./install.sh   

 

Select Nginx or Apache to install :

Do you want to install Web server? [y/n]: y.Please select Nginx server:
        1. Install Nginx
        2. Install Tengine
        3. Install OpenResty
        4. Do not install

Please select Apache server:
        1. Install Apache-2.4
        2. Install Apache-2.2
        3. Do not install
Please input a number:(Default 3 press Enter) 

Select which Databases and PHP versions to  use :

Do you want to install Database? [y/n]: y

Please select a version of the Database:
        1. Install MySQL-5.7
        2. Install MySQL-5.6
        3. Install MySQL-5.5
        4. Install MariaDB-10.1
        5. Install MariaDB-10.0
        6. Install MariaDB-5.5
        7. Install Percona-5.7
        8. Install Percona-5.6
        9. Install Percona-5.5
Please input a number:(Default 2 press Enter) 
Please input the root password of database: fydx19871227

Do you want to install PHP? [y/n]: y

Please select a version of the PHP:
        1. Install php-5.3
        2. Install php-5.4
        3. Install php-5.5
        4. Install php-5.6
        5. Install php-7
Please input a number:(Default 3 press Enter) 

Opcode cache\ImageMagick or GraphicsMagick\phpMyAdmin\redis\memcached\HHVM:

Do you want to install opcode cache of the PHP? [y/n]: y
Please select a opcode cache of the PHP:
        1. Install Zend OPcache
Please input a number:(Default 1 press Enter) 

Do you want to install ImageMagick or GraphicsMagick? [y/n]: n

Do you want to install Pure-FTPd? [y/n]: n

Do you want to install phpMyAdmin? [y/n]: y

Do you want to install redis? [y/n]: y

Do you want to install memcached? [y/n]: y

Do you want to use jemalloc or tcmalloc optimize Database and Web server? [y/n]: y
Please select jemalloc or tcmalloc:
        1. jemalloc
        2. tcmalloc
Please input a number:(Default 1 press Enter) 

Do you want to install HHVM? [y/n]: n

Once you’ve followed all those steps above including the last step, you can see it .

So fire up your browser and point it to the servers’ IP address.OneinStack default welcome page should be seen there:

Now you can manage your MySQL databases from phpMyAdmin web interface.

Navigate to  http://server-ip-address/phpinfo.php. It will display all the details about php such as version, build date and commands etc.

How to use OneinStack?

Add a virtual host:

cd ~/lnmp    // Must enter the directory execution under lnmp
./vhost.sh    // Do not sh vhost.sh or bash vhost.sh such execution

Delete a virtual host:

cd ~/lnmp
./vhost.sh del

Backup:

cd ~/lnmp
./backup_setup.sh    // Backup parameters 
./backup.sh    // Perform the backup immediately 
crontab -l    // Can be added to scheduled tasks, such as automatic backups every day 1:00 
  0 1 * * * cd ~/lnmp;./backup.sh  > /dev/null 2>&1 &

How to manage service

Nginx/Tengine/OpenResty: service nginx {start|stop|status|restart|reload|configtest}

MySQL/MariaDB/Percona: service mysqld {start|stop|restart|reload|status}

PHP: service php-fpm {start|stop|restart|reload|status}

HHVM: service supervisord {start|stop|status|restart|reload}

Apache:service httpd {start|restart|stop}

Pure-Ftpd: service pureftpd {start|stop|restart|status}

Redis: service redis-server {start|stop|status|restart|reload}

Memcached: service memcached {start|stop|status|restart|reload}

Conclusion

Finally, at this point you have installed and configured full LEMP stack properly. All you have to do is just adding some more additional Virtual Host / Server Block for each domain you want to host to that server.

How To Install LEMP on Debian & Ubuntu (Linux, nginx, MySQL, PHP,PHPMyAdmin)

The LEMP (Linux, nginx, MySQL, PHP,PHP,MyAdmin)software stack is a group of software that can be used to serve dynamic web pages and web applications.In this guide, I will walk you through installing all of these components on Debian & Ubuntu .

This tutorial series helps sysadmins set up a new web server using the LEMP stack, as well as all of the required repos to download nginx and php-fpm. It will also review how to configure php and nginx, as well as how to create a php info page.

You can read the following articles to know more about Cheap VPS Hosting and VPS Tutorials .

  1. How to test VPS Speed and Performance? Install and Run UnixBench & sysbench
  2. RamNode VPS Review-Cheap KVM and SSD VPS Starts at $3.50/mo
  3. host1plus VPS Review-Affordable & Quick VPS Hosting RAM 256 MB Only $2.00/mo

How to Install the Nginx Web Server

Nginx is a open source web server. Generally, Apache is installed on majority of the servers but Nginx tends to give better performance out of the box compared to Apache.

There are several ways to install Nginx.

1.Install Nginx from Repositories

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install nginx

2.Install Nginx from a Source Distribution

sudo apt-get install libpcre3-dev build-essential libssl-dev
cd /opt/
sudo wget http://nginx.org/download/nginx-1.9.2.tar.gz
sudo tar -zxvf nginx*.tar.gz
cd /opt/nginx-*
sudo ./configure --prefix=/opt/nginx --user=nginx --group=nginx --with-http_ssl_module --with-ipv6
sudo make
sudo make install
sudo adduser --system --no-create-home --disabled-login --disabled-password --group nginx
 
#Create a script to run Nginx: /lib/systemd/system/nginx.service
[Unit]
Description=A high performance web server and a reverse proxy server
After=network.target
[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/opt/nginx/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/opt/nginx/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /opt/nginx/logs/nginx.pid
TimeoutStopSec=5
KillMode=mixed
[Install]
WantedBy=multi-user.target

sudo chmod +x /lib/systemd/system/nginx.service
sudo systemctl start nginx

3.Configure Server Blocks

Now, we need to configure nginx.Create the server block file /etc/nginx/sites-available/howsvps.com(replace howsvps.com with your domain:)

server {
listen   80;
server_name www.example.com example.com;
access_log /var/www/html/example.com/logs/access.log;
error_log /var/www/html/example.com/logs/error.log;

location / {
    root   /var/www/html/example.com/public_html;
    index  index.html index.htm;
}
}

 

4.Create the public_html and log directories.

sudo mkdir -p /var/www/html/howsvps.com/{public_html,logs}

5.Enable the site and restart the web server.

sudo rm /etc/nginx/sites-enabled/howsvps.com
sudo /etc/init.d/nginx restart

After installation, we can verify nginx installation by opening the ip of server. It should display default nginx page.

Install and Configure PHP

PHP is a server-side scripting language designed for web development. The scripting role can also be filled with Python or Perl. We can do so by the running the following commands:

sudo apt-get install php5-fpm php5-mysql

Then open up php.ini:

sudo nano /etc/php5/fpm/php.ini
# Find the line cgi.fix_pathinfo=1 and change the 1 to 0.
cgi.fix_pathinfo=0

 

php5-fpm configuration. Open up www.conf:

sudo nano /etc/php5/fpm/pool.d/www.conf

#Find the line, listen = 127.0.0.1:9000, and change the 127.0.0.1:9000 to /var/run/php5-fpm.sock.
listen = /var/run/php5-fpm.sock
sudo service php5-fpm restart

Install and Configure MySQL Database Server

MySQL is commonly used as the database for most LEMP stacks or other LAMP stacks.Open terminal and type in these commands:

sudo apt-get install mysql-server

During the installation,You should set a root password.

 

Create a database and grant permissions.

mysql -u root -p
create database howsvps;
grant all on howsvps.* to 'howsvpsu' identified by '1234567';
quit
sudo /etc/init.d/php-fastcgi restart

OR

#to generate the directory structure
sudo mysql_install_db
sudo mysql_secure_installation

Install and Configure phpMyAdmin

PhpMyAdmin is a powerful PHP based gui for MySQL. phpMyAdmin was originally developed by Tobias Ratschiller.Installing phpMyAdmin is almost as easy as installing MySQL, just a few more steps.

Install phpMyAdmin

sudo apt-get install phpmyadmin

During the installation,You could choose the web server that will automatically configured to run PhpMyadmin .

The next prompt will ask if you would like dbconfig-common to configure a database for phpmyadmin to use. Select “Yes” to continue.

Afterward, you will be asked to select and confirm a password for a new database that will hold phpMyAdmin’s own data.

You just need to create a symbolic link from the installation files to our Nginx document root directory by typing this:

sudo ln -s /usr/share/phpmyadmin /usr/share/nginx/html

#enable the mcrypt PHP module
sudo php5enmod mcrypt
sudo service php5-fpm restart

You should now have a configured and secured PHPMyAdmin instance and MySQL database ready to use. Go to your server’s domain name or public IP address followed by /phpmyadmin, in your web browser:

Conclusion

You should now have Linux, nginx, MySQL, PHP,PHPMyAdmin configured and ready to use on your Debian & Ubuntu server. If you want to host websites on your server running NGINX ,you can use NGINX server blocks.

Server blocks are the NGINX equivalent of Apache’s virtual hosts – they let you direct incoming HTTP traffic for a domain name to a particular directory on your server.

How to test VPS Speed and Performance? Install and Run UnixBench & sysbench

VPS hosting services eliminate many of the problems associated with shared servers including system slowdowns caused by other users on the servers.But when you purchased the VPS and want to know its performance, then you can simply perform the benchmark test yourself.

In this simple article I will tell you the magic command how to find out your server’s disk performance (I/O – write and read speed),CPU performance etc. .These two free tools allow you to conduct quick test on your server to easily find out its general info and performance.

 

There is more than one way to check the performance available on a VPS Server.If you are looking for great performance and ease of use, then you should look into Following :

  1. Linode VPS Review-How to Create a Linode Server
  2. host1plus VPS Review-Affordable & Quick VPS Hosting RAM 256 MB Only $2.00/mo
  3. BandwagonHost VPS Review -Cheap SSD VPS 256 MB RAM Only $2.99/m

How To Benchmark VPS System (CPU, File IO) With sysbench

Installing sysbench

For CentOS:

apt-get install sysbench
man sysbench

For Debian/Ubuntu:

wget http://nchc.dl.sourceforge.net/project/sysbench/sysbench/0.4.12/sysbench-0.4.12.tar.gz
tar zxvf sysbench-0.4.12.tar.gz
cd sysbench-0.4.12/
mkdir /usr/sysbench/
apt-get install automake
apt-get install libtool
./autogen.sh

 

How to Test VPS CPU Performance

The faster your CPU performs, the faster your server can process tasks. Just use the command(Note that this CPU measure is by no means comprehensive. but it does give an overall look at how CPU-bound workloads will be handled by the different VPSes.)

sysbench --test=cpu --cpu-max-prime=20000 run

File IO Benchmark

IOPS (input/output operations per second) are a metric that are commonly used to measure disk I/O performance.To measure file IO performance, we first need to create a test file that is much bigger than your RAM – 150GB is a good value:

sysbench --test=fileio --file-total-size=150G prepare

Afterwards, we can run the benchmark:

sysbench --test=fileio --file-total-size=150G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run

How to Test VPS Disk I/O Performance

Disk performance is important.High disk IO is important to ensure your server works efficiently and your web applications do not slow down.This script is the one I see a lot in many forums and blogs.Just do the following

dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync

HDPARM

hdparm can be used to get/set the disk information, if you don’t have it, you can install by using:

sudo apt-get install hdparm
#yum install hdparm

You need to specify which hard disk partition, the first HDD is usually /dev/sda1, the second is /dev/sda2 or /dev/sdb1 etc.

hdparm -tT /dev/sda1

There is a big difference regarding to the disk performance between HDD and SD Card. Remember to remove the file by rm -f test after you finish the test.

 

Test VPS upload/download speed

We can use Matt Martz python script speedtest-cli to Test VPS upload/download speed.just do the following :

wget -O speedtest-cli https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
chmod +x speedtest-cli
python speedtest-cli --share

Or

wget freevps.us/downloads/bench.sh -O - -o /dev/null|bash

heres an example ran from a Linode VPS

Install and Run UnxBench

UnixBench is a popular server benchmarking tool,its results depend not only on your hardware, but on your operating system, libraries, and even compiler.This tutorial will cover how to  install and run UnixBench on a VPS.

To install and run UnixBench, follow the instructions related to the Linux distribution you are using :

For CentOS:

yum install gcc gcc-c++ make libXext-devel
yum groupinstall "Development Tools"
yum install libX11-devel mesa-libGL-devel perl-Time-HiRes
wget -c http://byte-unixbench.googlecode.com/files/unixbench-5.1.3.tgz
tar xvzf unixbench-5.1.3.tgz
cd unixbench-5.1.3
make
./Run

For Debian/Ubuntu:

apt-get install libx11-dev libgl1-mesa-dev libxext-dev perl  perl-modules make
wget http://byte-unixbench.googlecode.com/files/unixbench-5.1.3.tgz
tar xvf unixbench-5.1.3.tgz
cd unixbench-5.1.3
./Run

My Conclusion

However those two tools are not the only script to perform benchmark but I consider it as the quickest and simplest available.Sysbench is one of the most common benchmarking utilities.

As for UnixBench: if it does encourage you to switch to a new system because it has a higher UnixBench Index Score, you might want to try upgrading your compiler first!