Question

how to do the following modifications in NGINX server for codigniter application

Posted October 22, 2020 87 views
Nginx

the follwing is from

How can I use the script on the NGINX server?

NGINX server does not support .htaccess, so if you upload script files to your server, you will 404 error for all your links. In order for your links to work, you need to make some settings on your server.

server {
        server_name domain.tld;

        root /var/www/codeignitor;
        index index.html index.php;

        # set expiration of assets to MAX for caching
        location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
                expires max;
                log_not_found off;
        }

        location / {
                # Check if a file or directory index file exists, else route it to index.php.
                try_files $uri $uri/ /index.php;
        }

        location ~* \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                include fastcgi.conf;
        }
}

After this, make sure that your “application/config/config.php” file contains the following information:

$config['base_url'] = "http://domain.tld/";
$config['index_page']       = "";
$config['uri_protocol']     = "REQUEST_URI";
An alternative configuration, production ready. You don’t need to modify “config.php”, except for removing “index.php”

$config['base_url'] = "";
$config['index_page']       = "";
$config['uri_protocol']     = "AUTO";
server {
        listen       80;
        server_name  localhost;
        root   /var/www/html/ci;
        autoindex on;
        index index.php;

        location / {

            try_files $uri $uri/ /index.php;

            location = /index.php {

                fastcgi_pass   127.0.0.1:6969;
                fastcgi_param  SCRIPT_FILENAME /var/www/html/ci$fastcgi_script_name;
                include        fastcgi_params;
            }
        }

        location ~ \.php$ {
            return 444;
        }


}
edited by MattIPv4

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
1 answer

Hi there @santhosh2116,

As recomended in the official documentation, what I could suggest is to try and change the try_files rules to:

        try_files $uri $uri/ /index.php$is_args$args;

Let me know how it goes.
Regards,
Bobby

Submit an Answer