Shared Hosting-এ Website Deploy

লেসন ১৪ / ৩৮

📤 File Upload Methods

  1. cPanel File Manager — drag drop, ZIP extract
  2. FTP/SFTP via FileZilla → public_html/
  3. Git via SSH (advanced)

🚀 WordPress 1-Click

cPanel → Softaculous → WordPress → Install
- Domain: yourdomain.com
- Directory: (blank for root)
- Site Name, Admin User/Pass
- Auto SSL → Install
- Login: yourdomain.com/wp-admin

📦 PHP App Manual Deploy

# 1. Upload files
public_html/
├── index.php
├── config.php
├── .htaccess
└── assets/

# 2. Create DB (cPanel → MySQL Databases)
- DB name: yoursite_app
- User + Password
- Add user to DB → All privileges

# 3. Connect (config.php)
$host = "localhost";
$db   = "yoursite_app";
$user = "yoursite_user";
$pass = "secret";

# 4. Import schema (phpMyAdmin → Import → SQL)

📜 .htaccess Examples

# Force HTTPS
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

# Pretty URLs (Laravel/CI)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]

# Block IP
Deny from 1.2.3.4

# Cache static

    Header set Cache-Control "max-age=2592000"


# Password protect
AuthType Basic
AuthName "Protected"
AuthUserFile /home/user/.htpasswd
Require valid-user

🌐 Subdomain Setup

cPanel → Subdomains
- Subdomain: blog
- Domain: yourdomain.com
- Document Root: /home/user/blog (auto)
→ Upload files to that folder

📧 Addon Domain

একই hosting plan-এ দ্বিতীয় domain
cPanel → Addon Domains → Create
DNS: addon domain-এর registrar-এ
nameserver শেয়ার hosting-এর দিন

🔒 SSL Setup

  • cPanel → SSL/TLS → Lets Encrypt (auto)
  • AutoSSL feature বেশিরভাগ provider-এ free
  • Custom cert: Paste cert + key + CA bundle

💾 Backup Strategy

# cPanel Full Backup
cPanel → Backup → Download Full Backup
- Files + Email + DB + Config

# Database only
cPanel → phpMyAdmin → Export → SQL
# OR Backup Wizard → MySQL Database

# Automate (cron + script)
0 2 * * * mysqldump -u user -ppass db | gzip > /home/user/backup/db_$(date +\%Y\%m\%d).sql.gz

⏰ Cron in cPanel

cPanel → Cron Jobs → Add
* * * * * /usr/local/bin/php /home/user/public_html/cron.php

# Laravel scheduler
* * * * * cd /home/user/laravel && php artisan schedule:run >/dev/null 2>&1

🎓 মূল কথা ⭐

WordPress = 1-click। Custom PHP = manual upload + DB + .htaccess। SSL via AutoSSL free। Daily backup mandatory — provider failure থেকে নিজে rescue।