7. Skip to content

7. Other webservers

7.1 NGINX

This is just an example, we assume that you have prior experience setting up NGINX Vhosts!


For further instructions, please refer to the official NGINX documentation provided by Laravel.


To ensure proper security, access to certain configuration files must be prevented.

Example configuration:

server {
    listen 80;
    listen [::]:80;
    server_name example.com;
    root /path/to/example.com;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";

    index index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }


location ~ ^\. {
deny all;
}

location ~ \.sqlite$ {
deny all;
}

location ~ \.env$ {
deny all;
}

location ~ /\.htaccess {
allow all;
}

}

7.2 Apache2

This is just an example, we assume that you have prior experience setting up Apache Vhosts!

Access to configuration files is already denied via .htaccess files in the LinkStack root directory.


<VirtualHost *:80>
        ServerName example.com
        ServerAlias www.example.com
        ServerAdmin webmaster@localhost
        DocumentRoot /path/to/example.com
        DirectoryIndex index.htm index.html index.php
        ErrorLog /var/log/httpd/linkstack/error.log
        CustomLog /var/log/httpd/linkstack/access.log combined

        <Directory />
        Options FollowSymLinks
        AllowOverride None
        </Directory>

        <Directory /path/to/example.com/>
        Options -Indexes +MultiViews +FollowSymLinks +ExecCGI
        Require all granted
        AllowOverride all
        </Directory>
</VirtualHost>

7.3 Litespeed

This is just an .htaccess example, we assume that you have prior experience setting up Litespeed - Cyberpanel!

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

# Restrict access to critical files
<FilesMatch "^\.">
Order allow,deny
Deny from all
</FilesMatch>
<Files ~ "\.sqlite$">
    Order allow,deny
    Deny from all
</Files>
<Files ~ "\.zip$">
    Order allow,deny
    Deny from all
</Files>

7.4 More webservers

Currently, no documentation is provided for other web server solutions.

Please refer to the Laravel documentation regarding the setup process for your specific web server solution.

Authors: Matthew O'Driscoll