How To Install Let’s Encrypt SSL With Apache on CentOS 7

Let’s Encrypt SSL With Apache on CentOS 7

LetsEncrypt is a free open certificate authority (CA) that provides free certificates for websites and other services. The service, which is backed by the Electronic Frontier Foundation, Mozilla, Cisco Systems, and Akamai. Unfortunately, LetsEncrypt.org certificates currently have a 3 month lifetime. This means you’ll need to renew your certificate quarterly for now.

Prerequisites

This article assumes you have at least basic knowledge of linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo’ to the commands to get root privileges. I will show you through the step by step installation Let’s Encrypt SSL with Apache on a CentOS 7 server.
Install Let’s Encrypt SSL With Apache on CentOS 7

Step 1. First let’s start by ensuring your system is up-to-date.

yum clean all
yum -y update

Step 2. Installing Let’s Encrypt SSL using Certbot.

In CentOS 7, you can find Certbot on the EPEL repository; if you enable it, just install what you need:

yum install epel-release
yum install python-certbot-apach

Certbot has a fairly solid beta-quality Apache plugin, which is supported on many platforms, and automates both obtaining and installing certs:

certbot --apache

After that, you’ll see a guide to customize your options, just like this:
Let%u2019s-Encrypt-SSL-Apache
Enter the domain you want to secure; then, Certbot will prompt you to enter your email address:
Let%u2019s-Encrypt-SSL-Apache-1
Next, you will choose the Virtual Host file, being the default ssh.conf. After that, you can decide whether to enable both http and https access or redirect to https. The secure option is the second one (https). At the end of the procedure, Certbot will display a message containing configuration information.

Step 3. Configuration CentOS SSL.

First, edit the Virtual Host file you specified during configuration through Certbot. If you used the default one, the file should be /etc/httpd/conf.d/ssl.conf:

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
# Requires Apache >= 2.4.11
SSLSessionTickets Off

Save and close the file. Restart the apache service for the changes to take effects:

systemctl restart httpd.service

Step 4. Automating renewal Let’s Encrypt.

Certbot can be configured to renew your certificates automatically before they expire. Since Let’s Encrypt certificates last for 90 days, it’s highly advisable to take advantage of this feature. You can test automatic renewal for your certificates by running this command:

certbot renew --dry-run

Congratulation’s! You have successfully installed Let’s Encrypt. Thanks for using this tutorial for installing Let’s Encrypt SSL on CentOS 7 system. For additional help or useful information, we recommend you to check the official Let’s Encrypt web site.

How To Enable HTTP/2.0 Support on Apache

Enable HTTP2

HTTP/2 is the new updated HTTP protocol, and its supposed to be much more efficient than the now outdated http/1.1 version. Its goal is to reduce the latency as well as to make the web applications faster by allowing multiple concurrent requests between the web browser and the server across a single TCP connection. If you are looking to speed up the loading time of your website or blog then you should enable http/2.0 in your web server.

Prerequisites

This article assumes you have at least basic knowledge of linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo’ to the commands to get root privileges. I will show you through the step by step enable HTTP/2.0 support in Apache running Ubuntu 16.04 (Xenial Xerus) server.
Enable HTTP/2.0 Support on Apache running Ubuntu 16.04 LTS

Step 1. First make sure that all your system packages are up-to-date by running these following apt-get commands in the terminal.

sudo apt-get update
sudo apt-get upgrade

Step 2. Enable HTTP/2.0 Apache web server.

So make sure that your Apache version supporting HTTP/2 protocol. If you have not installed Apache or using older version upgrade it first. Use the following commands to add PPA for installing latest Apache2 version on your Ubuntu system:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ondrej/apache2
sudo apt-get update
sudo apt-get install apache2

Once installed, verify Apache version:

### apache2 -v
Server version: Apache/2.4.17 (Ubuntu)
Server built: 2017-03-05T00:00:00

Enable the HTTP/2.0 module by typing this commands:

sudo a2enmod http2

Restart Apache for the changes to take effect:

systemctl restart apache2

Now open your VirtualHost file ( e.g. most likely at this path /etc/apache2/sites-available/ ) and put this code in:

Protocols h2 http/1.1

Step 3. Verify HTTP/2.

Go to https://tools.keycdn.com/http2-test and test if http/2.0 is detected in your domain.

https://tools.keycdn.com/http2-test

Congratulation’s! You have successfully enable HTTP/2.0 apache web server. Thanks for using this tutorial for enable HTTP/2.0 support on Apache running Ubuntu 16.04 LTS (Xenial Xerus) system. For additional help or useful information, we recommend you to check the official Apache web site.

How To Install XAMPP on CentOS 7

XAMPP on CentOS 7

XAMPP is an open source software that provides users with an out-of-the-box server experience. It is a complex, yet very easy-to-use AMPP (Apache, MySQL, PHP and Perl) distribution that’s compatible with the Linux, Microsoft Windows and Mac OS X operating systems. The best tool for those who want to install a fully functional web development environment.

Prerequisites

This article assumes you have at least basic knowledge of linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo’ to the commands to get root privileges. I will show you through the step by step installation XAMPP stack on a CentOS 7 server.
Features XAMPP

Regularly updated to the latest versions of Apache, MariaDB, PHP and Perl.
Supports other modules like OpenSSL, phpMyAdmin, MediaWiki, Joomla, WordPress etc.,
Tests the website designers and programmers work without Internet.
Secured package.
Allows creation and manipulation of databases in MariaDB and SQLite.

Install XAMPP on CentOS 7

Step 1. First let’s start by ensuring your system is up-to-date.

yum clean all
yum -y update

Step 2. Installing XAMPP on CentOS 7.

The first step is to download script from official xampp and to add the code in a new .run file on your Ubuntu machine, wherever you’d like this:

https://www.apachefriends.org/xampp-files/7.1.1/xampp-linux-x64-7.1.1-0-installer.run

Next, run the following command to make XAMPP executable:

chmod +x xampp-linux-x64-7.1.1-0-installer.run

Now is the time to run the script file to install XAMPP and wait until xampp is fully installed:

./xampp-linux-x64-7.1.1-0-installer.run

That should start the XAMPP installation setup. Continue with the installation as you usually do:
XAMPP1
xampp2
xampp3
xampp4
xampp5
xampp6
Once the setup is finished, XAMPP should be available for its usage in your Desktop or open your browser and follow this link : http://localhost/dashboard/

Congratulation’s! You have successfully installed XAMPP. Thanks for using this tutorial for installing XAMPP stack on CentOS 7 system. For additional help or useful information, we recommend you to check the official XAMPP web site.

How To Install PowerDNS on CentOS 7

PowerDNS on CentOS 7

PowerDNS is a MySQL-based DNS server, written in C++ and licensed under the GPL. PowerDNS can be managed through a web interface (PowerAdmin). Unlike Bind, PowerDNS can be setup using a multitude of backends such as Bind Zone Files, or various Databases.

Prerequisites

This article assumes you have at least basic knowledge of linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo’ to the commands to get root privileges. I will show you through the step by step installation PowerDNS on a CentOS 7 server.
Install PowerDNS on CentOS 7

Step 1. First let’s start by ensuring your system is up-to-date.

yum clean all
yum -y update

Step 2. Installing PowerDNS and backend.

First, you need to enable EPEL repository and all required packages on your system:

yum install epel-release
yum install bind-utils pdns pdns-recursor pdns-backend-mysql mariadb mariadb-server

Enable PowerDNS on boot and start PowerDNS server:

systemctl enable mariadb
systemctl enable pdns
systemctl enable pdns-recursor

Step 3. Configuring MariaDB.

By default, MariaDB is not hardened. You can secure MariaDB using the mysql_secure_installation script. you should read and below each steps carefully which will set root password, remove anonymous users, disallow remote root login, and remove the test database and access to secure MariaDB.

mysql_secure_installation

Step 4. Create PowerDNS Database and User in MariaDB.

Login as a MariaDB root and create a new database and tables:

### mysql -uroot -p

create user 'powerdns'@'localhost' identified by 'password';
grant all privileges on powerdns.* to 'powerdns'@'localhost';
flush privileges;
use powerdns;

CREATE TABLE domains (
id INT AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
master VARCHAR(128) DEFAULT NULL,
last_check INT DEFAULT NULL,
type VARCHAR(6) NOT NULL,
notified_serial INT DEFAULT NULL,
account VARCHAR(40) DEFAULT NULL,
PRIMARY KEY (id)
) Engine=InnoDB;

CREATE UNIQUE INDEX name_index ON domains(name);

CREATE TABLE records (
id INT AUTO_INCREMENT,
domain_id INT DEFAULT NULL,
name VARCHAR(255) DEFAULT NULL,
type VARCHAR(10) DEFAULT NULL,
content VARCHAR(64000) DEFAULT NULL,
ttl INT DEFAULT NULL,
prio INT DEFAULT NULL,
change_date INT DEFAULT NULL,
disabled TINYINT(1) DEFAULT 0,
ordername VARCHAR(255) BINARY DEFAULT NULL,
auth TINYINT(1) DEFAULT 1,
PRIMARY KEY (id)
) Engine=InnoDB;

CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);
CREATE INDEX recordorder ON records (domain_id, ordername);

CREATE TABLE supermasters (
ip VARCHAR(64) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) NOT NULL,
PRIMARY KEY (ip, nameserver)
) Engine=InnoDB;

CREATE TABLE comments (
id INT AUTO_INCREMENT,
domain_id INT NOT NULL,
name VARCHAR(255) NOT NULL,
type VARCHAR(10) NOT NULL,
modified_at INT NOT NULL,
account VARCHAR(40) NOT NULL,
comment VARCHAR(64000) NOT NULL,
PRIMARY KEY (id)
) Engine=InnoDB;

CREATE INDEX comments_domain_id_idx ON comments (domain_id);
CREATE INDEX comments_name_type_idx ON comments (name, type);
CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);

CREATE TABLE domainmetadata (
id INT AUTO_INCREMENT,
domain_id INT NOT NULL,
kind VARCHAR(32),
content TEXT,
PRIMARY KEY (id)
) Engine=InnoDB;

CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);

CREATE TABLE cryptokeys (
id INT AUTO_INCREMENT,
domain_id INT NOT NULL,
flags INT NOT NULL,
active BOOL,
content TEXT,
PRIMARY KEY(id)
) Engine=InnoDB;

CREATE INDEX domainidindex ON cryptokeys(domain_id);

CREATE TABLE tsigkeys (
id INT AUTO_INCREMENT,
name VARCHAR(255),
algorithm VARCHAR(50),
secret VARCHAR(255),
PRIMARY KEY (id)
) Engine=InnoDB;

CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);

Step 5. Configure PowerDNS.

Open the /etc/pdns/pdns.conf file and add the following lines:
allow-axfr-ips=
allow-recursion=
launch=gmysql
gmysql-host=127.0.0.1
gmysql-user=
gmysql-password=
gmysql-dbname=powerdns
local-address=
local-port=53
master=yes
recursor=127.0.0.1:5353
setgid=pdns
setuid=pdns
webserver=yes
webserver-address=
webserver-password=
webserver-port=8081

Finally, restart the Power DNS service:

systemctl restart pdns.service
systemctl enable pdns.service

Step 6. Configure Recursor.

Open the /etc/pdns-recursor/recursor.conf file and add the following lines:

setuid=pdns-recursor
setgid=pdns-recursor
allow-from=127.0.0.0/8
local-address=127.0.0.1
local-port=5353

Start the Recursor service:

systemctl restart pdns-recursor

Test Recursor:

host ping.wpcademy.com 127.0.0.1

Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:

ping.wpcademy.com has address 194.109.46.8
ping.wpcademy.com has IPv6 address 2001:888:0:25:169:109:21:66

Congratulation’s! You have successfully installed PowerDNS. Thanks for using this tutorial for installing PowerDNS on CentOS 7 system. For additional help or useful information, we recommend you to check the official PowerDNS web site.

How To Install Invoice Ninja on CentOS 7

Invoice Ninja on CentOS 7

Invoice Ninja is a free and open source web-bases application software that can be used for invoicing, payments, time tracking and many more. It is best solution for invoicing and billing customers. You can easily create and send invoices online in seconds. Invoice Ninja allows you to create your own custom invoice and show live invoice as PDF file.

Prerequisites

This article assumes you have at least basic knowledge of linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo’ to the commands to get root privileges. I will show you through the step by step installation Invoice Ninja on a CentOS 7 server.
Invoice Ninja’s features

Create work tasks and track time
Create invoices online in seconds
Email invoices & get paid online
Mobile responsive design
Integrate 45+ payment gateways
10 fresh invoice template designs
View live invoice .PDF creation
Add your company logo to invoices
Quotations convert to invoices
Auto-billing & recurring invoices
Multiple tax settings
Multiple currencies supported
Client Portal to View Invoices
Alerts when invoices are paid
Set invoice payment due dates
Import expenses and setup vendors

Install Invoice Ninja on CentOS 7

Step 1. First let’s start by ensuring your system is up-to-date.

yum clean all
yum -y install epel-release
yum -y update

Step 2. Install LEMP server.

A CentOS 7 LEMP stack server is required. If you do not have a LEMP installed, you can follow our guide here. Also install required PHP modules:

yum install install php70w-fpm php70w-cli php70w-pear php70w-gd php70w-xml php70w-curl php70w-gmp php70w-pdo php70w-mysql php70w-zip php70w-mbstring php70w-mcrypt

Once the installation is finished, you will need to modify the php.ini configuration file:

nano /etc/php.ini

Change the following line:

cgi.fix_pathinfo=0

Step 3. Configuring MariaDB for Invoice Ninja.

By default, MariaDB is not hardened. You can secure MariaDB using the mysql_secure_installation script. you should read and below each steps carefully which will set root password, remove anonymous users, disallow remote root login, and remove the test database and access to secure MariaDB:

mysql_secure_installation

Configure it like this:

- Set root password? [Y/n] y
- Remove anonymous users? [Y/n] y
- Disallow root login remotely? [Y/n] y
- Remove test database and access to it? [Y/n] y
- Reload privilege tables now? [Y/n] y

Next we will need to log in to the MariaDB console and create a database for the Invoice Ninja. Run the following command:

mysql -u root -p

This will prompt you for a password, so enter your MariaDB root password and hit Enter. Once you are logged in to your database server you need to create a database for Invoice Ninja installation:

MariaDB [(none)]> CREATE DATABASE ninja_db;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON ninja_db.* TO 'ninja'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

Step 4. Configure PHP-FPM.

You will need to configure PHP-FPM pool for Nginx user:

nano /etc/php-fpm.d/www.conf

Change the following lines:

user = nginx
group = nginx
listen = /var/run/php/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Save the file and exit from the text editor.

Next, you will need to create a new directory for PHP session and socket file:

mkdir -p /var/lib/php/session
mkdir -p /var/run/php/
chown -R nginx:nginx /var/lib/php/session/
chown -R nginx:nginx /var/run/php/

Next, start PHP-FPM and enable it to start at boot time using following commands:

systemctl start php-fpm
systemctl enable php-fpm

Step 5. Installing Invoice Ninja.

First thing to do is to go to Invoice Ninja’s download page and download the latest stable version of Invoice Ninja:

cd /var/www/html/
git clone https://github.com/hillelcoren/invoice-ninja.git ninja

You need to install composer:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer

Next, install all the Invoice Ninja dependencies using composer:

cd /var/www/html/ninja
composer install --no-dev -o

Once the installation is done, rename the .env file and make some changes:

mv .env.example .env
nano .env

Change the database values according to your database:

DB_DATABASE=ninja_db
DB_USERNAME=ninja
DB_PASSWORD=Y0urPa55w0rd

Save the file and exit from the text editor. Next, edit the database configuration in the config directory:

nano config/database.php

Change the following lines:

'database' => env('DB_DATABASE', 'ninja_db'),
'username' => env('DB_USERNAME', 'ninja'),
'password' => env('DB_PASSWORD', 'Y0urPa55w0rd'),

Save the file and exit from the text editor and prepare the database with following command:

php artisan migrate

You will be prompted for a run the command, type ‘yes’ and press Enter.

Next, seed the database with all records as shown below:

php artisan db:seed

Run following command to generate the application key and note this application key:

php artisan key:generate

Next, edit the app.php file with nano text editor:

nano config/app.php

Add the key as shown below:

'key' => env('APP_KEY', 'y0urGenerated Key'),

Save and close the file also change some folders permissions:

chown -R nginx:nginx /var/www/html/ninja/

 

Step 6. Configure Nginx for Invoice Ninja.

Create an SSL Certificate and create a new virtual host configuration for Invoice Ninja:

mkdir -p /etc/nginx/cert/openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.keychmod 600 /etc/nginx/cert/*

Next, create a new virtual host configuration file inside /etc/nginx/ directory:

nano /etc/nginx/conf.d/ninja.conf

Add the following lines:

server {
listen 80;
server_name idroot.net;
add_header Strict-Transport-Security max-age=2592000;
rewrite ^ https://$server_name$request_uri? permanent;
}

server {
listen 443 default;
server_name 192.168.15.23;
ssl on;
ssl_certificate /etc/nginx/cert/ninja.crt;
ssl_certificate_key /etc/nginx/cert/ninja.key;
ssl_session_timeout 5m;
ssl_ciphers 'AES128+EECDH:AES128+EDH:!aNULL';
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
root /var/www/html/ninja/public;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}

location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }

# Access and Error Log for Invoice Ninja
access_log /var/log/nginx/ininja.access.log;
error_log /var/log/nginx/ininja.error.log;

sendfile off;

# Handle PHP Applications
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}

location ~ /\.ht {
deny all;
}
}

Save and close the file. Restart the Nginx service for the changes to take effects:

systemctl restart nginx

Step 7. Configure FirewallD Invoice Ninja.

Before accessing Invoice Ninja web interface, you will need to allow http and https service through firewalld:

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Step 8. Accessing Invoice Ninja.

Invoice Ninja will be available on HTTP port 80 by default. Open your favorite browser and navigate to http://yourdomain.com/ or http://server-ip and complete the required the steps to finish the installation.

Congratulation’s! You have successfully installed Invoice Ninja. Thanks for using this tutorial for installing Invoice Ninja on CentOS 7 system. For additional help or useful information, we recommend you to check the official Invoice Ninja web site.

How To Install Pip on CentOS 7

Pip on CentOS 7

The Pip command is a tool for installing and managing Python packages, such as those found in the Python Package Index. With the help of pip you can also install the package of particular version. Most importantly pip has a feature to manage full lists of packages and corresponding version numbers, possible through a “requirements” file. It performs the same basic job as easy_install, but with some extra features.

Prerequisites

This article assumes you have at least basic knowledge of linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo’ to the commands to get root privileges. I will show you through the step by step installation Pip Python on a CentOS 7 server.
Install Pip on CentOS 7

Step 1. First let’s start by ensuring your system is up-to-date.

yum clean all
yum install epel-release
yum -y update

Step 2. Installing Pip.

Method 1.

Install the pip by using Yum command:

yum -y install python-pip

Once the installation is completed you can verify that it was successful by using the following command:

pip -V

Method 2.

Installing Pip with Curl and Python:

curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"

Now install pipby using the following command:

python get-pip.py

Once the installation is completed you can verify the installation:

pip -V

Step 3. How to use pip command.

After installing python-pip package, the pip command will be available on system. There are multiple options available with pip command:

To install new python package type:

pip install packageName

To uninstall python package installed by pip type:

pip uninstall packageName

To search python package type:

pip search packageName

For more Pip options and usage examples you can use the –help flag:

[[email protected] ~]# pip --help


Usage:
pip [options]

Commands:

install Install packages.
uninstall Uninstall packages.
freeze Output installed packages in requirements format.
list List installed packages.
show Show information about installed packages.
search Search PyPI for packages.
wheel Build wheels from your requirements.
zip DEPRECATED. Zip individual packages.
unzip DEPRECATED. Unzip individual packages.
bundle DEPRECATED. Create pybundles.
help Show help for commands.

General Options:

-h, --help Show help.
-v, --verbose Give more output. Option is additive, and can be used up to 3 times.
-V, --version Show version and exit.
-q, --quiet Give less output.
--log-file Path to a verbose non-appending log, that only logs failures. This
log is active by default at /home/sharad/.pip/pip.log.
--log Path to a verbose appending log. This log is inactive by default.
--proxy Specify a proxy in the form [user:passwd@]proxy.server:port.
--timeout Set the socket timeout (default 15 seconds).
--exists-action Default action when a path already exists: (s)witch, (i)gnore,
(w)ipe, (b)ackup.
--cert Path to alternate CA bundle.
[[email protected] ~]#

Congratulation’s! You have successfully installed Pip. Thanks for using this tutorial for installing Pip Python on CentOS 7 system. For additional help or useful information, we recommend you to check the official Python web site.

How To Install lnav on CentOS 7

lnav on CentOS 7

The Log File Navigator (lnav) is an enhanced log file viewer that takes advantage of any semantic information that can be gleaned from the files being viewed, such as timestamps and log levels. Using this extra semantic information, lnav can do things like interleaving messages from different files, generate histograms of messages over time, and providing hotkeys for navigating through the file. It is hoped that these features will allow the user to quickly and efficiently zero in on problems.

Prerequisites

This article assumes you have at least basic knowledge of linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo’ to the commands to get root privileges. I will show you through the step by step installation lnav log file navigator on a CentOS 7 server.
lnav Features

Single log view: all log file contents are merged into a single view based on message timestamps. No need to manually correlate timestamps across multiple windows or figure out the order in which to view rotated log files.
Automatic format detection for several common log files. It also detects gzip/bzi2 files and decompress them automatically on the fly.
Filters: display only lines that match or do not match a set of regular expressions. Filter by error level.
Timeline view: shows a histogram of messages over time. The number of warnings and errors are highlighted in the display so that you can easily see where problems have occurred.
Query logs using SQL: log files are directly used as the backing for SQLite virtual tables.
Automatic data extraction: built-in log message parser can automatically discover and extract interesting data from plainly formatted log messages.
Live operation: Search as you type. New log lines are automatically loaded and searched as they are added; filters apply to lines as they are loaded; and, SQL queries are checked for correctness as you type.
Syntax highlighting with configurable colourizing
Tab completion
Sessions
Supports Linux and Mac

Install lnav on CentOS 7

Step 1. First let’s start by ensuring your system is up-to-date.

yum clean all
yum -y update

Step 2. Installing lnav.

For CentOS 7 or older versions, you need to include EPEL Repository to your YUM first:

yum install epel-release -y

Now, install lnav using yum command:

yum install lnav -y

How to Use lnav

First look at all the options taken by lnav:

usage: lnav [options] [logfile1 logfile2 ...]

A curses-based log file viewer that indexes log messages by type
and time to make it easier to navigate through files quickly.

Key bindings:
? View/leave the online help text.
q Quit the program.

Options:
-h Print this message, then exit.
-H Display the internal help text.
-I path An additional configuration directory.
-i Install the given format files and exit.
-C Check configuration and then exit.
-d file Write debug messages to the given file.
-V Print version information.

-a Load all of the most recent log file types.
-r Load older rotated log files as well.
-t Prepend timestamps to the lines of data being read in
on the standard input.
-w file Write the contents of the standard input to this file.

-c cmd Execute a command after the files have been loaded.
-f path Execute the commands in the given file.
-n Run without the curses UI. (headless mode)
-q Do not print the log messages after executing all
of the commands or when lnav is reading from stdin.

Optional arguments:
logfile1 The log files or directories to view. If a
directory is given, all of the files in the
directory will be loaded.

Examples:
To load and follow the syslog file:
$ lnav

To load all of the files in /var/log:
$ lnav /var/log

To watch the output of make with timestamps prepended:
$ make 2>&1 | lnav -t
Let’s use some examples to demonstrate the working of this tool, run lnav command and it will start displaying the real time information on the basis of most recent time stamps from all log files:
lnav

lnav-log-viewer

Congratulation’s! You have successfully installed Seafile. Thanks for using this tutorial for installing lnav log file navigator on CentOS 7 system. For additional help or useful information, we recommend you to check the official lnav web site.