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

Let’s Encrypt SSL With Lighttpd 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.

Table of Contents

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

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

Step 3. Configure Lighttpd For Your New Cert.

Step 4. Force HTTPS requests for Lighttpd.

Step 5. Set Up Let’s Encrypt SSL Auto Renewal.

 

 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 Lighttpd on a CentOS 7 server.
Install Let’s Encrypt SSL With Lighttpd 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 certbo

You will also need to have Lighttpd installed and running. Of course, if you are adding certificates onto a previously configured web host this would already be installed:

yum -y install lighttpd
systemctl start lighttpd.service

Obtaining a certificate with Certbot:

certbot certonly --webroot -w /var/www/wpcademy.com -d wpcademy.com -d www.wpcademy.com

Combine both certificate and private key in one file.

Lighty likes its certificates formatted in a specific way, so we’re going to combine the private keys and certificate into one file that we’ll tell lighty about later:

cat /etc/letsencrypt/live/idroot.us/privkey.pem /etc/letsencrypt/live/wpcademy.com/cert.pem > /etc/letsencrypt/live/idroot.us/combined.pem

Step 3. Configure Lighttpd For Your New Cert.

Configure lighty to use the new certificate and chain:

nano /etc/lighttpd/lighttpd.conf

Use the below information:

$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/letsencrypt/live/wpcademy.com/web.pem"
ssl.ca-file = "/etc/letsencrypt/live/wpcademy.com/chain.pem"
server.name = "wpcademy.com" 
server.document-root = "/var/www/wpcademy.com"
server.errorlog = "/var/log/lighttpd/wpcademy.com_error.log"
accesslog.filename = "/var/log/lighttpd/wpcademy.com_access.log"

Step 4. Force HTTPS requests for Lighttpd.

We can also configure HTTP to HTTPS redirection on Lighttpd server so that the traffic comes to non-HTTPS site redirect to the HTTPS site:

$HTTP["scheme"] == "http" {
$HTTP["host"] == "wpcadem.com" {
url.redirect = ("/.*" => "https://idroot.us$0")
}
}

Save and close the file when you are finished.

Step 5. Set Up Let’s Encrypt SSL Auto Renewal.

Let’s Encrypt certificates comes with a validity of 90 days; it is highly advisable to configure the cron (Linux Scheduler) job to renew your certificates before they expire:

certbot renew --dry-run

If that appears to be working properly, configure a cron job for the below command:

certbot renew

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

How To Install Docker Compose on CentOS 7

Docker Compose on CentOS 7

Docker Compose is a command line tool to define and configure multi-container docker applications. In other words we can say docker compose is used to link multiple containers and deploy application from a single command.

Table of Contents

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

Step 2. Installing Docker using YUM.

Step 3. Installing Docker Compose.

Step 4. Testing Docker Compose.

 

 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 Docker Compose on a CentOS 7 server.
Install Docker Compose 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 Docker using YUM.

Docker is included by default in the CentOS-Extras repository. To install run the following command:

yum -y install docker
yum -y install device-mapper device-mapper-event device-mapper-libs device-mapper-event-libs

Start and enable Docker service:

systemctl start docker.service
systemctl enable docker.service

And verify your work by checking the status of Docker:

systemctl status docker.service

Step 3. Installing Docker Compose.

Once Docker has been installed, install Docker Compose. First of all, install the EPEL repository by executing the command:

yum install epel-release
yum install -y python-pip

Then you can install Docker Compose:

pip install docker-compose

You will also need to upgrade your Python packages on CentOS 7 to get docker-compose to run successfully:

yum upgrade python*

Check Docker Compose version with the following command:

docker-compose -v

Step 4. Testing Docker Compose.

Now that we have Docker Compose installed, let’s test it with this really simple example, Create a new directory and move into it:

mkdir hello-world
cd hello-world

Create a new YAML file:

nano docker-compose.yml

In this file paste the following content:

wpcademy-compose-test:
image: hello-world

Next, execute the following command in the hello-world directory:

sudo docker-compose up

The output should start with the following:

Output of docker-compose up
Creating helloworld_wpcademy-compose-test_1...
Attaching to helloworld_wpcademy-compose-test_1
wpcademy-compose-test_1 | 
wpcademy-compose-test_1 | Hello from Docker.
wpcademy-compose-test_1 | This message shows that your installation appears to be working correctly.
wpcademy-compose-test_1 |

Docker containers only run as long as the command is active, so the container will stop when the test finishes running.

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

How To Install and Use Traceroute on CentOS 7

Use Traceroute on CentOS 7

Traceroute control is a system diagnostic tool for displaying the route packets take to network host or destination. It shows how long each hop will take and how many hops that the packet needs to reach the specify destination. In Linux, traceroute command is used while in windows and DOS surroundings, they utilized tracert command.

Table of Contents

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

Step 2. Installing Traceroute.

 

 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 Vagrant virtual development environment on a CentOS 7 server.
Install and Use Traceroute 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 Traceroute.

To install traceroute, run the following command:

yum install traceroute -y

Verify the command install or not:

# which traceroute
/bin/traceroute

How to Use Traceroute

Run the tracert command followed with the address of the website. Example, if you wanted to run a traceroute on idroot, you’d run the command:

tracert wpcademy.com

Display basic command line options help for more usage:

# traceroute --help

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

How To Install Vagrant on CentOS 7

Vagrant on CentOS 7

Vagrant is an open source tool for building an entire virtual development environment. Frequently, a test environment is needed for analyzing the latest release and new tools. Also, it reduces the time spent on re-building that your OS. By default, vagrant uses virtualbox for managing the Virtualization. Vagrant acts as the fundamental configuration for managing/deploying multiple reproducible virtual environments with the same configuration.

Table of Contents

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

Step 2. Installing VirtualBox.

Step 3. Installing Vagrant.

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 Vagrant virtual development environment on a CentOS 7 server.
Install Vagrant 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 VirtualBox.

The prerequisite is you need to install Virtualbox before working on Vagrant because Vagrant uses Virtualbox to install virtual machines:

yum -y install gcc dkms make qt libgomp patch 
yum -y install kernel-headers kernel-devel binutils glibc-headers glibc-devel font-forge

Next add VirtualBox repository:

cd /etc/yum.repo.d/
wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo

Install the VirtualBox using yum command:

yum install -y VirtualBox-5.1
/sbin/rcvboxdrv setup

Step 3. Installing Vagrant.

First, download the latest version of the vagrant or use following command to install Vagrant 1.8.1 which is latest at the time of this post:

wget https://releases.hashicorp.com/vagrant/1.8.1/vagrant_1.8.1_x86_64.rpm

Then use the following command to install rpm vagrant package:

yum localinstall vagrant_1.8.1_x86_64.rpm

We can verify the installation by issue command to check the installed version of Vagrant:

vagrant -v

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

How To Install Caddy Web Server on CentOS 7

Caddy Web Server on CentOS 7

KDE is a well-known desktop environment for the Unix-Like systems designed for users who wants to have a nice desktop environment for their machines, It is one of the most used desktop interfaces out there.

Table of Contents

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

Step 2. Installing Caddy web server on CentOS 7.

Step 3. Setting Up Necessary Directories.

Step 4. Installing Caddy as a System Service.

Step 5. Creating Test Web Page and a Caddyfile.

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 KDE Plasma desktop environment on a CentOS 7 server.
Caddy Features

Automatic HTTPS.
Easy Deployment.
Multi-core.
WebSockets.
Rewrites & Redirects.
Virtual Hosts.

Install Caddy Web Server 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 Caddy web server on CentOS 7.

Install Caddy is quick and easy with run the following command:

curl https://getcaddy.com | bash

After the script finishes, you can run the following command to see where is your Caddy’s binary file:

which caddy

Your output should be like below:

/usr/local/bin/caddy

Step 3. Setting Up Necessary Directories.

Next, create the directories where we will store the Caddy configuration file Caddyfile and SSL certificates:

mkdir /etc/caddy
chown -R root:caddy /etc/caddy
touch /etc/caddy/Caddyfile
mkdir /etc/ssl/caddy
chown -R caddy:root /etc/ssl/caddy
chmod 0770 /etc/ssl/caddy
mkdir /var/www
chown caddy:caddy /var/www

Step 4. Installing Caddy as a System Service.

We also need to create a new SystemD configuration script:

cd /etc/systemd/system/
nano caddy.service

Add following line:

[Unit]
Description=Caddy HTTP/2 web server
Documentation=https://caddyserver.com/docs
After=network-online.target
Wants=network-online.target systemd-networkd-wait-online.service

[Service]
Restart=on-failure
StartLimitInterval=86400
StartLimitBurst=5

; User and group the process will run as.
User=caddy
Group=caddy

; Letsencrypt-issued certificates will be written to this directory.
Environment=CADDYPATH=/etc/ssl/caddy

; Always set "-root" to something safe in case it gets forgotten in the Caddyfile.
ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp
ExecReload=/bin/kill -USR1 $MAINPID

; Limit the number of file descriptors; see `man systemd.exec` for more limit settings.
LimitNOFILE=1048576
; Unmodified caddy is not expected to use more than that.
LimitNPROC=64

; Use private /tmp and /var/tmp, which are discarded after caddy stops.
PrivateTmp=true
; Use a minimal /dev
PrivateDevices=true
; Hide /home, /root, and /run/user. Nobody will steal your SSH-keys.
ProtectHome=true
; Make /usr, /boot, /etc and possibly some more folders read-only.
ProtectSystem=full
; … except /etc/ssl/caddy, because we want Letsencrypt-certificates there.
;   This merely retains r/w access rights, it does not add any new. Must still be writable on the host!
ReadWriteDirectories=/etc/ssl/caddy

; The following additional security directives only work with systemd v229 or later.
; They further retrict privileges that can be gained by caddy. Uncomment if you like.
; Note that you may have to add capabilities required by any plugins in use.
;CapabilityBoundingSet=CAP_NET_BIND_SERVICE
;AmbientCapabilities=CAP_NET_BIND_SERVICE
;NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

Set the owner and permissions:

chown root:root /etc/systemd/system/caddy.service
chmod 644 /etc/systemd/system/caddy.service

At last, execute the following commands to enable Caddy to run on boot:

systemctl enable caddy
systemctl start caddy

Step 5. Creating Test Web Page and a Caddyfile.

For testing purposes, we will create a test HTML file:

mkdir -p /var/www/wpcademy.com
echo "Caddy" > /var/www/wpcademy.com/index.html
chown -R www-data: /var/www/my-domain.com

Next, add our domain to the Caddy configuration file:

nano /etc/caddy/Caddyfile

Add following line:

my-domain.com {
    root /var/www/wpcademy.com
}

Save the file and exit the editor. To apply the changes, restart Caddy:

systemctl restart caddy.service

Now, with a web browser, just go to https://wpcademy.com, and you will see our test page!

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

 

How To Install PimCore on CentOS 7

PimCore on CentOS 7

Pimcore is a free and open-source web content management platform for creating and managing web applications and digital presences released under the terms of the BSD Licence. The pimcore platform contains various integrated applications for web content management, product information management, multi-channel publishing, e-commerce and various other marketing-specific applications like digital asset management, marketing management and an integrated behavioral targeting engine for personalizing content.

Table of Contents

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

Step 2. Install LAMP server.

Step 3. Installing PimCore.

Step 4. Configuring MariaDB for Pimcore.

Step 5. Configuring Apache web server for Pimcore.

Step 6. Configuring the ports in firewall for Pimcore.

Step 7. Accessing Pimcore.

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 PimCore CMS on a CentOS 7 server.
Install PimCore 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. Install LAMP server.

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

yum -y install php-gd php-imap php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp curl curl-devel

Step 3. Installing PimCore.

Download the latest stable release of Pimcore to your server:

wget https://www.pimcore.org/download/pimcore-data.zip

Unpack the Pimcore archive to the document root directory on your server:

mkdir /var/www/html/pimcore/
unzip pimcore-data.zip -d /var/www/html/pimcore/

We will need to change some folders permissions:

chown apache:apache -R /var/www/html/pimcore

Step 4. Configuring MariaDB for Pimcore.

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 Pimcore. 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 Pimcore installation:

MariaDB [(none)]> CREATE DATABASE pimcore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON pimcore.* TO 'pimcore'@'localhost' IDENTIFIED BY 'strong_password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

Step 5. Configuring Apache web server for Pimcore.

We will create Apache virtual host for your Pimcore website. First create ‘/etc/httpd/conf.d/vhosts.conf’ file with using a text editor of your choice:

nano /etc/httpd/conf.d/vhosts.conf
IncludeOptional vhosts.d/*.conf

Next, create the virtual host:

mkdir /etc/httpd/vhosts.d/
nano /etc/httpd/vhosts.d/yourdomain.com.conf

Add the following lines:

ServerAdmin [email protected]
DocumentRoot "/var/www/html/pimcore/"
ServerName yourdomain.com
ServerAlias www.yourdomain.com
ErrorLog "/var/log/httpd/yourdomain.com-error_log"
CustomLog "/var/log/httpd/yourdomain.com-access_log" combined

<Directory "/var/www/html/pimcore/">
DirectoryIndex index.html index.php
Options FollowSymLinks
AllowOverride All
Require all granted


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

systemctl restart httpd.service
systemctl enable httpd.service

Step 6. Configuring the ports in firewall for Pimcore.

Modify firewall rules in order to allow access for visitors:

firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --reload

Step 7. Accessing Pimcore.

Pimcore 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 Pimcore. Thanks for using this tutorial for installing Pimcore on your CentOS 7 system. For additional help or useful information, we recommend you to check the official Pimcore web site.

How To Install XWiki on CentOS 7

XWiki on CentOS 7

XWiki is a free wiki software platform written in Java. XWiki is an enterprise but open source wiki. It includes WYSIWYG editing, OpenDocument based document import/export, semantic annotations and tagging, and advanced permissions management.

Table of Contents

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

Step 2. Installing Java.

Step 3. Installing XWiki.

Step 4. Start XWiki.

Step 5. Accessing XWiki.

 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 XWiki on a CentOS 7 server.
Install XWiki 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 Java.

Now you will need to install JAVA, run the following command to download the RPM package using the following command:

wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.rpm"

Once you have downloaded the RPM file, you can install the package using following command:

yum localinstall jdk-8u91-linux-x64.rpm

Check if it is successfully installed with the following command:

java -version

Step 3. Installing XWiki.

Run the following commands in Terminal to install XWiki on CentOS 7:

wget http://download.forge.ow2.org/xwiki/xwiki-enterprise-installer-generic-8.4.4-standard.jar

To run the installer, enter the following command:

java -jar xwiki-enterprise-installer-generic-8.4.4-standard.jar

Now, the installer will ask you several questions with a prompt to enter 1 (accept) 2 (quit) 3 (redisplay). Most of the prompts can be answered with 1 (accept).

Step 4. Start XWiki.

To start XWiki, you need to navigate to the directory you chose in the previous step:

cd /usr/local/"XWiki Enterprise 8.4.4"
bash start_xwiki.sh

Step 5. Accessing XWiki.

XWiki will be available on HTTP port 8080 by default. Open your favorite browser and navigate to http://yourdomain.com:8080 or http://server-ip:8080 and complete the required the steps to finish the installation. If you are using a firewall, please open port 80 to enable access to the control panel.

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