You can install Bagisto on GoDaddy, but only on a plan that gives you SSH and lets you run Composer, and even then the entry level shared tiers are a poor fit. Bagisto is a Laravel application whose own documentation asks for PHP 8.3 or 8.4, Composer 2.5 or newer, MySQL 8.0.32 or later and a PHP memory limit of 4 GB during install. A GoDaddy VPS clears that comfortably. A basic cPanel shared plan usually does not.
composer create-project bagisto/bagisto in a folder above the web root, point the document root at public/, configure .env, then run php artisan bagisto:install and php artisan storage:link. On a plan without SSH or with a low memory cap, move to a VPS instead.If you have installed another Composer based CMS on shared hosting before, much of this will look familiar, and our guide to launching Drupal on HostGator follows a nearly identical shape. The reason this install is harder than a WordPress one is structural, not incidental. Laravel applications expect to serve from a public/ subdirectory with the framework and vendor code above it, they need a writable storage tree, they need a queue worker and a scheduler, and they are built with Composer rather than uploaded as a zip. Shared hosting fights every one of those assumptions. Here is how to do it properly and where to stop trying.
Confirm your plan can actually run it
Bagisto publishes its requirements in the official documentation, and they are specific. Check each line against your GoDaddy account before you spend an evening on this.
| Requirement | Bagisto asks for | How to check on GoDaddy |
|---|---|---|
| PHP | 8.3 or 8.4 (8.5 not yet supported) | cPanel > Software > Select PHP Version |
| Database | MySQL 8.0.32+ or MariaDB 10.3+ | cPanel > Databases > phpMyAdmin, run SELECT VERSION(); |
| Composer | 2.5 or higher | Over SSH, composer --version |
| Node | 22.13.1 LTS or higher | Only needed to rebuild front end assets |
| PHP extensions | intl, gd, plus the standard Laravel set | Select PHP Version > Extensions tab |
| Memory limit | 4 GB, execution time 360 seconds | MultiPHP INI Editor, then verify with phpinfo() |
phpinfo() shows your change did not stick, you are on the wrong plan.Enable SSH on the cPanel account
Without shell access this install is not practical. GoDaddy documents the toggle for Web Hosting (cPanel) accounts and it takes about a minute.
Sign in and open your product list. Under Web Hosting, find the cPanel account and select Manage. On the account Dashboard open the Settings tab, find SSH access and select Manage, then switch it on. Your credentials appear on that screen, and per GoDaddy’s help article your cPanel password doubles as the SSH password. No key generation is required, though using a key is still the better habit.
ssh cpaneluser@yourdomain.com
# Confirm what you are working with
php -v
php -i | grep -E 'memory_limit|max_execution_time'
composer --version || echo "Composer not installed"
mysql --versionIf Composer is missing, install it into your home directory rather than fighting for a system path.
cd ~
curl -sS https://getcomposer.org/installer -o composer-setup.php
php composer-setup.php --install-dir=$HOME/bin --filename=composer
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
composer --versionCreate the database
In cPanel open MySQL Databases, which sits in the same panel section as the tools covered in our note on managing a site from cPanel. Create a database, create a user with a strong password, then grant that user All Privileges on the database. GoDaddy prefixes both names with your account username, so note the full prefixed values. Then confirm the server version in phpMyAdmin with SELECT VERSION();, because Bagisto’s minimum is 8.0.32 and older shared clusters sometimes sit below it.
utf8mb4 with utf8mb4_unicode_ci collation. Bagisto stores product data in multiple locales and a legacy utf8 collation will truncate emoji and some non Latin characters silently.Install Bagisto with Composer
Install outside the web root. This is the single most important structural decision in the whole process, because it is what keeps .env, vendor/ and your storage tree unreachable from a browser.
cd ~
composer create-project bagisto/bagisto shop
cd shop
# If memory is the blocker, retry with the CLI limit lifted
php -d memory_limit=-1 $HOME/bin/composer create-project bagisto/bagisto shopThat leaves you with ~/shop containing app/, public/, storage/, vendor/ and an .env file. Edit the environment file before running the installer.
APP_NAME=Bagisto
APP_ENV=production
APP_DEBUG=false
APP_URL=https://yourdomain.com
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=cpaneluser_bagisto
DB_USERNAME=cpaneluser_shopuser
DB_PASSWORD=your_password_here
CACHE_STORE=file
SESSION_DRIVER=file
QUEUE_CONNECTION=database
MAIL_MAILER=smtp
MAIL_HOST=smtpout.secureserver.net
MAIL_PORT=465
MAIL_ENCRYPTION=sslThen run the installer, which handles migrations, seeding and the admin account in one interactive pass.
php artisan bagisto:install
php artisan storage:link
php artisan optimizestorage:link creates a symlink from public/storage to storage/app/public. Without it, product images upload successfully and then return 404 on the storefront. It is the most commonly skipped step in any Laravel install and the symptom looks nothing like the cause.Point the document root at public/
Your site must serve ~/shop/public, not ~/shop. In the GoDaddy cPanel account, edit the domain or subdomain and set the document root to /home/cpaneluser/shop/public. Some shared plans only allow this for addon domains and subdomains, not the primary domain.
If you cannot change the document root at all, the fallback is a redirect in public_html/.htaccess. It works, but treat it as temporary.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/shop/public/
RewriteRule ^(.*)$ /shop/public/$1 [L]
</IfModule>Finally set permissions and schedule the two background jobs Laravel expects.
cd ~/shop
chmod -R 755 storage bootstrap/cache
find storage -type d -exec chmod 775 {} \;
# cPanel > Advanced > Cron Jobs, every minute
* * * * * cd /home/cpaneluser/shop && php artisan schedule:run >> /dev/null 2>&1
# Queue worker, restarted every five minutes since shared hosts kill daemons
*/5 * * * * cd /home/cpaneluser/shop && php artisan queue:work --stop-when-empty >> /dev/null 2>&1The realistic verdict: shared versus VPS
Having done the install, here is the part most tutorials skip. Bagisto on a basic GoDaddy shared plan will install if you are patient and it will feel slow forever afterward. An ecommerce application does database work on every page, cannot cache authenticated pages, and needs a persistent queue worker for email and search indexing. Shared hosting is optimized for the opposite workload.
| Plan type | Can you install it | Should you run a store on it |
|---|---|---|
| Basic cPanel shared, no SSH | No, Composer is required | No |
| Higher cPanel shared with SSH | Usually, if memory allows | Development or a demo only |
| GoDaddy VPS, 4 GB or more | Yes | Yes, with Redis and a supervised queue |
| Dedicated or managed cloud | Yes | Yes, the right answer at real volume |
My recommendation is blunt: use shared hosting to learn Bagisto, and put anything that takes real orders on a VPS with at least 4 GB of memory, Redis for cache and sessions, and supervisor running the queue. The setup is not much harder and it is the difference between a store that responds in under a second and one that does not. Our step by step on deploying Laravel on Vultr covers exactly that stack, and it applies to Bagisto unchanged because Bagisto is a Laravel application.
Troubleshooting
Composer is killed partway through with no error. The process hit the memory ceiling. Retry with php -d memory_limit=-1, and if that still fails, run composer create-project on your local machine and upload the finished tree as a single archive instead.
500 error with a blank page after install. Check storage/logs/laravel.log first. The usual causes are a non writable storage directory, a missing APP_KEY, which php artisan key:generate fixes, or an .env that is not being read because it was uploaded as env.txt.
Admin panel loads without styling. The APP_URL in .env does not match the address you are browsing, or the storage symlink is missing. Fix APP_URL, run php artisan optimize:clear, then php artisan storage:link.
Product images upload but show as broken. Almost always the missing symlink. If php artisan storage:link fails because the host blocks symlink(), create the link over SSH manually with ln -s ~/shop/storage/app/public ~/shop/public/storage.
Orders are placed but confirmation emails never arrive. The queue is not running. Confirm your cron entries exist and are firing, check the jobs and failed_jobs tables, and verify the SMTP credentials by sending a test with php artisan tinker.
Frequently asked questions
Can Bagisto run on GoDaddy shared hosting?
Only on a plan with SSH access and enough PHP memory to run Composer. Bagisto needs PHP 8.3 or 8.4, Composer 2.5 or newer, and MySQL 8.0.32 or later. Even where it installs, a shared plan is suitable for development rather than a live store taking orders.
Do I need SSH to install Bagisto?
Effectively yes. Bagisto is distributed through Composer and installed with Artisan commands, neither of which runs from cPanel’s file manager. The only workaround is building the project locally and uploading it, which still leaves you unable to run migrations or clear caches easily.
Where should the Bagisto files live?
Put the project in a directory above the web root, such as ~/shop, and point the domain’s document root at ~/shop/public. Serving the project root directly exposes .env, which contains your database credentials and application key, to anyone who guesses the URL.
What PHP memory limit does Bagisto need?
The documentation asks for a 4 GB memory limit and a 360 second maximum execution time. Those figures cover installation and large catalog imports rather than normal page loads, but a shared plan that caps you far below them will fail during install.
How do I keep the queue running on shared hosting?
You cannot run a persistent daemon, so schedule php artisan queue:work --stop-when-empty as a cron job every few minutes. It drains pending jobs and exits cleanly. On a VPS, use supervisor to keep a real worker alive instead, which is far more responsive.
The bottom line
Installing Bagisto on GoDaddy is a solved problem as long as you have SSH, PHP 8.3, MySQL 8 and headroom on memory. Install above the web root, point the document root at public/, run the Artisan installer, create the storage symlink, and add the scheduler and queue cron entries. Skip any one of those and you get a symptom that looks unrelated to its cause.
The harder question is whether you should. A GoDaddy cPanel plan is a fine place to evaluate Bagisto and a poor place to run a store that customers depend on. If the project is real, budget for a VPS with 4 GB of memory from the start. Migrating an ecommerce database and media library later is far more work than provisioning the right server now.
