Appearance
Installation on Apache
This guide will walk you through installing OmniSuite CMS on a server running Apache web server.
Table of Contents
- Prerequisites
- Step 1: Server Preparation
- Step 2: Install PHP and Extensions
- Step 3: Install Composer and Node.js
- Step 4: Create Database
- Step 5: Upload Files
- Step 6: Configure Apache
- Step 7: Enable mod_rewrite
- Step 8: Set Permissions
- Step 9: Run the Installer
- Step 10: Post-Installation
- Troubleshooting
Prerequisites
Before starting, ensure you have:
- ✅ Root or sudo access to server
- ✅ Apache installed and running
- ✅ PHP 8.2+ installed
- ✅ MySQL/PostgreSQL database server
- ✅ Domain or IP address configured
- ✅ Reviewed System Requirements
Step 1: Server Preparation
Update System Packages
Ubuntu/Debian:
bash
sudo apt update
sudo apt upgrade -yCentOS/RHEL:
bash
sudo yum update -yInstall Required Tools
Ubuntu/Debian:
bash
sudo apt install -y curl wget git unzipCentOS/RHEL:
bash
sudo yum install -y curl wget git unzipStep 2: Install PHP and Extensions
Install PHP 8.2+
Ubuntu 22.04+:
bash
sudo apt install -y php8.2 libapache2-mod-php8.2 php8.2-cliUbuntu 20.04:
bash
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install -y php8.2 libapache2-mod-php8.2 php8.2-cliCentOS/RHEL:
bash
sudo yum install -y epel-release
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo yum module reset php
sudo yum module enable php:remi-8.2
sudo yum install -y php php-cliInstall Required PHP Extensions
Ubuntu/Debian:
bash
sudo apt install -y \
php8.2-mysql \
php8.2-pgsql \
php8.2-sqlite3 \
php8.2-mbstring \
php8.2-xml \
php8.2-curl \
php8.2-intl \
php8.2-zip \
php8.2-gd \
php8.2-bcmathCentOS/RHEL:
bash
sudo yum install -y \
php-mysqlnd \
php-pgsql \
php-sqlite3 \
php-mbstring \
php-xml \
php-curl \
php-intl \
php-zip \
php-gd \
php-bcmathVerify PHP Installation
bash
php -v
# Should show PHP 8.2.0 or higher
php -m
# Should show all required extensionsConfigure PHP
Edit php.ini:
bash
sudo nano /etc/php/8.2/apache2/php.ini
# or for CentOS: sudo nano /etc/php.iniUpdate these settings:
ini
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
date.timezone = America/New_York # Set your timezoneStep 3: Install Composer and Node.js
Install Composer
bash
cd /tmp
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
composer --versionInstall Node.js and NPM
Using NodeSource:
bash
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejsVerify:
bash
node --version
npm --versionStep 4: Create Database
MySQL/MariaDB
Login to MySQL:
bash
sudo mysql -u root -pCreate Database and User:
sql
CREATE DATABASE omnisuite_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'omnisuite_user'@'localhost' IDENTIFIED BY 'strong_password_here';
GRANT ALL PRIVILEGES ON omnisuite_db.* TO 'omnisuite_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;Step 5: Upload Files
Option A: Using Git
bash
cd /var/www/html
sudo git clone [your-repository-url] omnisuite
cd omnisuiteOption B: Using SCP/SFTP
Upload files to /var/www/html/omnisuite or your web root directory.
Set Ownership
bash
sudo chown -R www-data:www-data /var/www/html/omnisuite
# or for CentOS: sudo chown -R apache:apache /var/www/html/omnisuiteStep 6: Configure Apache
Create Virtual Host
Ubuntu/Debian:
bash
sudo nano /etc/apache2/sites-available/omnisuite.confCentOS/RHEL:
bash
sudo nano /etc/httpd/conf.d/omnisuite.confVirtual Host Configuration
Add the following:
apache
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/html/omnisuite/public
<Directory /var/www/html/omnisuite/public>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/omnisuite_error.log
CustomLog ${APACHE_LOG_DIR}/omnisuite_access.log combined
</VirtualHost>Important: Replace yourdomain.com and path with your actual values.
Enable Site
Ubuntu/Debian:
bash
sudo a2ensite omnisuite.conf
sudo systemctl reload apache2CentOS/RHEL:
bash
sudo systemctl reload httpdStep 7: Enable mod_rewrite
Check if Enabled
Ubuntu/Debian:
bash
apache2ctl -M | grep rewriteCentOS/RHEL:
bash
httpd -M | grep rewriteEnable mod_rewrite
Ubuntu/Debian:
bash
sudo a2enmod rewrite
sudo systemctl restart apache2CentOS/RHEL:
bash
# Usually enabled by default
# If not, edit /etc/httpd/conf/httpd.conf and uncomment:
# LoadModule rewrite_module modules/mod_rewrite.so
sudo systemctl restart httpdVerify .htaccess Support
Ensure your virtual host allows .htaccess overrides:
apache
<Directory /var/www/html/omnisuite/public>
AllowOverride All
Require all granted
</Directory>Step 8: Set Permissions
Set Directory Permissions
bash
cd /var/www/html/omnisuite
sudo chown -R www-data:www-data .
# or for CentOS: sudo chown -R apache:apache .
sudo find . -type d -exec chmod 755 {} \;
sudo find . -type f -exec chmod 644 {} \;Set Writable Directories
bash
sudo chmod -R 775 storage bootstrap/cache
sudo chown -R www-data:www-data storage bootstrap/cache
# or for CentOS: sudo chown -R apache:apache storage bootstrap/cacheSet Executable Files
bash
sudo chmod +x artisanStep 9: Run the Installer
Access the Installer
- Open browser
- Navigate to:
http://yourdomain.com/install - Or:
http://your-server-ip/install
Follow Installer Steps
See Web Installer Guide for detailed steps.
Step 10: Post-Installation
Install Dependencies (if needed)
bash
cd /var/www/html/omnisuite
composer install --no-dev --optimize-autoloader
npm install
npm run buildSet Up SSL (Let's Encrypt)
Install Certbot:
bash
sudo apt install -y certbot python3-certbot-apacheObtain Certificate:
bash
sudo certbot --apache -d yourdomain.com -d www.yourdomain.comAuto-Renewal:
bash
sudo certbot renew --dry-runConfigure Cron Jobs
Edit crontab:
bash
sudo crontab -e -u www-data
# or for CentOS: sudo crontab -e -u apacheAdd:
* * * * * cd /var/www/html/omnisuite && php artisan schedule:run >> /dev/null 2>&1Set Up Queue Worker
See Post-Installation Setup for queue worker configuration.
Troubleshooting
500 Internal Server Error
Solutions:
Check Apache error log:
bashsudo tail -f /var/log/apache2/error.log # or for CentOS: sudo tail -f /var/log/httpd/error_logVerify .htaccess exists in
public/directoryCheck mod_rewrite is enabled
Verify file permissions
mod_rewrite Not Working
Solutions:
Enable mod_rewrite:
bashsudo a2enmod rewrite sudo systemctl restart apache2Check AllowOverride is set to "All"
Verify .htaccess file exists
Check Apache configuration
Permission Denied
Solutions:
Check file ownership:
bashls -la /var/www/html/omnisuiteFix ownership:
bashsudo chown -R www-data:www-data /var/www/html/omnisuiteFix permissions:
bashsudo chmod -R 755 /var/www/html/omnisuite sudo chmod -R 775 storage bootstrap/cache
Next Steps
- Review Post-Installation Setup
- Configure General Settings
- Read Getting Started Guide
Last Updated: [Date will be updated during final review]