mirror of
https://github.com/myronblair/epic-download
synced 2026-06-30 17:51:00 -05:00
auto-commit for 01035626-fc86-4553-b85b-3396ef438dce
This commit is contained in:
@@ -0,0 +1,336 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user