How to Install Orchard CMS with LEMP Stack on Rocky Linux 8
Orchard Core is an open-source modular and multi-tenant application framework built with ASP.NET Core, and a content management system (CMS) built on top of that framework. In this article, we are going to learn how to install Orchard CMS on Rocky Linux 8. So, let’s get started.
Checkout the Orchard CMS Project Here.
Try this wiki on our VPS. Starting at just $5/month with 24x7 In-house customer support.
Pre-requisites :
-
A system with Rocky Linux 8 installed and running.
-
root
access to the system. -
Docker installed and running, for this, you can refer to one of our guides on installing the Docker on Rocky Linux 8.
- LEMP Stack installed and running, for this, you can refer to one of our guides on installing the LEMP Stack (Nginx, MariaDB, and PHP).
Once you're all set, we'll proceed with Orchard CMS installation and configuration.
Create Database
Let us begin with creating a Database and a user. We will then grant the required privileges to the user so it can interact with the Database.
mysql -u root
CREATE DATABASE ccorchard;
CREATE USER 'ccorchard'@'localhost' IDENTIFIED BY 'UYGVc%$#Erfgt*&^%4';
GRANT ALL PRIVILEGES ON ccorchard.* TO 'ccorchard'@'localhost';
FLUSH PRIVILEGES;
quit
The above commands will give complete access to
ccorchard
Database to the userccorchard
.We would suggest using a strong and long password.
Configure PHP Settings for Orchard CMS
Configure PHP Memory Limit, Post max size, and Upload max filesize. You can change the limit as per your need.
sed -i 's/memory_limit = .*/memory_limit = 256M/' /etc/php/7.4/apache2/php.ini
sed -i 's/post_max_size = .*/post_max_size = 64M/' /etc/php/7.4/apache2/php.ini
sed -i 's/upload_max_filesize = .*/upload_max_filesize = 64M/' /etc/php/7.4/apache2/php.ini
Enable Apache module if not already enabled then restart the Web Server.
a2enmod php7.4
systemctl restart apache2
Install Let’s Encrypt SSL Certificate
Let's issue an SSL certificate for the domain. For this, we will need the EPEL repository and the mod_ssl package on Rocky Linux 8 operating system.
Update and install EPEL repository and the mod_ssl package on the system using the below command:
dnf install epel-release mod_ssl -y
Next, we will install the certbot client which is used to create Let's Encrypt certificates:
dnf install python3-certbot-nginx -y
Install SSL Certificate
Use the certbot command to issue a Let's Encrypt certificate. Replace dev1.domainhere.info
and dev@dev1.domainhere.info
with your domain name and email :
certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email dev@dev1.domainhere.info -d dev1.domainhere.info
SSL certificates are valid for 90 days. The renewal process is now automated, you do not have to renew this manually.
Configuring Nginx Reverse Proxy
Let's configure nginx.conf
with the following command:
nano /etc/nginx/nginx.conf
Copy below code to nginx.conf
file.
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
}
Now, type in Ctrl+O
and type Ctrl+X
to save and exit the file.
Create a new Nginx configuration file dev1.conf
for the domain with the following command:
vi /etc/nginx/conf.d/dev1.conf
Add the following codes:
Replace
dev1.domainhere.info
withYour Domain Name
and Change SSL Path according to your SSL Path.
upstream app {
server 127.0.0.1:8080;
}
server {
listen 80 default_server;
server_name dev1.domainhere.info;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl; # managed by Certbot
# The host name to respond to
server_name dev3.domainhere.info;
ssl_certificate /etc/letsencrypt/live/dev1.domainhere.info/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/dev1.domainhere.info/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
location / {
proxy_pass http://app;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Real-Port $server_port;
proxy_set_header X-Real-Scheme $scheme;
}
}
Now, press the Esc
key, and type in :wq!
and press the Enter
key to save and exit the file.
Now, restart & check the Nginx with the following commands:
systemctl restart nginx
systemctl status nginx
Enable http and https ( 80/443/8080 ):
To enable http and https connection through the firewall, follow the commands:
firewall-cmd --zone=public --permanent --add-port 8080/tcp
firewall-cmd --zone=public --permanent --add-port 80/tcp
firewall-cmd --zone=public --permanent --add-port 443/tcp
firewall-cmd --reload
Install Orchard CMS using Docker
Let's install Orchard CMS using below command:
docker run --name orchardcms -p 8080:80 orchardproject/orchardcore-cms-linux:latest
Configuring Orchard CMS
Now open the IP address from your browser, this will redirect you to configuring the final parts of the Orchard CMS installation.
http://dev1.domainhere.info:8080
Replace the
dev1.domainhere.info
with the actual IP or domain configured on the server.
Input the Database details which was configured earlier. Follow the below steps:
Now you have successfully installed Orchard CMS with LEMP Stack on Rocky Linux 8.