mirror of
https://github.com/myronblair/epic-download
synced 2026-06-30 17:51:00 -05:00
337 lines
9.2 KiB
Markdown
337 lines
9.2 KiB
Markdown
# 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:**
|
|
```php
|
|
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:**
|
|
- Visit: https://www.grc.com/passwords.htm
|
|
- Copy the "63 random alpha-numeric characters" key
|
|
- Update in config.php:
|
|
```php
|
|
define('JWT_SECRET_KEY', 'paste_your_generated_key_here');
|
|
```
|
|
|
|
5. **Update CORS Origin:**
|
|
```php
|
|
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
|