By sembara9090
I have seeting NGINX for Laravel 7 Apps, but i got erro for acces denid. how should i do?
2020/10/02 09:38:31 [crit] 54509#54509: *14 stat() "/var/www/html/laravel/wadrobe/public/favicon.ico" failed (13: Permission denied), client: 172.69.135.130, server: laksmi.sembara.site, request: "GET /favicon.ico HTTP/1.1", host: "laksmi.sembara.site", referrer: "http://laksmi.sembara.site/"
2020/10/02 09:38:31 [crit] 54509#54509: *14 stat() "/var/www/html/laravel/wadrobe/public/favicon.ico" failed (13: Permission denied), client: 172.69.135.130, server: laksmi.sembara.site, request: "GET /favicon.ico HTTP/1.1", host: "laksmi.sembara.site", referrer: "http://laksmi.sembara.site/"
2020/10/02 09:38:31 [crit] 54509#54509: *14 stat() "/var/www/html/laravel/wadrobe/public/index.php" failed (13: Permission denied), client: 172.69.135.130, server: laksmi.sembara.site, request: "GET /favicon.ico HTTP/1.1", host: "laksmi.sembara.site", referrer: "http://laksmi.sembara.site/"
2020/10/02 09:38:31 [crit] 54509#54509: *14 stat() "/var/www/html/laravel/wadrobe/public/index.php" failed (13: Permission denied), client: 172.69.135.130, server: laksmi.sembara.site, request: "GET /favicon.ico HTTP/1.1", host: "laksmi.sembara.site", referrer: "http://laksmi.sembara.site/"
My nginx setting
##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# In most cases, administrators will remove this file from sites-enabled/ and
# leave it as reference inside of sites-available where it will continue to be
# updated by the nginx packaging team.
#
# This file will automatically load configuration files provided by other
# applications, such as Drupal or Wordpress. These applications will be made
# available underneath a path with that package name, such as /drupal8.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##
# Default server configuration
#
server {
listen 80;
listen [::]:80;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /var/www/html/laravel/wadrobe/public;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name laksmi.sembara.site www.laksmi.sembara.site;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.php$is_args$args;
}
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
# fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
try_files $uri /index.php =404;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
# listen 80;
# listen [::]:80;
#
# server_name example.com;
#
# root /var/www/example.com;
# index index.html;
#
# location / {
# try_files $uri $uri/ =404;
# }
#}
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Hi there @sembara9090,
It looks like that your permissions are not correct. Can you run the following two commands and share the output so that I could see what are your exact file permissions and ownership set to:
- ls -lah /var/www/html/laravel/wadrobe/public
And then also check the user that Nginx is running as:
- ps aux | grep -i nginx
Another thing that I could suggest is using the LaraSail community tool, it will set up your server and allow you to deploy new projects with just 1 command:
https://www.digitalocean.com/community/tools/larasail
Or you could use the 1-Click installation for Laravel from the Marketplace:
https://marketplace.digitalocean.com/apps/laravel
Here is a quick video on how to do that as well:
Hope that this helps! Regards, Bobby
First, determine the user under which Nginx is running. This is typically www-data on Ubuntu systems, but you can confirm by checking the Nginx configuration:
grep 'user' /etc/nginx/nginx.conf
This will output the user Nginx is configured to run as, which is usually the first line in nginx.conf.
You need to ensure that the www-data user (or whichever user Nginx runs under) has the correct permissions to read and execute files within your Laravel project’s directory.
/var/www/html/laravel/wadrobe/public and Nginx runs as www-data, you can set the proper ownership with:sudo chown -R www-data:www-data /var/www/html/laravel/wadrobe
755 and files have 644 permissions. You can set these permissions with:find /var/www/html/laravel/wadrobe -type d -exec chmod 755 {} \;
find /var/www/html/laravel/wadrobe -type f -exec chmod 644 {} \;
Your Nginx configuration suggests that it’s not correctly set up for Laravel, which uses index.php as the primary entry point. Update your index directive in the Nginx configuration to include index.php:
index index.php index.html index.htm;
Make sure that the PHP processing block is correctly configured. It seems alright in your provided configuration, but ensure that fastcgi_param points exactly to where the PHP files reside:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
After making these changes, restart Nginx to apply them:
sudo systemctl restart nginx
If the problem persists after making these changes, check the Nginx error logs again to see if there are new or unresolved issues:
sudo tail -f /var/log/nginx/error.log
If SELinux is enforcing and causing issues (common on some distributions), you might need to adjust its policies to allow Nginx to interact with your web content:
sestatus
If it’s enforcing, you might need to update SELinux permissions or set it to permissive mode temporarily to diagnose the issue.
By following these steps, you should
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.