One permission requirement that is often overlooked is a user needs x permissions in every parent directory of a file to access that file. Check the permissions on /, /home, /home/demo, etc. for www-data x access. My guess is that /home is probably 770 and www-data can’t chdir through it to get to any subdir. If it is, try chmod o+x /home (or whatever dir is denying the request).
EDIT: To easily display all the permissions on a path, you can use namei -om /path/to/check
Related Posts:
- HAProxy vs. Nginx
- HAProxy vs. Nginx
- No acceptable C compiler found in $PATH while installing the C compiler
- Failed to start LSB :Bring Up down Networking
- nginx: connect() failed (111: Connection refused) while connecting to upstream – after update nginx –
- rndc: connect failed: 127.0.0.1#953: connection refused
- phpinfo() is not working on my CentOS server
- Apache is downloading php files instead of displaying them
- Why am I getting 404 not found on this wordpress subdomain on my Nginx server?
- Nginx FastCGI_Cache Vs PHP Caching
- WordPress media upload “HTTP error”
- Block PHP Files Nginx
- Mysterious HTTP 404 header in my own scripts
- PHP Code stuck in Cache [Memcached] [closed]
- How to combine wordpress_logged_in cookies in one cookie?
- how to combine wordpress htaccess on my root domain + php on subfolder
- Incorrect MIME type for assets with Valet
- WordPress & Fastcgi proper setup?
- NGINX rewrite rules for multisite
- Large Woocommerce Site (83,000 items), What Can I Do? [closed]
- Plugin not working & permalink erorr after upgrade to php 7x on Nginx
- Nginx WordPress and another Web app URL structure
- How to debug failed changes to posts?
- Which version of PHP-FPM is necessary to work with WP 3.5?
- Migrating site, only header shows
- Infinite Loop in WordPress Installation
- WordPress on Ubuntu – “File not Found” for home.php – Trying to Redirect to Root Folder
- How to route root path / to /xyz in nginx?
- Why can’t I connect to the wordpress install page with Nginx?
- Sudden Upload HTTP errors, PHP uploads and memory limits are already to high to my taste. Anything else?
- WordPress/NGINX not respecting the category URL for new posts
- How to solve 404 permalink errors on nginx server
- WordPress directories not writable after PHP version upgrade
- How do you restart php-fpm?
- How do you install Node.JS on CentOS?
- How do I update a CentOS server’s time from an authoritative time server?
- Best way to gracefully restart CentOS?
- Adding a directory to $PATH in CentOS?
- How to extend an ext4 partition and filesystem?
- My /var/log/btmp file is huge! What should I do?
- Log all commands run by admins on production servers
- Centos 7 save iptables settings
- How to open port for a specific IP address with firewall-cmd on CentOS? [duplicate]
- How can I improve and optimise my wordpress web server for better performance in 2023
- How to get the client IP address in PHP
- SSL error SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
- WordPress “phpmailer_init” not working for me
- How do I hook into WordPress to save an uploaded photo as an alternate size to an existing photo?
- How to pass JavaScript variable to PHP in wordpress widget?
- Unable to add admin notice on plugin activation
- Why “Settings->Permalinks” creates .htaccess file on nginx server?
- get image url inside the content in wordpress?
- Rectangle avatars
- delete an array element when its date expires
- Subdirectory multisite – only root admin available on NGINX
- Change Navigation Bar based on logged in or not
- How to remove or change the “W” icon in “My Sites”?
- Show all posts by author
- How do I add a custom css to all posts without affecting homepage css? [closed]
- Is_front_page inside header.php is always returning true
- how to echo meta tag in header using php
- How passing values to construct function with Actions?
- Adding `post_author` in php
- Advanced Custom Fields not displaying
- Exclude posts with specific metadata from search?
- How do I add custom HTML to the content of an archive page’s posts?
- email alert for product availability
- Is it possible to add a custom page to a free WordPress site? [closed]
- Advanced Custom Fields [closed]
- Simple php in wordpress widget [closed]
- Assistance with elseif [closed]
- Link to page with posts of specific type
- Order a WP_Query by meta value where the value is an array
- Manually Remove and Change WordPress Page/Post Title
- Looking for a good way to include php code in posts, but using special include markup rather than direct php code
- Updated to PHP 8.0 and WordPress site not working
- Applying css in functions.php
- Add more user roles to a PHP logout redirect function [closed]
- Change the “Show All” button in a WordPress Portfolio Filter
- Limit custom post type to the authors only on front-end!
- WooCommerce – template_redirect if is_checkout AND order has been paid?
- ajaxurl usage for a custom function
- Hot to edit WooCOmmerce dashboard?
- WordPress Admin sub-level menu issue
- Open/closed function [closed]
- (Xdebug Profiler) Why are there two cachegrind files generated for one page?
- Add class as plugin for other plugins
- If Month=Particular month display content [closed]
- Template from scratch: Sidebars not showing widget
- Name Input from widget displays Sidebar name instead of saved data
- Contact Form 7: custom validation [closed]
- WP multisite network plugin fails to see classes loaded with spl autoload
- Enforce conditions only for draft posts using WyPiekacz, ignore pending and published posts
- What is this mark for “? function()” [closed]
- wordpress.org disallowing my plugin becuase of loading core files in cron cpanel file
- Headers already sent error with get_template_part in REST API call
- How to fix wordpress after update to php 8.1?
- How to translate the blog date in the Avada theme [closed]
- Can php warnings cause an Internal Server Error?
- How can I get values from a custom post type depending on where I click on my SVG map?