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.