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

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