Pular para o conteรบdo principal

Instalacao em Hospedagem Compartilhada

This is the complete, baby-step guide to installing FeedbackPulse SaaS on hospedagem compartilhada environments. We cover cPanel, Plesk, DirectAdmin, CyberPanel, HestiaCP, and generic hospedagem compartilhada panels.

FeedbackPulse SaaS is fully compatible with hospedagem compartilhada โ€” even when exec() is disabled and symlinks aren't supported.

You do NOT need to run any php artisan commands, SSH commands, or terminal commands. Everything is handled through the instalador web, the painel de administracao, and your hosting panel's file manager. If you see php artisan commands in other guides, those are for VPS/dedicated servers only โ€” skip them.


Will My Hosting Work?โ€‹

FeedbackPulse SaaS works on any hospedagem compartilhada that meets these minimum requirements:

RequirementMinimumHow to Check
PHP8.2+cPanel โ†’ Select PHP Version
MySQL/MariaDB8.0+ / 10.6+cPanel โ†’ MySQL Banco de Dadoss
mod_rewriteEnabledUsually enabled by default
Cron JobsSupportedcPanel โ†’ Cron Jobs
File Manager or FTPAvailableStandard on all hosts

What If exec() Is Disabled?โ€‹

No problem! FeedbackPulse automatically detects this and uses pure PHP alternatives:

  • Banco de Dados backups use PHP-based dump instead of mysqldump
  • All other features work without exec()

No problem! FeedbackPulse includes a built-in storage fallback that serves uploaded files (logos, images) through PHP when the storage:link symlink can't be created.


Before You Startโ€‹

Have these ready:

  • Your hosting login credentials (cPanel/Plesk/etc.)
  • FTP or File Manager access
  • Your Envato purchase code
  • SMTP email credentials (optional but recommended)

cPanel Instalacao

Step 1: Create the Banco de Dadosโ€‹

  1. Faca login to cPanel
  2. Va para MySQL Banco de Dadoss (under Banco de Dadoss section)
  3. Create a new database:
    • Banco de Dados name: feedbackpulse (your cPanel may prefix it, e.g., cpuser_feedbackpulse)
    • Click Create Banco de Dados
  4. Create a new user:
    • Username: fp_user (will become cpuser_fp_user)
    • Password: Click Password Generator for a strong password โ€” save this!
    • Click Create User
  5. Add user to database:
    • Select the user and database you just created
    • Click Add
    • On the privileges page, check ALL PRIVILEGES
    • Click Make Changes

Write down: Your full database name, username, and password. You'll need them during installation.


Step 2: Upload Filesโ€‹

Option A: File Manager (Easiest)โ€‹

  1. Va para cPanel โ†’ File Manager
  2. Navegue para public_html (or a subdomain folder)
  3. Click Upload in the toolbar
  4. Upload the feedbackpulse-saas.zip file
  5. Wait for the upload to complete
  6. Right-click the ZIP file โ†’ Extract
  7. The files are now extracted into public_html/feedbackpulse-saas/

Option B: FTP Uploadโ€‹

  1. Connect via FTP (FileZilla, WinSCP, etc.)
    • Host: Your domain or ftp.yourdomain.com
    • Username: Your cPanel username
    • Password: Your cPanel password
    • Port: 21
  2. Navegue para public_html/
  3. Upload the entire extracted feedbackpulse-saas folder

Dica: Uploading the ZIP and extracting on the server is much faster than uploading thousands of individual files via FTP.


Step 3: Set the Document Rootโ€‹

This is the most important step. The web server must point to the public/ folder inside your FeedbackPulse directory.

  1. Va para cPanel โ†’ Domains (or Subdomains)
  2. Click Create a New Domain (or Create Subdomain)
  3. Insira seu domain or subdomain: feedback.yourdomain.com
  4. Set Document Root to: public_html/feedbackpulse-saas/public
  5. Click Submit

This is the cleanest approach. Your FeedbackPulse installation lives at feedback.yourdomain.com with the correct document root.

Method B: Addon Domainโ€‹

  1. Va para cPanel โ†’ Addon Domains (older cPanel) or Domains
  2. Add your domain
  3. Set document root to: public_html/feedbackpulse-saas/public

Method C: Main Domain (public_html)โ€‹

If you want FeedbackPulse on your main domain (yourdomain.com):

Option 1: Change Document Root (if your host allows)

Some hosts let you change the document root of your main domain:

  1. Va para cPanel โ†’ Domains
  2. Click Manage on your main domain
  3. Change Document Root to: public_html/feedbackpulse-saas/public

Option 2: Use .htaccess Redirect (if you can't change document root)

FeedbackPulse ships with a root .htaccess that automatically routes requests to the public/ folder. To use this:

  1. Move all files from feedbackpulse-saas/ directly into public_html/
    • So public_html/.htaccess, public_html/public/, public_html/app/, etc.
  2. The root .htaccess will forward all requests to public/

Option 3: Copy public/ Contents (Last Resort)

If nothing else works:

  1. Upload all FeedbackPulse files to a folder outside public_html (e.g., /home/cpuser/feedbackpulse/)
  2. Copy only the contents of the public/ folder into public_html/
  3. Edit public_html/index.php to update the paths:
// Change this line:
require __DIR__.'/../vendor/autoload.php';
// To:
require '/home/cpuser/feedbackpulse/vendor/autoload.php';

// Change this line:
$app = require_once __DIR__.'/../bootstrap/app.php';
// To:
$app = require_once '/home/cpuser/feedbackpulse/bootstrap/app.php';

Replace /home/cpuser/feedbackpulse/ with your actual path. Find it via cPanel โ†’ Terminal (run pwd) or File Manager (look at the breadcrumb path).


Step 4: Set PHP Versionโ€‹

  1. Va para cPanel โ†’ Select PHP Version (or MultiPHP Manager)
  2. Select your domain from the list
  3. Set PHP version to 8.2 or higher
  4. Click Apply

Enable Required Extensionsโ€‹

While in the PHP settings:

  1. Click Extensions tab
  2. Make sure these are checked:
    • pdo_mysql
    • mbstring
    • openssl
    • tokenizer
    • json
    • curl
    • xml
    • ctype
    • fileinfo
    • bcmath
    • gd
    • zip
  3. Click Save

Adjust PHP Configuracoesโ€‹

Va para Options tab and set:

SettingValue
upload_max_filesize20M
post_max_size25M
memory_limit256M
max_execution_time300
max_input_vars3000

Step 5: Install Composer Dependenciesโ€‹

If You Have Terminal Accessโ€‹

  1. Va para cPanel โ†’ Terminal (or SSH in)
  2. Navegue para your FeedbackPulse directory:
cd ~/public_html/feedbackpulse-saas
  1. Run:
php composer.phar install --no-dev --optimize-autoloader

No composer command? FeedbackPulse ships with composer.phar in the root directory. Use php composer.phar instead of composer.

If You Don't Have Terminal Accessโ€‹

If your host doesn't provide Terminal/SSH:

  1. Install Composer dependencies on your local computer first:
composer install --no-dev --optimize-autoloader
  1. Then upload the entire project including the vendor/ folder to your hosting

Pre-built packages: If you purchased the "with vendor" package from CodeCanyon, the vendor/ folder is already included and you can skip this step entirely.


Step 6: Set File Permissionsโ€‹

  1. Va para cPanel โ†’ File Manager
  2. Navegue para your FeedbackPulse directory
  3. Right-click the storage folder โ†’ Change Permissions
  4. Set to 0775 and check "Recurse into subdirectories"
  5. Do the same for the bootstrap/cache folder

If you have Terminal access:

cd ~/public_html/feedbackpulse-saas
chmod -R 775 storage bootstrap/cache

Step 7: Run the Web Installerโ€‹

  1. Abra seu navegador
  2. Navegue para: https://yourdomain.com/install (or https://feedback.yourdomain.com/install)
  3. Follow the 5-step wizard:
    • License: Insira seu Envato purchase code
    • Requisitos: Everything should be green
    • Banco de Dados: Enter the database name, username, and password from Step 1
    • Admin: Create your superadmin account
    • Email: Enter SMTP details (or skip for now)

Banco de Dados host on cPanel: Usually localhost or 127.0.0.1. Some hosts use a different server โ€” check your cPanel MySQL settings.


Step 8: Set Up Cron Jobโ€‹

FeedbackPulse needs a tarefa cron for scheduled tasks (resumo por e-mails, trial expiry, reports, etc.). On hospedagem compartilhada you have two options:

If your panel only supports URL-based cron (no CLI commands), use FeedbackPulse's built-in web cron endpoint:

  1. During installation, a CRON_TOKEN is auto-generated and shown on the completion page
  2. Va para cPanel โ†’ Cron Jobs
  3. Under "Add New Cron Job":
    • Common Configuracoes: Select "Once Per Minute" (or "Every 5 Minutes")
    • Command:
    wget -q -O /dev/null "https://yourdomain.com/cron/run?token=YOUR_CRON_TOKEN"
  4. Click Add New Cron Job

Where to find your token: Check your .env file for the CRON_TOKEN= line. It was shown on the installer completion page.

Seguranca: The token is a 64-character random string. Without it the endpoint returns 403.

Option B: CLI Command (if your panel supports it)โ€‹

  1. Va para cPanel โ†’ Cron Jobs
  2. Under "Add New Cron Job":
    • Common Configuracoes: Select "Once Per Minute ( * * * )"
    • Command:
    /usr/local/bin/php /home/cpuser/public_html/feedbackpulse-saas/artisan schedule:run >> /dev/null 2>&1
  3. Click Add New Cron Job

Importante: Replace /home/cpuser/public_html/feedbackpulse-saas/ with your actual path!

Finding the Correct Paths (for Option B)โ€‹

PHP path: Try these (one will work):

  • /usr/local/bin/php
  • /usr/bin/php
  • /opt/cpanel/ea-php82/root/usr/bin/php (cPanel with EasyApache)

Project path:

  • Check in cPanel โ†’ Terminal: run cd ~/public_html/feedbackpulse-saas && pwd
  • Or look at the File Manager breadcrumb path

Test the cron: In Terminal, run:

/usr/local/bin/php /home/cpuser/public_html/feedbackpulse-saas/artisan schedule:run

If it works, the cron is correct.


Step 9: SSL Certificateโ€‹

  1. Va para cPanel โ†’ SSL/TLS (or Let's Encrypt SSL if available)
  2. If your host provides AutoSSL or Let's Encrypt, enable it for your domain
  3. Wait a few minutes for the certificate to be issued
  4. Verify by visiting https://yourdomain.com

Most modern shared hosts include free SSL via Let's Encrypt or AutoSSL.


Step 10: Verify Instalacaoโ€‹

  1. Visit https://yourdomain.com โ€” see the pagina inicial
  2. Visit https://yourdomain.com/login โ€” log in with your superadmin credentials
  3. Visit https://yourdomain.com/up โ€” should show "OK"
  4. Upload a logo in Configuracoes โ†’ Branding โ€” verify the image displays correctly

Plesk Instalacao

Step 1: Create the Banco de Dadosโ€‹

  1. Faca login to Plesk
  2. Va para Banco de Dadoss โ†’ Add Banco de Dados
  3. Banco de Dados name: feedbackpulse
  4. Create a database user with a strong password
  5. Click OK

Step 2: Upload Filesโ€‹

  1. Va para Files (File Manager)
  2. Navegue para your domain's directory (e.g., httpdocs/)
  3. Upload and extract feedbackpulse-saas.zip

OR via FTPโ€‹

Use the FTP credentials from Plesk โ†’ FTP Access


Step 3: Set Document Rootโ€‹

  1. Va para Websites & Domains โ†’ your domain
  2. Click Hosting & DNS โ†’ Hosting Configuracoes (or Apache & nginx Configuracoes)
  3. Change Document root to: httpdocs/feedbackpulse-saas/public
  4. Click OK

Plesk makes this easy โ€” you can set the document root directly in hosting settings.


Step 4: Set PHP Versionโ€‹

  1. Va para Websites & Domains โ†’ your domain
  2. Click PHP Configuracoes
  3. Set PHP version to 8.2 or higher
  4. Under Additional configuration directives, add:
upload_max_filesize = 20M
post_max_size = 25M
memory_limit = 256M
max_execution_time = 300
  1. Click OK

Step 5: Install Dependenciesโ€‹

  1. Va para Websites & Domains โ†’ your domain
  2. Click SSH (if available) or use Terminal
  3. Run:
cd httpdocs/feedbackpulse-saas
php composer.phar install --no-dev --optimize-autoloader
chmod -R 775 storage bootstrap/cache

Step 6: Run the Web Installerโ€‹

Navegue para https://yourdomain.com/install and follow the wizard.


Step 7: Set Up Cron Jobโ€‹

  1. Va para Websites & Domains โ†’ Scheduled Tasks (or Cron Jobs)
  2. Click Add Task
  3. Recommended (URL method): Set command to:
wget -q -O /dev/null "https://yourdomain.com/cron/run?token=YOUR_CRON_TOKEN"
  1. Alternative (CLI method): If you prefer CLI:
/usr/bin/php /var/www/vhosts/yourdomain.com/httpdocs/feedbackpulse-saas/artisan schedule:run
  1. Run: Every minute (* * * * *)
  2. Click OK

DirectAdmin Instalacao

Step 1: Create Banco de Dadosโ€‹

  1. Faca login to DirectAdmin
  2. Va para MySQL Management โ†’ Create new Banco de Dados
  3. Banco de Dados name: feedbackpulse
  4. Banco de Dados user: fp_user
  5. Set a strong password
  6. Click Create

Step 2: Upload & Extractโ€‹

  1. Va para File Manager
  2. Navegue para domains/yourdomain.com/public_html/
  3. Upload the ZIP file
  4. Extract it

Step 3: Set Document Rootโ€‹

In DirectAdmin, the easiest approach is to use a subdomain:

  1. Va para Subdomain Management
  2. Create a subdomain (e.g., feedback.yourdomain.com)
  3. Set document root to: public_html/feedbackpulse-saas/public

Or use the .htaccess method described in the cPanel section.


Step 4: PHP Version & Cronโ€‹

  1. PHP Version: Va para PHP Version Selector โ†’ set to 8.2+
  2. Cron: Va para Cron Jobs โ†’ add (recommended URL method):
* * * * * wget -q -O /dev/null "https://yourdomain.com/cron/run?token=YOUR_CRON_TOKEN"

Or CLI method:

* * * * * /usr/local/bin/php /home/username/domains/yourdomain.com/public_html/feedbackpulse-saas/artisan schedule:run >> /dev/null 2>&1

Step 5: Run Installerโ€‹

Navegue para https://yourdomain.com/install (or subdomain URL).


CyberPanel Instalacao

  1. Create Website โ†’ add your domain
  2. File Manager โ†’ upload files to /home/yourdomain.com/public_html/
  3. Create Banco de Dados in MySQL section
  4. Set PHP to 8.2+
  5. Document Root: Use the OpenLiteSpeed rewrite context or .htaccess
  6. Cron Jobs: Add via CyberPanel's Cron section
  7. Run installer at https://yourdomain.com/install

HestiaCP Instalacao

  1. Web โ†’ Add domain
  2. Advanced Options โ†’ set document root to public_html/feedbackpulse-saas/public
  3. DB โ†’ Create MySQL database
  4. Upload files via File Manager or SFTP
  5. Cron โ†’ add the schedule:run command
  6. Run installer

Generic Shared Hosting (Any Panel)

If your hosting panel isn't listed above, follow this universal approach:

  1. Create a database โ€” use your panel's MySQL/database section
  2. Upload files โ€” via File Manager or FTP
  3. Point domain to public/ โ€” change document root or use .htaccess redirect
  4. Set PHP 8.2+ โ€” via PHP version selector
  5. Enable extensions โ€” pdo_mysql, mbstring, curl, gd, zip, bcmath, fileinfo, xml
  6. Set permissions โ€” storage/ and bootstrap/cache/ must be writable (775)
  7. Run installer โ€” visit /install in browser
  8. Add cron โ€” * * * * * running wget -q -O /dev/null "https://yourdomain.com/cron/run?token=YOUR_CRON_TOKEN"
  9. Enable SSL โ€” via your panel's SSL section

Updating on Shared Hosting

When a new version is released, updating is simple โ€” no terminal needed:

  1. Back up โ€” go to Admin Panel โ†’ Backups and create a database backup
  2. Upload new files โ€” use File Manager or FTP to overwrite existing files (keep your .env file!)
  3. Visit https://yourdomain.com/update and log in as Super Admin
  4. Click "Run Update" โ€” this automatically runs database migrations, clears caches, and updates the version

That's it! No php artisan commands, no SSH, no terminal. Just upload and click.


Shared Hosting Solucao de Problemas

"500 Internal Server Error" After Uploadโ€‹

Cause: Usually a permissions issue.

Fix:

  1. Set storage/ to 775 recursively
  2. Set bootstrap/cache/ to 775
  3. Check .htaccess files are present (some FTP clients skip dotfiles)

"404 Not Found" on All Pagesโ€‹

Cause: mod_rewrite is not enabled or .htaccess is not being read.

Fix:

  1. Verify .htaccess exists in both the root AND public/ directories
  2. Contact your host to enable mod_rewrite
  3. Make sure AllowOverride All is set (ask your host)

"Class Not Found" or "Vendor Autoload" Errorโ€‹

Cause: The vendor/ folder is missing.

Fix: You need to run composer install or upload the vendor/ directory. See Step 5 in the cPanel section.

Images/Logos Not Showingโ€‹

Cause: The storage symlink wasn't created (common on hospedagem compartilhada).

Fix: FeedbackPulse automatically serves files via PHP when the symlink is missing. If images still don't show:

  1. Check storage/app/public/ directory exists and is writable
  2. Try creating the symlink manually via Terminal:
ln -s /home/user/feedbackpulse-saas/storage/app/public /home/user/feedbackpulse-saas/public/storage
  1. If that fails, the PHP fallback will handle it automatically

"Banco de Dados Connection Refused"โ€‹

Cause: Wrong database host on hospedagem compartilhada.

Fix:

  • Try localhost first
  • If that fails, try 127.0.0.1
  • Some hosts use a remote MySQL server (check your panel for the MySQL host)
  • On cPanel: check Remote MySQL section

Cron Job Not Runningโ€‹

Fix:

  1. Verify the PHP path is correct:
    • Try: /usr/local/bin/php or /usr/bin/php
    • On EasyApache (cPanel): /opt/cpanel/ea-php82/root/usr/bin/php
  2. Verify the project path is correct (use pwd in Terminal)
  3. Test manually in Terminal first
  4. Check cPanel's cron email for error messages

"Allowed Memory Size Exhausted"โ€‹

Fix: Increase PHP memory limit:

  • cPanel โ†’ Select PHP Version โ†’ Options โ†’ memory_limit = 256M
  • Or add to .htaccess: php_value memory_limit 256M

Can't Access Installerโ€‹

Fix:

  1. Make sure you're visiting /install (not /install/)
  2. Delete storage/installed.lock if you need to re-run the installer
  3. Verify the .htaccess rewrite is working

Shared Hosting Tips & Best Practices

Performanceโ€‹

  • Use file sessions (default) โ€” works reliably on hospedagem compartilhada out of the box. You can switch to database sessions later via .env for extra reliability
  • Enable OPcache if available in your PHP settings
  • Use CDN (like Cloudflare free plan) for static assets

Segurancaโ€‹

  • Keep the main application files outside public_html if possible (use Method C from cPanel section)
  • Never expose the .env file โ€” the .htaccess blocks it, but verify
  • Enable SSL (most hosts offer free Let's Encrypt)
  • Keep PHP updated to the latest 8.2.x patch

Backupsโ€‹

  • FeedbackPulse includes a built-in backup feature that works without exec()
  • On hospedagem compartilhada, it uses PHP-based backup (slightly slower but fully functional)
  • Also use your hosting panel's backup feature as an additional safety net

Emailโ€‹

  • Shared hosting SMTP usually has sending limits (100-500/day)
  • For production SaaS with many tenants, consider using an external SMTP provider (Mailgun, SendGrid)
  • Configure external SMTP in Admin โ†’ Configuracoes โ†’ Email

Storage Spaceโ€‹

  • Monitor your hosting disk usage โ€” feedback photos can add up
  • Configure retencao de dados policies to auto-delete old data
  • Use your panel's Disk Usage tool to track space

After Instalacao

Once installed on hospedagem compartilhada, everything works the same as a VPS installation:

  1. Faca login at /login with your superadmin credentials
  2. Va para Admin โ†’ Plans to review planos de assinatura
  3. Va para Admin โ†’ Configuracoes to configure payments, email, AI
  4. Va para Admin โ†’ Landing Page to customize your homepage
  5. Test registration in an incognito window

See: