Installation FAQ's

Remove Public From URL

To remove the public from the URL create a .htaccess file in the root folder and write following code.

<IfModule mod_rewrite.c>
	RewriteEngine On 
	RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

To remove the public from URL and Force HTTPS redirection create a .htaccess file in the root folder and write the following code.

<IfModule mod_rewrite.c>
	RewriteEngine On
	RewriteCond %{HTTPS} !=on
	RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] 
	RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

For more detail read article : https://stackoverflow.com/questions/23837933/how-can-i-remove-public-index-php-in-the-url-generated-laravel

NOTE: Remove Public not work for Localhost and sub folders.

Its work with any domain and subdomain only.

Remove Public From URL for LightSpeed Server

To remove the public from the URL in LightSpeed Server -> create a .htaccess file in the root folder and write following code.

RewriteEngine On 
RewriteRule ^(.*)$ public/$1 [L]

To remove the public from URL and Force HTTPS redirection in LightSpeed Server -> create a .htaccess file in the root folder and write the following code.

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

Hide or Denied Access .env

To Hide or Denied Access .env and create .htaccess file in the root folder and write the following code.

# Disable Directory listing
Options -Indexes
# block files which needs to be hidden, specify .example extension of the file
</FilesMatch "^\.env">
    Order allow,deny
    Deny from all
<//FilesMatch>

Debug Mode?

Debug mode will help you to track the error on your website. It is not all preferred to turn the debug mode on live site for a very long time.

How to turn to debug mode on

  • Login to your FTP account.

  • Open and edit .env file.

Change

APPi_DEBUG=false

To

APP_DEBUG=true

Save and upload the file.

false means debug mode is OFF true means debug mode is ON

419 Error

A 419 error in Laravel can occur when a user's session has expired and sessions not save. Laravel uses the 419 status code to indicate that the user's session has expired and sessions not save.

To fix this error, you can try the following:

Its not script issue.

  1. Follow mentioned PHP INI settings.

  2. Increase the session lifetime: You can increase the session lifetime in your config/session.php file to prevent the session from expiring too quickly.

  3. Check for session data integrity: Ensure that the session data is not lost or corrupted by checking that the session data is still present in the storage.

  4. Check for Authentication : Ensure that the user is authenticated before allowing access to protected routes or resources.

Make sure PHP version 8.1.13 and use all following PHP settings. It shows due to the session not save in hosting.

If still you are experiencing an 419 error, you should contact your hosting provider or web administrator to troubleshoot the problem and find a solution. They will be able to examine the server logs to determine the cause of the error and take appropriate action. its not script related issue.

MYSQL Error

If you getting this error SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter table 'permissions add unique permissions_name_guard_name_unique (name, 'guard_name')). Please Update your server setting.

https://mediacitydocs.gitbook.io/eclass-learning-management-system/installation/untitled

First Solution: Go to Project-directory\app\Providers\AppServiceProvider.php

   Schema::defaultStringLength(191);
//Change To
Schema::defaultStringLength(121);

No Application Encryption key has been specified

To solve this issue you will have to check APP_KEY which is located within your . env (environment) file. don't change or remove it. also check .env file not missing.

.env missing

Most of times .env file not missing its just hide , so please make sure its not hide.

cPanel show files Quick Steps:

  1. Log into cPanel & click “File Manager” under the files panel.

  2. Click “settings” in the top right of the file manager.

  3. Choose the Document Root (usually you can leave this as the default)

  4. Check the box titled “Show Hidden Files (dotfiles) & click Save.

Internal server error & 500 Server error

An internal server error is a general term used to describe a problem that occurs when a server is unable to process a request from a client. This can happen for a variety of reasons, such as a problem with the server's or hardware, a misconfigured server, or an issue with the client's request.

When an internal server error occurs, the server will typically return a message indicating that there was an error and that the request could not be fulfilled. This message is often accompanied by an error code, such as "500 Internal Server Error."

Some Solution :

If still you are experiencing an internal server error, you should contact your hosting provider or web administrator to troubleshoot the problem and find a solution. They will be able to examine the server logs to determine the cause of the error and take appropriate action. its not script related issue.

MYSQL or Database not creating table

Please check database privilege. it must be ALL PRIVILEGES. if you don't know how to give it please contact to hosting provider.

Class 'ZipArchive' not found

You are getting this error because you don't enable a zip archive extension on your server. enable zip archive extension and issue will resolved. if you don't know how to enable it please contact to hosting provider. its not script related error.

curl_init error

You are getting this error because you don't enable a curl extension on your server. enable curl e extension and issue will resolved. if you don't know how to enable it please contact to hosting provider. its not script related error.

To Enable cURL Using EasyApache on WHM:

  1. Log in to WHM as the 'root' user.

  2. Either search for "EasyApache" or go to Software > EasyApache

  3. Scroll down and select a build option (Previously Saved Config)

  4. Click Start "Start customizing based on profile"

  5. Select the version of Apache and click "Next Step".

  6. Select the version of PHP and click "Next Step".

  7. Chose additional options within the "Short Options List"

  8. Click Exhaustive Options List.

  9. Find and select the option for cURL.

  10. Click curl, and then click Save and build.

404 error

A 404 error is an HTTP status code that indicates that a requested web page or resource cannot be found on a server. 404 means file not fount, its not script issue.

This can happen for a number of reasons, including:

If still you are experiencing an 404, you should contact your hosting provider or web administrator to troubleshoot the problem and find a solution. They will be able to examine the server logs to determine the cause of the error and take appropriate action. its not script related issue.

403 error

A 403 error is an HTTP status code that indicates that the client (i.e. the user's browser) is not authorized to access the requested resource. This error message is often displayed when a user attempts to access a website or webpage that they do not have permission to view. Your user who did not get permission. So you edit the user role and then update

Certain users to access certain pages or sections. In this case, a 403 error message may be displayed if the user is not authorized to view the requested resource.

Payload error

A payload error in Laravel is typically caused by an issue with the data being passed to the server during an API request. This can be caused by a number of factors, including missing or incorrect data, invalid data types, or incorrect formatting of the data.

Please check File and folder permissions for Shared Hosting

public_html 775 (public_html folder is root folder in shared hosting)

if using subdomain then Subdomain folder 775

File and folder permissions for VPS

/bootstrap 777 /public 777 /storage 777 /public/images 777 /public/config.txt 777 .env 777

Could not find driver

The error message you provided, "could not find driver (SQL: select * from settings limit 1)", suggests that there is an issue with the database driver configuration in your server or cpanel.

  • Check Database Configuration:

    Open the .env file in your Laravel project and ensure that the DB_CONNECTION parameter is set to the correct database driver (e.g., mysql).

  • Verify Database Extension:

    Ensure that the necessary PHP extensions for your chosen database are installed and enabled on your server. For example, if you're using MySQL, make sure the pdo_mysql extension is enabled.

  • Check Database Connection:

    Ensure that your database server is running and that the connection details in your .env file (such as DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, and DB_PASSWORD) are correct.

  • Restart Server:

    After making any changes, it's a good idea to restart your server to apply the updates.

  • Verify PHP Version:

    Make sure you're using a compatible PHP version for your Laravel version.

  • Database Permissions:

    Check necessary permissions to access the database.

Last updated