LaraClassifier

A classified ads web application built on Laravel and Bootstrap. LaraClassifier is a modular, responsive CMS for online classifieds and listing platforms — with multi-language support, payment gateway add-ons, location-based listings, custom fields per category, and an admin panel with role-based permissions.

This documentation walks you through installation, common server-side errors, upgrade steps, and the configuration of mail, SMS, social login, payments, captcha, image processing, localization, backups, and more. Use the sidebar to jump to a topic.

System Requirements

Database

Server

Before installing, make sure the following components are enabled on your server:

PHP.ini

File & Folder Permissions

/bootstrap        775
/storage          775 (recursively)

Supported Web Servers

One of the following server types can be used to host the app:

Installation

Before starting the installation, check the system requirements first.

Install on Apache

Install on Nginx

Install on Localhost

Installation Notes

Note:
  • The script doesn't have an "install" folder. The installation is handled by a Controller.
  • Loading times during the installation process may seem long, but this is by design — pause times of 1–2 seconds are used to avoid asynchronous execution issues across different server configurations.

Error 403

Error 403 on Apache

Error 403 on Nginx

Error 403 on LiteSpeed

This error is related to LiteSpeed (LiteSpeed Web Server) or similar servers like OpenLiteSpeed.

This error is related to services like Cloudflare, Imunify360, etc.

Upgrade to new versions

Important: For both upgrade methods, make sure you have backed up your website (files and database) before starting the upgrade.
Note: The script's loading times during installation and upgrade processes may seem long, but this is by design — pause times of 1–2 seconds avoid asynchronous request execution issues across different server configurations.

1. SSH Upgrade Method

  1. Put your website under maintenance from the Admin panel → System Info → Maintenance. Don't log out as an admin user.
  2. Clear the website cache from the Admin panel → System Info → Clear Cache.
  3. Download the latest version from CodeCanyon.
  4. Copy the .zip file to the root of your server (same place where files were uploaded during installation).
  5. Rename this zip file to laraclassifier.zip on the server.
  6. Delete the vendor directory from your server (so there are no old unused files left from previous versions).
  7. Use a terminal (console) to log into your website's root folder.
  8. Once in your website's root folder, run: unzip -o laraclassifier.zip -x ".htaccess" -x "public/.htaccess" -x "public/dist/front/custom.css"
  9. Ensure to never delete or replace the /.env and the /storage/installed files.
  10. Wait for the command to complete.
  11. (If you have installed any add-ons) update them to their latest version.
  12. Visit https://domain.tld/upgrade and click Upgrade Now.
  13. Once the update completes, your website will go live automatically and you will be redirected back to the homepage.

2. Traditional Upgrade Method

Caution:
  • If you have made any CSS customization, back up your /public/dist/front/custom.css file and overwrite its latest version after update. (If you didn't make any CSS customization, you can skip this step.)
  • If you have made any translations, back up your language files in the /lang/ folder and merge their content after update. (If you didn't make any translations, you can skip this step.)
  1. Put your website under maintenance from the Admin panel → System Info → Maintenance. Don't log out as an admin user.
  2. Clear the website cache from the Admin panel → System Info → Clear Cache.
  3. Download the latest version from CodeCanyon.
  4. Copy the .zip file to the root of your server (same place where files were uploaded during installation).
  5. Delete the vendor directory from your server (so there are no old unused files left from previous versions).
  6. Extract the .zip file into the website's root folder by overwriting old files. Ensure to never delete or replace the /.env and the /storage/installed files.
  7. (If you have installed any add-ons) update them to their latest version.
  8. Visit https://domain.tld/upgrade and click Upgrade Now (make sure you are logged in as admin).
  9. Once the update completes, your website will go live automatically and you will be redirected back to the homepage.

Upgrade Notes

No users, data, uploads or settings will be lost on your site when applying updates.
Important: If your server or hosting provider uses any kind of file caching (supercacher, opcache, Cloudflare cache, etc.) you will need to clear that cache after updating, otherwise some changes from the update might not work properly.
If you receive an error related to the Purchase Code:
  • Find Your Purchase Code
  • Add a new entry for your purchase code in the /.env file: PURCHASE_CODE=yourpurchasecode — or log in to your Admin panelSettingsGeneralApplicationPurchase Code and edit the line to add your Purchase Code.
Version-specific upgrade notes:
  • Exception to v7.1.0: Upload/replace the /storage/app/public/app/default/ folder on your server before or after running the upgrade URL.
  • v5.1+: Activate all purchased add-ons using their purchase code from the Admin panel → Add-ons.
  • If your website is running on v4.8 or lower: Before starting the upgrade, move all contents of the /public/uploads/ directory to /storage/app/public/.
  • If your website is running on v4.3 or lower — upgrading to v4.4:
    • You will lose all your Admin panel → Settings entries and will need to set up your website again.
    • You will lose all current internal messages (which were also sent by email to their receivers).
    • If you re-activate the listing review (approval) option, all existing listings will be approved automatically.
    • You will need to (uninstall and) re-install all the script's add-ons after the upgrade.
    • You will lose all add-on data and settings (except payment add-on transaction entries).
  • If your website is running on v3.4 or lower: Before starting the upgrade, you have to:
    • Add this entry: APP_VERSION=X.X in the /.env file (e.g. APP_VERSION=3.4 if your current version is 3.4).
    • Add a new entry for your purchase code in the /.env file: PURCHASE_CODE=yourpurchasecode.
    • (If exists) change DB_PREFIX= to DB_TABLES_PREFIX= in the /.env file.
    • (If exists) remove the SESSION_DRIVER=file and SESSION_DOMAIN=.mysite.com entries from the /.env file.

Mail Sending (SMTP)

Short for Simple Mail Transfer Protocol, SMTP is a protocol for sending e-mail messages between servers. Most e-mail systems that send mail over the Internet use SMTP to send messages from one server to another; the messages can then be retrieved with an e-mail client using either POP or IMAP. In short, SMTP is used to send emails to your site users.

You can use any SMTP service provider:

Note: Some hosting providers block port 25 or 465. In that case, change your SMTP email server or contact your hosting provider.

Own SMTP Server

Admin panel setup

Or use the /.env file

MAIL_MAILER=smtp
MAIL_HOST=your-mail-host
MAIL_PORT=your-mail-port
MAIL_USERNAME=your-mail-username
MAIL_PASSWORD=your-mail-password
MAIL_ENCRYPTION=your-mail-encryption
Note: The /.env file settings override those of the admin panel. Don't forget to change your sender email address in Admin panelSettingsGeneralMailEmail Sender to match an allowed email address of your SMTP server.

Mailgun

Admin panel setup

Or use the /.env file

MAIL_MAILER=mailgun
MAILGUN_DOMAIN=your-mailgun-domain
MAILGUN_SECRET=your-mailgun-secret
MAILGUN_ENDPOINT=api.mailgun.net
MAIL_HOST=your-mailgun-smtp-host
MAIL_PORT=your-mailgun-smtp-port
MAIL_USERNAME=your-mailgun-smtp-username
MAIL_PASSWORD=your-mailgun-smtp-password
MAIL_ENCRYPTION=your-mailgun-smtp-encryption
Note: The /.env file settings override those of the admin panel. Don't forget to change your sender email address in Admin panelSettingsGeneralMailEmail Sender to match an allowed email address of your SMTP server.

Postmark

Admin panel setup

Or use the /.env file

MAIL_MAILER=postmark
POSTMARK_TOKEN=your-postmark-token
MAIL_HOST=your-postmark-smtp-host
MAIL_PORT=your-postmark-smtp-port
MAIL_USERNAME=your-postmark-smtp-username
MAIL_PASSWORD=your-postmark-smtp-password
MAIL_ENCRYPTION=your-postmark-smtp-encryption
Note: The /.env file settings override those of the admin panel. Don't forget to change your sender email address in Admin panelSettingsGeneralMailEmail Sender to match an allowed email address of your SMTP server.

Amazon SES

Admin panel setup

Or use the /.env file

MAIL_MAILER=ses
SES_KEY=your-ses-key
SES_SECRET=your-ses-secret
SES_REGION=your-ses-region
Note: The /.env file settings override those of the admin panel. Don't forget to change your sender email address in Admin panelSettingsGeneralMailEmail Sender to match an allowed email address of your SMTP server.

Sparkpost

Admin panel setup

Or use the /.env file

MAIL_MAILER=sparkpost
SPARKPOST_SECRET=your-sparkpost-secret
MAIL_HOST=your-sparkpost-smtp-host
MAIL_PORT=your-sparkpost-smtp-port
MAIL_USERNAME=your-sparkpost-smtp-username
MAIL_PASSWORD=your-sparkpost-smtp-password
MAIL_ENCRYPTION=your-sparkpost-smtp-encryption
Note: The /.env file settings override those of the admin panel. Don't forget to change your sender email address in Admin panelSettingsGeneralMailEmail Sender to match an allowed email address of your SMTP server.

SMS APIs

This functionality allows verifying user mobile numbers and lets sellers be contacted by SMS.

How to set up

Vonage

vonage.com

Admin panel setup

Or use the /.env file

VONAGE_KEY=your-vonage-key
VONAGE_SECRET=your-vonage-secret
VONAGE_SMS_FROM=your-sender-number

Twilio

twilio.com

Admin panel setup

Or use the /.env file

TWILIO_ACCOUNT_SID=your-twilio-account-sid
TWILIO_AUTH_TOKEN=your-auth-token
TWILIO_FROM=your-sender-number

Other SMS Configurations

Social Login

Important: Make sure APP_URL in /.env matches your site URL. It should be set automatically, but you might need to do it manually in some rare cases.

Facebook

  1. Register for a regular Facebook account, if you don't already have one.
  2. Open developers.facebook.com and Create a New App.
  3. Get the new app settings.

Now, set up your admin panel:

Or place all the config values or API keys in the /.env file:

FACEBOOK_CLIENT_ID=your-facebook-client_id
FACEBOOK_CLIENT_SECRET=your-facebook-client_secret
Note:
  • The /.env file settings override those of the admin panel.
  • The OAuth redirect URI is: APP_URL/auth/connect/facebook/callback.
  • Replace APP_URL with its value (from /.env). Example: https://domain.tld/auth/connect/facebook/callback.

LinkedIn

  1. Register for a regular LinkedIn account, if you don't already have one.
  2. Open linkedin.com/developer/apps and Create a New App.
  3. Get the new app settings.

Now, set up your admin panel:

Or place all the config values or API keys in the /.env file:

LINKEDIN_CLIENT_ID=your-linkedin-client_id
LINKEDIN_CLIENT_SECRET=your-linkedin-client_secret
Note:
  • The /.env file settings override those of the admin panel.
  • The OAuth redirect URI is: APP_URL/auth/connect/linkedin/callback.
  • Replace APP_URL with its value (from /.env). Example: https://domain.tld/auth/connect/linkedin/callback.

Twitter (OAuth 2.0)

  1. Register for a regular Twitter account, if you don't already have one.
  2. Open apps.twitter.com and Create a New App.
  3. Get the new app settings.

Now, set up your admin panel:

Or place all the config values or API keys in the /.env file:

TWITTER_OAUTH_2_CLIENT_ID=your-twitter-oauth-2-client_id
TWITTER_OAUTH_2_CLIENT_SECRET=your-twitter-oauth-2-client_secret
Note:
  • The /.env file settings override those of the admin panel.
  • The OAuth redirect URI is: APP_URL/auth/connect/twitter-oauth-2/callback.
  • Before configuring your Twitter app in the script, change its Permissions (on developer.twitter.com) by enabling the Request email address from users option.
  • Replace APP_URL with its value (from /.env). Example: https://domain.tld/auth/connect/twitter-oauth-2/callback.

Twitter (OAuth 1.0)

  1. Register for a regular Twitter account, if you don't already have one.
  2. Open apps.twitter.com and Create a New App.
  3. Get the new app settings.

Now, set up your admin panel:

Or place all the config values or API keys in the /.env file:

TWITTER_CLIENT_ID=your-twitter-client_id
TWITTER_CLIENT_SECRET=your-twitter-client_secret
Note:
  • The /.env file settings override those of the admin panel.
  • The OAuth redirect URI is: APP_URL/auth/connect/twitter/callback.
  • Before configuring your Twitter app in the script, change its Permissions (on developer.twitter.com) by enabling the Request email address from users option.
  • Replace APP_URL with its value (from /.env). Example: https://domain.tld/auth/connect/twitter/callback.

Google (deprecated)

  1. Register for a regular Google account, if you don't already have one.
  2. Open console.developers.google.com and Create a New App.
  3. Get the new app settings.

Now, set up your admin panel:

Or place all the config values or API keys in the /.env file:

GOOGLE_CLIENT_ID=your-google-client_id
GOOGLE_CLIENT_SECRET=your-google-client_secret
Note:
  • The /.env file settings override those of the admin panel.
  • The OAuth redirect URI is: APP_URL/auth/connect/google/callback.
  • Replace APP_URL with its value (from /.env). Example: https://domain.tld/auth/connect/google/callback.

Google Maps

You have to activate Google Maps Embed API and Google Maps JavaScript API in your Google Console.

Admin panel setup

Or use the /.env file

GOOGLE_MAPS_JAVASCRIPT_API_KEY=your-google-maps-javascript-api-key

Captcha

Recaptcha

reCAPTCHA is a free CAPTCHA service that helps protect your site against spam, malicious registrations, and other forms of attacks where computers try to disguise themselves as humans. reCAPTCHA comes in the form of a widget that you can easily add to your blog, forum, or registration.

How to set up

Admin panel setup

Or use the /.env file

RECAPTCHA_VERSION=your-recaptcha-keys-version
RECAPTCHA_SITE_KEY=your-recaptcha-site_key
RECAPTCHA_SECRET_KEY=your-recaptcha-secret_key
Note: The /.env file settings override those of the admin panel.

Image Processing

The script supports two image processors:

GD is a basic image-resizing driver for PHP and is suited only to basic websites. It has memory issues and doesn't perform well at all conditions. For pro-photography or higher quality images, prefer Imagick. Make sure your server has Imagick installed.

Imagick

Important: Make sure Imagick is installed on your server. If not, contact your hosting provider.

Localization

How can I enable Geolocation?

SVG Maps

The script uses Simplemaps SVG maps (simplemaps.com/resources/svg-maps). Maps for some countries (Kosovo, some islands, etc.) are not available.

For some countries you may need to edit the SVG files to change state or province names. All SVG map files are in /public/images/maps/.

There are free (commercial use) and paid licenses, so you can buy a license for some missing SVG maps and hire a local developer to add them for your website (based on the current code). You can also disable SVG maps from your Admin panel.

Countries Data

Geonames Database

The script uses the Geonames database (geonames.org, their most structured database) for cities and administrative divisions data.

This database is not complete for any country. You can update it from your Admin panel → International → Countries → Admin. Division x or Cities by adding new data (respecting the Geonames data format), modifying existing data, or deleting entries.

From v3.1+ you have to update the countries locations database from your Admin panel → International → Countries.

The script does not support certain countries (Kosovo, some islands, etc.) automatically because their data is not reliable. You will need to add the missing or incorrect data manually from your admin panel.

Your own database

If you want to use your own data instead of the Geonames data, you can delete all Geonames data by using phpMyAdmin to flush the cities, subadmin1, and subadmin2 tables before adding new data from the Admin panel.

Note: The script doesn't have any data import tool.

Languages

How can I add new languages?

Notes:
  • Don't forget to translate the database translatable entries from the Admin panel (Listings → Categories, Plans, Report Type, etc.).
  • If needed, duplicate (manually, in the same directory) or edit the date language file in /vendor/nesbot/carbon/src/Carbon/Lang/.

How can I change the default language?

Note: To prevent missing translations in the new default language, open /config/app.php and change the fallback_locale value to your default language code (e.g. de). Save your files on your server.

How can I edit translations?

Important: The Admin panel does not support the RTL direction.

How can I disable languages?

How can I delete languages?

Important: By deleting the language, the language files folder /lang/<code> will also be removed.

Cron Job

How can I start the Scheduler?

The Scheduler will execute:

When using the scheduler, you only need to add the following Cron entry to your server:

* * * * * {PHP_BIN_PATH} /path/to/public_html/artisan schedule:run >> /dev/null 2>&1

For shared hosting, use:

* * * * * {PHP_BIN_PATH} /path/to/public_html/utils/schedule-run.php >> /dev/null 2>&1

This Cron will call the Laravel command scheduler every minute. When schedule:run is executed, Laravel evaluates your scheduled tasks and runs the ones that are due.

Note:
  • {PHP_BIN_PATH} — e.g. /usr/bin/php8.2, /usr/bin/php, /usr/lib/php.
  • /path/to/public_html/ — replace this path with your real path.
  • Don't hesitate to ask your hosting provider for more information.
  • (Not recommended) You can disable the data cached files command by adding CACHE_MANAGER_CLEAN_UP=true in /.env.
  • You can activate the views cached files auto-clear command by adding VIEW_CACHE_AUTO_CLEAN_UP=false in /.env.

More information about Cron Job

How does the Listings Clear command work?

After setting it up to run every hour (for example), there are 2 cases to consider:

1. Regular Listings

Configure these options under Admin panel → Settings → Cron:

2. Premium / Paid Listings

Backup

Before using this feature, set your MySQL dump binary path with the variable DB_DUMP_BINARY_PATH in /.env.

Example with MAMP on macOS: DB_DUMP_BINARY_PATH=/Applications/MAMP/Library/bin/. Set only the path, without mysqldump.

If local disk is used, the backups are stored on your server in /storage/backups/.

Important: The /storage/backups/ directory is NOT the MySQL dump binary (mysqldump) path. If you don't know your server's mysqldump path, contact your host for more information.

Manual Backup

Go to Admin panel → Backups to make backups manually.

Automatic Backup

Go to Admin panel → Settings → Backup to schedule backups and their clearing-up policy.

Backup Storage

Go to Admin panel → Settings → Backup to select a storage type for the backups.

For local storage, select Local Only and save the form. For cloud storage, select Cloud Only or Local and Cloud and save the form.

Cloud Storage

FTP

Add the config below in your /.env file and set FILESYSTEM_CLOUD=ftp:

FILESYSTEM_CLOUD=ftp
FTP_HOST=your-ftp-host
FTP_USERNAME=your-ftp-username
FTP_PASSWORD=your-ftp-password
FTP_PORT=21
FTP_ROOT=/path/to/storage/root/
FTP_PASSIVE=true
FTP_SSL=true
FTP_TIMEOUT=30

SFTP

Add the config below in your /.env file and set FILESYSTEM_CLOUD=sftp:

FILESYSTEM_CLOUD=sftp
SFTP_HOST=your-sftp-host
SFTP_USERNAME=your-sftp-username
SFTP_PASSWORD=your-sftp-password
SFTP_SSH_PRIVATE_KEY=
SFTP_HOST_FINGERPRINT=
SFTP_MAX_TRIES=
SFTP_PASSPHRASE=
SFTP_PORT=22
SFTP_ROOT=/path/to/storage/root/
SFTP_TIMEOUT=30

Amazon S3

Add the config below in your /.env file and set FILESYSTEM_CLOUD=s3:

FILESYSTEM_CLOUD=s3
AWS_ACCESS_KEY_ID=your-s3-access-key
AWS_SECRET_ACCESS_KEY=your-s3-secret-key
AWS_DEFAULT_REGION=your-s3-region-code
AWS_BUCKET=your-s3-bucket
AWS_URL=
AWS_ENDPOINT=
AWS_USE_PATH_STYLE_ENDPOINT=

Dropbox

Add the config below in your /.env file and set FILESYSTEM_CLOUD=dropbox:

FILESYSTEM_CLOUD=dropbox
DROPBOX_ROOT=path/to/storage/root
DROPBOX_AUTHORIZATION_TOKEN=your-dropbox-authorization-token

DigitalOcean

Add the config below in your /.env file and set FILESYSTEM_CLOUD=digitalocean:

FILESYSTEM_CLOUD=digitalocean
DIGITALOCEAN_KEY=your-s3-access-key
DIGITALOCEAN_SECRET=your-s3-secret-key
DIGITALOCEAN_REGION=your-s3-region-code
DIGITALOCEAN_BUCKET=your-s3-bucket
DIGITALOCEAN_URL=
DIGITALOCEAN_ENDPOINT=
DIGITALOCEAN_USE_PATH_STYLE_ENDPOINT=
DIGITALOCEAN_FOLDER=
DIGITALOCEAN_CDN_ENDPOINT=

API

The API endpoints documentation is available from Admin panel → API Docs (for super-admin users).

By default, the API uses an access token set in /.env with the variable APP_API_TOKEN=. Its value needs to be added in the header of all API requests with X-AppApiToken as key.

The front end of the script consumes the API via cURL (through the Laravel HTTP Client / Guzzle), while the admin panel communicates directly with the database.

Notes:
  • Only the OfflinePayment and Watermark add-ons are stateless, so they can be used with the API.
  • All other add-ons cannot be used with the API, even though they continue to work with the web client.

How To

How is user registration managed?

When options like Email Address Verification (Admin panel → Settings → Mail) or Enable Phone Verification (Admin panel → Settings → SMS) are enabled, users must verify their email address or mobile phone number accordingly. Users cannot log in until they complete the verification process.

How are ads/listings published?

  1. Admin Approval Not Required

    When options like Email Address Verification or Enable Phone Verification are enabled, users must verify their email address or mobile phone number accordingly. Ads will appear in the "Pending Approval" section until users complete verification.

    • If only Email Address Verification is enabled, the ad is published once the user verifies their email address.
    • If only Enable Phone Verification is enabled, the ad is published once the user verifies their phone number via the SMS code.
    • If both options are enabled, the user must verify both email and phone for the ad to go public.
    • If neither option is enabled, the ad goes public on the website after publication, without any verification.
  2. Admin Approval Required

    When the Allow listings to be reviewed by Admins option (Admin panel → Settings → Listing Form) is enabled, ads remain in the "Pending Approval" section even after users verify their email and/or phone. These ads require admin approval to be published. Once approved by the admin, the ad goes live.

    Important: When a user selects a promotion plan to publish an ad, its publication will bypass admin approval after payment (i.e. the ads will go public after promotion plan payment). More information about plan payments here.

How can I set the default country?

How can I set the default currency?

How can I set up the plans?

How can I set up the advertising code (e.g. Adsense)?

How can I set up reCAPTCHA?

Please see more features by visiting Admin panelSettings.

Recover from an Admin Lockout

If a value saved from the admin panel prevents you from signing back in (e.g. a wrong reCAPTCHA key, an unreachable SMTP host, a queue driver pointing at a backend that no longer exists, etc.), you do not need to touch the database by hand. LaraClassifier ships with two complementary recovery levers.

Option 1 — Force .env values (temporary bypass)

Add a SETTINGS_FORCE_ENV entry to your /.env file listing the settings group(s) whose database values should be ignored at boot. The app will then read those settings from .env (or the config/ defaults) instead of from the database, letting you boot the application again and reach the admin panel.

# Examples (in /.env)
SETTINGS_FORCE_ENV=security            # ignore DB security settings (e.g. CAPTCHA lockout)
SETTINGS_FORCE_ENV=mail                # ignore DB mail settings (broken SMTP creds)
SETTINGS_FORCE_ENV=queue,security      # ignore multiple groups at once
SETTINGS_FORCE_ENV=all                 # ignore every DB-side override (last resort)

Available group names:

After editing .env, clear the config cache:

php artisan config:clear
Important: SETTINGS_FORCE_ENV is a temporary bypass. The bad row is still in your settings table; it will start being used again as soon as you remove the .env entry. Once you've regained access, fix the offending value from the admin panel (or via Option 2 below), then remove SETTINGS_FORCE_ENV from .env so future admin saves take effect again.

Option 2 — Reset a setting from the CLI (permanent)

The settings:reset Artisan command rewrites a single setting row directly in the database, exactly as if the admin had saved the value from the panel. It is the correct way to permanently fix a bad value — after running it you can (and should) remove any matching SETTINGS_FORCE_ENV entry from .env.

# Disable a boolean setting (the default value for *_enabled keys is "0")
php artisan settings:reset captcha_enabled

# Set an explicit value
php artisan settings:reset queue_driver --value=sync
php artisan settings:reset mail_driver --value=log
php artisan settings:reset optimization_cache_driver --value=file

The command will:

  1. Show you the current value of the setting and the new value it is about to write.
  2. Ask for confirmation before saving.
  3. Preserve the row's settings group (so the value stays in the same admin sidebar tab); if the row does not yet exist, it is created in the general group.
  4. Trigger the regular save side effects (env-mirror to /.env for queue / cache / SMS keys, cache regeneration, etc.) so the change takes effect immediately.

Common recovery recipes:

Symptom Command
Locked out by a broken CAPTCHAphp artisan settings:reset captcha_enabled
Broken SMTP credentialsphp artisan settings:reset mail_driver --value=log
Queue driver pointing at a dead backendphp artisan settings:reset queue_driver --value=sync
Cache driver pointing at an unreachable Memcached / Redisphp artisan settings:reset optimization_cache_driver --value=file
Tip: If the application cannot boot at all (so php artisan itself fails because of the bad setting), start by running Option 1 to bring the app back up, then run Option 2 to fix the row, then remove the SETTINGS_FORCE_ENV line.

Credits