How to install WinterCMS on Oracle Linux 9.3

To Install Winter CMS On Oracle Linux 9.3

Introduction:

Winter CMS is an open-source content management system (CMS) designed for simplicity and flexibility in building websites and web applications. It is based on the Laravel PHP framework, known for its elegant syntax and powerful features. Winter CMS provides a user-friendly interface for content creation and management, making it accessible for both developers and non-technical users.

Installation Steps:

Step 1: Check the OS version by using the below command

[root@linuxhelp ~]# cat /etc/os-release
NAME="Oracle Linux Server"
VERSION="9.3"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="9.3"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Oracle Linux Server 9.3"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:9:3:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://github.com/oracle/oracle-linux"
ORACLE_BUGZILLA_PRODUCT="Oracle Linux 9"
ORACLE_BUGZILLA_PRODUCT_VERSION=9.3
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=9.3

Step 2: Install Apache Web Server, MariaDB and PHP by using the below command

[root@linuxhelp ~]# dnf install httpd mariadb-server php php-cli php-fpm php-pdo php-common php-mysqlnd php-curl php-json php-zip php-gd php-xml php-mbstring git unzip -y
Oracle Linux 9 BaseOS Latest (x86_64)                                                                                                                                          16 kB/s | 3.6 kB     00:00
Oracle Linux 9 BaseOS Latest (x86_64)                                                                                                                                         6.5 MB/s |  19 MB     00:02
Oracle Linux 9 Application Stream Packages (x86_64)                                                                                                                            34 kB/s | 3.9 kB     00:00
Oracle Linux 9 Application Stream Packages (x86_64)                                                                                                                           9.2 MB/s |  28 MB     00:03
Oracle Linux 9 UEK Release 7 (x86_64)                                                                                                                                          23 kB/s | 3.0 kB     00:00
Oracle Linux 9 UEK Release 7 (x86_64)                                                                                                                                         9.4 MB/s |  26 MB     00:02
Last metadata expiration check: 0:00:04 ago on Wednesday 31 January 2024 01:27:10 AM.
Package unzip-6.0-56.0.1.el9.x86_64 is already installed.
Dependencies resolved.
==============================================================================================================================================================================================================
 Package                                                  Architecture                         Version                                                  Repository                                       Size
==============================================================================================================================================================================================================
Installing:
 git                                                      x86_64                               2.39.3-1.el9_2                                           ol9_appstream                                    78 k
 httpd                                                    x86_64                               2.4.57-5.0.1.el9                                         ol9_appstream                                    65 k
 mariadb-server                                           x86_64                               3:10.5.22-1.el9_2                                        ol9_appstream                                   9.7 M
 php                                                      x86_64                               8.0.30-1.el9_2                                           ol9_appstream                                   7.6 k
 php-cli                                                  x86_64                               8.0.30-1.el9_2                                           ol9_appstream                                   3.1 M
 php-common                                               x86_64                               8.0.30-1.el9_2                                           ol9_appstream                                   714 k
 php-fpm                                                  x86_64                               8.0.30-1.el9_2                                           ol9_appstream                                   1.6 M
 php-gd                                                   x86_64                               8.0.30-1.el9_2                                           ol9_appstream                                    39 k
 php-mbstring                                             x86_64                               8.0.30-1.el9_2                                           ol9_appstream                                   467 k
 php-mysqlnd                                              x86_64                               8.0.30-1.el9_2                                           ol9_appstream                                   155 k
 php-pdo                                                  x86_64                               8.0.30-1.el9_2                                           ol9_appstream                                    87 k
 php-pecl-zip                                             x86_64                               1.19.2-6.el9                                             ol9_appstream                                    78 k
 php-xml                                                  x86_64                               8.0.30-1.el9_2                                           ol9_appstream                                   144 k
Installing dependencies:
 apr                                                      x86_64                               1.7.0-12.el9_3                                           ol9_appstream                                   131 k
 apr-util                                                 x86_64                               1.6.1-23.el9                                             ol9_appstream                                    99 k
 apr-util-bdb                                             x86_64                               1.6.1-23.el9                                             ol9_appstream                                    12 k
 git-core                                                 x86_64                               2.39.3-1.el9_2                                           ol9_appstream                                   4.3 M
 git-core-doc                                             noarch                               2.39.3-1.el9_2                                           ol9_appstream                                   3.9 M
 httpd-core                                               x86_64                               2.4.57-5.0.1.el9                                         ol9_appstream                                   1.8 M
 httpd-filesystem                                         noarch                               2.4.57-5.0.1.el9                                         ol9_appstream                                    12 k
 httpd-tools                                              x86_64                               2.4.57-5.0.1.el9                                         ol9_appstream                                    94 k
 libzip                                                   x86_64                               1.7.3-7.el9                                              ol9_appstream                                    63 k
 mariadb                                                  x86_64                               3:10.5.22-1.el9_2                                        ol9_appstream                                   1.6 M
 mariadb-common                                           x86_64                               3:10.5.22-1.el9_2                                        ol9_appstream                                    54 k
 mariadb-connector-c                                      x86_64                               3.2.6-1.el9_0                                            ol9_appstream                                   205 k
 mariadb-connector-c-config                               noarch                               3.2.6-1.el9_0                                            ol9_appstream                                   9.7 k
 mariadb-errmsg                                           x86_64                               3:10.5.22-1.el9_2                                        ol9_appstream                                   239 k
 mysql-selinux                                            noarch                               1.0.5-1.el9_0                                            ol9_appstream                                    35 k
 nginx-filesystem                                         noarch                               1:1.20.1-14.0.1.el9_2.1                                  ol9_appstream                                   8.4 k
 oracle-logos-httpd                                       noarch                               90.2-1.0.4.el9                                           ol9_baseos_latest                                37 k
 perl-DBD-MariaDB                                         x86_64                               1.21-16.el9_0                                            ol9_appstream                                   160 k
 perl-Error                                               noarch                               1:0.17029-7.el9                                          ol9_appstream                                    57 k
 perl-File-Copy                                           noarch                               2.34-480.el9                                             ol9_appstream                                    20 k
 perl-Git                                                 noarch                               2.39.3-1.el9_2                                           ol9_appstream                                    43 k
 perl-Sys-Hostname                                        x86_64                               1.23-480.el9                                             ol9_appstream                                    17 k
 perl-TermReadKey                                         x86_64                               2.38-11.el9                                              ol9_appstream                                    42 k
 perl-lib                                                 x86_64                               0.65-480.el9                                             ol9_appstream                                    15 k
Installing weak dependencies:
 apr-util-openssl                                         x86_64                               1.6.1-23.el9                                             ol9_appstream                                    14 k
 mariadb-backup                                           x86_64                               3:10.5.22-1.el9_2                                        ol9_appstream                                   6.5 M
 mariadb-gssapi-server                                    x86_64                               3:10.5.22-1.el9_2                                        ol9_appstream                                    15 k
 mariadb-server-utils                                     x86_64                               3:10.5.22-1.el9_2                                        ol9_appstream                                   234 k
 mod_http2                                                x86_64                               1.15.19-5.el9                                            ol9_appstream                                   157 k
 mod_lua                                                  x86_64                               2.4.57-5.0.1.el9                                         ol9_appstream                                    59 k
 php-opcache                                              x86_64                               8.0.30-1.el9_2                                           ol9_appstream                                   509 k

Transaction Summary
==============================================================================================================================================================================================================
Install  44 Packages
Installed:
  apr-1.7.0-12.el9_3.x86_64                              apr-util-1.6.1-23.el9.x86_64                    apr-util-bdb-1.6.1-23.el9.x86_64                      apr-util-openssl-1.6.1-23.el9.x86_64
  git-2.39.3-1.el9_2.x86_64                              git-core-2.39.3-1.el9_2.x86_64                  git-core-doc-2.39.3-1.el9_2.noarch                    httpd-2.4.57-5.0.1.el9.x86_64
  httpd-core-2.4.57-5.0.1.el9.x86_64                     httpd-filesystem-2.4.57-5.0.1.el9.noarch        httpd-tools-2.4.57-5.0.1.el9.x86_64                   libzip-1.7.3-7.el9.x86_64
  mariadb-3:10.5.22-1.el9_2.x86_64                       mariadb-backup-3:10.5.22-1.el9_2.x86_64         mariadb-common-3:10.5.22-1.el9_2.x86_64               mariadb-connector-c-3.2.6-1.el9_0.x86_64
  mariadb-connector-c-config-3.2.6-1.el9_0.noarch        mariadb-errmsg-3:10.5.22-1.el9_2.x86_64         mariadb-gssapi-server-3:10.5.22-1.el9_2.x86_64        mariadb-server-3:10.5.22-1.el9_2.x86_64
  mariadb-server-utils-3:10.5.22-1.el9_2.x86_64          mod_http2-1.15.19-5.el9.x86_64                  mod_lua-2.4.57-5.0.1.el9.x86_64                       mysql-selinux-1.0.5-1.el9_0.noarch
  nginx-filesystem-1:1.20.1-14.0.1.el9_2.1.noarch        oracle-logos-httpd-90.2-1.0.4.el9.noarch        perl-DBD-MariaDB-1.21-16.el9_0.x86_64                 perl-Error-1:0.17029-7.el9.noarch
  perl-File-Copy-2.34-480.el9.noarch                     perl-Git-2.39.3-1.el9_2.noarch                  perl-Sys-Hostname-1.23-480.el9.x86_64                 perl-TermReadKey-2.38-11.el9.x86_64
  perl-lib-0.65-480.el9.x86_64                           php-8.0.30-1.el9_2.x86_64                       php-cli-8.0.30-1.el9_2.x86_64                         php-common-8.0.30-1.el9_2.x86_64
  php-fpm-8.0.30-1.el9_2.x86_64                          php-gd-8.0.30-1.el9_2.x86_64                    php-mbstring-8.0.30-1.el9_2.x86_64                    php-mysqlnd-8.0.30-1.el9_2.x86_64
  php-opcache-8.0.30-1.el9_2.x86_64                      php-pdo-8.0.30-1.el9_2.x86_64                   php-pecl-zip-1.19.2-6.el9.x86_64                      php-xml-8.0.30-1.el9_2.x86_64

Complete!

Step 3: Enable and Start the Apache and MariaDB service by using the below command

[root@linuxhelp ~]# systemctl enable httpd mariadb
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
[root@linuxhelp ~]# systemctl start httpd mariadb 

Step 4: Check the status of the Apache and MariaDB service by using the below command.

[root@linuxhelp ~]# systemctl status httpd mariadb
● httpd.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/httpd.service.d
             └─php-fpm.conf
     Active: active (running) since Wed 2024-01-31 01:29:04 IST; 14s ago
       Docs: man:httpd.service(8)
   Main PID: 104835 (httpd)
     Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec:   0 B/sec"
      Tasks: 213 (limit: 21644)
     Memory: 29.5M
        CPU: 238ms
     CGroup: /system.slice/httpd.service
             ├─104835 /usr/sbin/httpd -DFOREGROUND
             ├─104903 /usr/sbin/httpd -DFOREGROUND
             ├─104904 /usr/sbin/httpd -DFOREGROUND
             ├─104905 /usr/sbin/httpd -DFOREGROUND
             └─104906 /usr/sbin/httpd -DFOREGROUND

Jan 31 01:29:03 linuxhelp systemd[1]: Starting The Apache HTTP Server...
Jan 31 01:29:04 linuxhelp httpd[104835]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe5e:e325%ens160. Set the 'ServerName' directive globall>
Jan 31 01:29:04 linuxhelp httpd[104835]: Server configured, listening on: port 80
Jan 31 01:29:04 linuxhelp systemd[1]: Started The Apache HTTP Server.

● mariadb.service - MariaDB 10.5 database server
     Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: disabled)
     Active: active (running) since Wed 2024-01-31 01:29:06 IST; 12s ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 104837 ExecStartPre=/usr/libexec/mariadb-check-socket (code=exited, status=0/SUCCESS)
    Process: 104859 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir mariadb.service (code=exited, status=0/SUCCESS)
    Process: 105184 ExecStartPost=/usr/libexec/mariadb-check-upgrade (code=exited, status=0/SUCCESS)
   Main PID: 105165 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 18 (limit: 21644)
     Memory: 74.7M
        CPU: 820ms
     CGroup: /system.slice/mariadb.service
             └─105165 /usr/libexec/mariadbd --basedir=/usr

Jan 31 01:29:05 linuxhelp mariadb-prepare-db-dir[105118]: The second is mysql@localhost, it has no password either, but
Jan 31 01:29:05 linuxhelp mariadb-prepare-db-dir[105118]: you need to be the system 'mysql' user to connect.
Jan 31 01:29:05 linuxhelp mariadb-prepare-db-dir[105118]: After connecting you can set the password, if you would need to be
Jan 31 01:29:05 linuxhelp mariadb-prepare-db-dir[105118]: able to connect as any of these users with a password and without sudo
Jan 31 01:29:05 linuxhelp mariadb-prepare-db-dir[105118]: See the MariaDB Knowledgebase at https://mariadb.com/kb

Step 5: Check the installed PHP Version by using the below command.

[root@linuxhelp ~]# php -v
PHP 8.0.30 (cli) (built: Aug  3 2023 17:13:08) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.30, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.30, Copyright (c), by Zend Technologies

Step 6: Login to the MariaDB console by using the below command

[root@linuxhelp ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.22-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>

Step 7: Create a database by using the below command

MariaDB [(none)]> CREATE DATABASE ccwintercms;
Query OK, 1 row affected (0.001 sec)

Step 8: Create a user by using the below command

MariaDB [(none)]> CREATE USER 'ccwintercms_usr'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.002 sec)

Step 9: Grant all privileges to the database for that user by using the below command

MariaDB [(none)]> GRANT ALL PRIVILEGES ON ccwintercms.* TO 'ccwintercms_usr'@'localhost';
Query OK, 0 rows affected (0.002 sec)

Step 10: Flush the privileges and exit from the MariDB console by using the below command

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> QUIT
Bye

Step 11: Create a directory for Winter CMS on the following location.

[root@linuxhelp ~]# mkdir -p /var/www/html/wintercms/

Step 12: Move to Winter CMS directory and download the Winter CMS source package .

[root@linuxhelp ~]# cd /var/www/html/wintercms/
[root@linuxhelp wintercms]# wget https://github.com/wintercms/web-installer/releases/latest/download/install.zip
--2024-01-31 01:32:40--  https://github.com/wintercms/web-installer/releases/latest/download/install.zip
Resolving github.com (github.com)... 20.207.73.82
Connecting to github.com (github.com)|20.207.73.82|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github.com/wintercms/web-installer/releases/download/v1.2.4/install.zip [following]
--2024-01-31 01:32:41--  https://github.com/wintercms/web-installer/releases/download/v1.2.4/install.zip
Reusing existing connection to github.com:443.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/361320322/0877267d-61ab-4f8a-a4a6-3852274ab74d?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240130%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240130T200234Z&X-Amz-Expires=300&X-Amz-Signature=449d0f2fe5847b4f6bc0fdda1394259499097abf161e19b96d02e8d24787ba9e&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=361320322&response-content-disposition=attachment%3B%20filename%3Dinstall.zip&response-content-type=application%2Foctet-stream [following]
--2024-01-31 01:32:41--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/361320322/0877267d-61ab-4f8a-a4a6-3852274ab74d?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240130%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240130T200234Z&X-Amz-Expires=300&X-Amz-Signature=449d0f2fe5847b4f6bc0fdda1394259499097abf161e19b96d02e8d24787ba9e&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=361320322&response-content-disposition=attachment%3B%20filename%3Dinstall.zip&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.110.133, 185.199.111.133, 185.199.108.133, ...
Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.110.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4660072 (4.4M) [application/octet-stream]
Saving to: ‘install.zip’

install.zip                                         100%[=================================================================================================================>]   4.44M  11.1MB/s    in 0.4s

2024-01-31 01:32:43 (11.1 MB/s) - ‘install.zip’ saved [4660072/4660072]

Step 13: Extract the Winter CMS source package by using the unzip command

[root@linuxhelp wintercms]# unzip install.zip
Archive:  install.zip
   creating: install/
   creating: install/api/
  inflating: install/api/composer.json
  inflating: install/api/composer.lock
   creating: install/api/src/
   creating: install/api/src/Exception/
  inflating: install/api/src/Exception/SSLValidationException.php
  inflating: install/api/src/Api.php
   creating: install/api/vendor/
   creating: install/api/vendor/nikic/
   creating: install/api/vendor/nikic/php-parser/
  inflating: install/api/vendor/nikic/php-parser/composer.json
  inflating: install/api/vendor/nikic/php-parser/LICENSE
   creating: install/api/vendor/nikic/php-parser/bin/
  inflating: install/api/vendor/nikic/php-parser/bin/php-parse
  inflating: install/api/vendor/nikic/php-parser/README.md
   creating: install/api/vendor/nikic/php-parser/lib/

Step 14: Change the ownership and permission of the directory by using the below command

[root@linuxhelp wintercms]# chown -R apache:apache /var/www/html/wintercms/
[root@linuxhelp wintercms]# chmod -R 775 /var/www/html/wintercms/

Step 15: Create a Virtual Configuration file to Access Winter CMS by using the below command.

[root@linuxhelp wintercms]# vim /etc/httpd/conf.d/wintercms.conf
Insert the below lines in the configuration file
<VirtualHost *:80>
ServerName linuxhelp1.com
ServerAlias linuxhelp1.com
ServerAdmin admin@linuxhelp1.com
DocumentRoot /var/www/html/wintercms
ErrorLog /etc/httpd/logs/error.log
CustomLog /etc/httpd/logs/access.log combined
<Directory /var/www/html/wintercms/>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

Step 16: Check the syntax of Apache configuration by using the below command

[root@linuxhelp wintercms]# httpd -t
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe5e:e325%ens160. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Step 17: Add Apache Service in the firewall and reload the firewall service by using the following command.

[root@linuxhelp wintercms]# firewall-cmd --permanent --add-port=80/tcp
success
[root@linuxhelp wintercms]#
[root@linuxhelp wintercms]# firewall-cmd --permanent --add-port=443/tcp
success
[root@linuxhelp wintercms]# firewall-cmd --reload
Success

Step 18: Disable the Apache Web Server default welcome page by using the below command.

[root@Linuxhelp wintercms]# setenforce 0

Step 19: Restart the Apache service to apply all changes by using the below command

[root@Linuxhelp wintercms]# systemctl restart httpd

Step 20: Go to the browser and access Winter CMS by using the below URL http://192.168.6.140/install.html

Input the Database details which was configured earlier. Follow the below steps:

Conclusion:

We have reached the end of this article. In this guide, we have walked you through the steps required to installation of Winter CMS on Oracle Linux 9.3. Your feedback is much welcome.

FAQ
Q
Does Winter CMS support multi-language content?
A
Yes, Winter CMS provides built-in support for multi-language content.
Q
Can I customize the design of my website with Winter CMS?
A
Yes, Winter CMS is designed to be customizable. You can create and modify themes, layouts, and partials to tailor the design of your website according to your preferences.
Q
How do I extend Winter CMS functionality?
A
Winter CMS provides a modular and extendable architecture. You can extend functionality by creating plugins, components, and widgets. The system supports Laravel packages, making it easy to integrate additional features.
Q
Is Winter CMS free to use?
A
Yes, Winter CMS is free and open-source, released under the MIT license. This means you can use, modify, and distribute it freely.
Q
What is Winter CMS?
A
Winter CMS is an open-source content management system (CMS) built on the Laravel framework. It provides a flexible and extendable platform for managing digital content on websites.