Files
epic-download/cpanel_php/package/README.md
T
2026-05-06 04:03:04 +00:00

9.2 KiB

Epic Travel & Expeditions - cPanel PHP Installation Guide

📋 Overview

This guide will help you install Epic Travel & Expeditions on standard cPanel hosting using only FTP or File Manager - no SSH, Python, or root access required!

Requirements

  • cPanel hosting account
  • PHP 7.4 or higher
  • MySQL 5.7+ or MariaDB 10.3+
  • At least 100MB disk space
  • FTP client (FileZilla, WinSCP) OR cPanel File Manager access

📦 Package Contents

epic-travel-php/
├── frontend/              # React production build
│   ├── index.html
│   ├── .htaccess
│   └── static/
├── api/                   # PHP backend
│   ├── index.php         # Main API router
│   ├── config.php        # Configuration file
│   ├── .htaccess
│   ├── setup_password.php
│   ├── includes/
│   └── api/
├── database_schema.sql    # MySQL database structure
└── INSTALLATION.md        # This file

🚀 Installation Steps

Step 1: Create MySQL Database

  1. Log into cPanel

  2. Go to "MySQL® Databases"

  3. Create New Database:

    • Database name: epictravel (or your choice)
    • Click "Create Database"
  4. Create Database User:

    • Username: Choose a username
    • Password: Generate a strong password
    • Click "Create User"
  5. Add User to Database:

    • Select your user
    • Select your database
    • Grant ALL PRIVILEGES
    • Click "Make Changes"
  6. Note Down:

    • Database name: username_epictravel
    • Username: username_dbuser
    • Password: your_password
    • Host: localhost

Step 2: Import Database Schema

Option A: Using phpMyAdmin

  1. Go to cPanel → phpMyAdmin
  2. Select your database from the left sidebar
  3. Click "Import" tab
  4. Click "Choose File" and select database_schema.sql
  5. Click "Go" at the bottom
  6. Wait for "Import has been successfully finished" message

Option B: Using MySQL Databases Tool

  1. Go to cPanel → MySQL Databases
  2. Find "Run SQL on Database" section (if available)
  3. Copy contents of database_schema.sql
  4. Paste and execute

Step 3: Upload Files via FTP

Using FTP Client (FileZilla, WinSCP, etc.):

  1. Connect to your server:

    • Host: ftp.yourdomain.com (or your server IP)
    • Username: Your cPanel username
    • Password: Your cPanel password
    • Port: 21 (or 22 for SFTP if available)
  2. Upload Frontend:

    • Navigate to public_html/ (or your domain's folder)
    • Upload all files from frontend/ folder
    • Make sure .htaccess is uploaded
  3. Upload Backend:

    • Create folder: public_html/api/
    • Upload all files from api/ folder to public_html/api/
    • Make sure .htaccess is uploaded
    • Create folder: public_html/api/uploads/ (empty folder for image uploads)

Step 3 (Alternative): Upload via File Manager

Using cPanel File Manager:

  1. Open File Manager in cPanel
  2. Navigate to public_html/
  3. Upload Frontend:
    • Click "Upload" button
    • Select all files from frontend/ folder
    • Wait for upload to complete
  4. Create API Folder:
    • Click "New Folder"
    • Name it api
  5. Navigate to public_html/api/
  6. Upload Backend:
    • Click "Upload"
    • Select all files from api/ folder
  7. Create Uploads Folder:
    • Inside /api/, click "New Folder"
    • Name it uploads
    • Right-click → "Change Permissions" → Set to 755

Step 4: Configure Database Connection

  1. Navigate to public_html/api/

  2. Edit config.php (right-click → Edit or Code Editor)

  3. Update these lines:

    define('DB_HOST', 'localhost');
    define('DB_NAME', 'username_epictravel');  // Your database name
    define('DB_USER', 'username_dbuser');      // Your database user
    define('DB_PASS', 'your_password');        // Your database password
    
  4. Generate JWT Secret Key:

    define('JWT_SECRET_KEY', 'paste_your_generated_key_here');
    
  5. Update CORS Origin:

    define('ALLOWED_ORIGINS', 'https://yourdomain.com');
    
  6. Save the file

Step 5: Setup Admin Password

Method A: Using Browser (Recommended)

  1. Visit: https://yourdomain.com/api/setup_password.php
  2. Enter your desired admin password (e.g., Joker1974!!!)
  3. Check "Update password in database"
  4. Click "Generate Hash"
  5. Verify success message
  6. IMPORTANT: Delete setup_password.php file immediately

Method B: Manual Database Update

  1. Go to phpMyAdmin
  2. Select your database
  3. Find admin_users table
  4. Click "Edit" (pencil icon) for the admin row
  5. In password_hash field, paste the generated hash
  6. Click "Go"

Step 6: Set Folder Permissions

Via File Manager:

  1. Right-click api/uploads/ folder
  2. Select "Change Permissions"
  3. Set to 755 (or 775 if needed)
  4. Click "Change Permissions"

Via FTP Client:

  1. Right-click api/uploads/ folder
  2. File Permissions → 755
  3. Apply

Step 7: Test Installation

  1. Test Backend API:

    • Visit: https://yourdomain.com/api/
    • Should see: {"message":"Epic Travel API is running","status":"healthy"}
  2. Test Frontend:

    • Visit: https://yourdomain.com
    • Should see the Epic Travel homepage
  3. Test Admin Login:

    • Visit: https://yourdomain.com/admin
    • Email: admin@epictravel.com
    • Password: Joker1974!!! (or your chosen password)

🔧 Troubleshooting

"Internal Server Error" (500)

Check PHP Version:

  1. cPanel → MultiPHP Manager
  2. Ensure PHP 7.4 or higher is selected
  3. Apply changes

Check .htaccess:

  1. Ensure .htaccess files are uploaded
  2. Check if they're hidden (Show Hidden Files in File Manager)

Check Permissions:

  • Folders: 755
  • Files: 644
  • uploads/ folder: 755 or 775

Database Connection Failed

  1. Verify credentials in config.php
  2. Check user privileges in cPanel → MySQL Databases
  3. Try localhost vs 127.0.0.1 in DB_HOST
  4. Contact hosting support if issue persists

Frontend Shows Blank Page

  1. Check browser console (F12) for errors
  2. Verify API is working (/api/ endpoint)
  3. Check .htaccess in public_html
  4. Clear browser cache (Ctrl+Shift+Del)

CORS Errors

  1. Update ALLOWED_ORIGINS in config.php
  2. Use your actual domain (with https://)
  3. Restart by saving config.php again

Can't Upload Images

  1. Check uploads/ folder exists
  2. Set permissions to 755 or 775
  3. Check PHP upload_max_filesize:
    • cPanel → MultiPHP INI Editor
    • Increase upload_max_filesize to 10M
    • Increase post_max_size to 10M

Admin Login Not Working

  1. Verify password was set correctly
  2. Run setup_password.php again
  3. Check admin_users table in database
  4. Clear browser cookies

📁 File Structure After Installation

public_html/
├── index.html              # Frontend entry point
├── .htaccess              # Frontend routing
├── static/                # CSS, JS files
│   ├── css/
│   └── js/
├── api/                   # Backend
│   ├── index.php         # API router
│   ├── config.php        # Configuration
│   ├── .htaccess         # API routing
│   ├── includes/         # Core files
│   │   ├── database.php
│   │   ├── jwt.php
│   │   └── functions.php
│   ├── api/              # Endpoints
│   │   ├── auth.php
│   │   ├── destinations.php
│   │   ├── specials.php
│   │   ├── contact.php
│   │   ├── newsletter.php
│   │   └── upload.php
│   └── uploads/          # Image uploads (empty)
└── favicon.ico

🔐 Security Checklist

After installation:

  • Changed admin password from default
  • Updated JWT_SECRET_KEY in config.php
  • Deleted setup_password.php
  • Set correct folder permissions
  • Enabled SSL certificate (HTTPS)
  • Updated ALLOWED_ORIGINS to your domain
  • Verified config.php is not web-accessible
  • Regular backups scheduled

🔄 Updating the Application

  1. Backup first!

    • Download current files via FTP
    • Export database via phpMyAdmin
  2. Upload new files:

    • Don't overwrite config.php
    • Upload updated files only
  3. Run database migrations (if any)

  4. Test thoroughly

📞 Support

Application: Epic Travel & Expeditions Contact: advisor@epictravelexpeditions.com Phone: +1 (817) 266-2022

For Hosting Issues:

  • Contact your hosting provider's support
  • Share error logs from cPanel → Error Logs

Common Hosting Providers with cPanel:

  • Bluehost, HostGator, SiteGround, A2 Hosting, InMotion
  • GoDaddy, Namecheap, DreamHost

Success!

If everything is working:

  1. Visit your website
  2. Browse destinations
  3. Try the contact form
  4. Subscribe to newsletter
  5. Login to admin panel
  6. Add/edit destinations

Congratulations! Your Epic Travel website is now live! 🎉


Next Steps:

  • Customize destination content
  • Add your own images
  • Update contact information
  • Set up email forwarding for contact forms
  • Enable SSL certificate for HTTPS
  • Submit to search engines

Need help? Email us at advisor@epictravelexpeditions.com