On 2020-08-31 15:14, Gary Dale wrote:
OK. Found it. The folder containing all the sites needed to have the www-data group. I'm not sure why, since my directory structure is something like:On 2020-08-30 13:24, john doe wrote:OK. I had done that already. However I noticed that my AllowOverride was for "None" - the same as /var/www/. When I change it to All, I getOn 8/30/2020 7:08 PM, john doe wrote:On 8/30/2020 6:27 PM, Gary Dale wrote:I'm running Apache 2.4.38-3+deb10u3 on a Debian/Stable server on an AMD64 machine. When I create a virtual host under /var/www, everything works as expected. However, if I change the virtual host's document root to another folder on the same machine, I get |Forbidden You don't have permission to access this resource. Apache/2.4.38 (Debian) Server at <servername>.local Port 80 |where I use .local instead of the live site's actual TLD to refer to mylocal server.I get the same thing if I replace the public_html folder with a link tothe other folder. To be clear, the folder and files in it are owned by the same account & group. And I can cd to the other folder through the link, so it's working. Also to be clear, when I go to <servername>.local with the site in /var/www/<servername>.local/public_html, it works. A reason I want to move the sites is that /var is in my systempartition, which runs off of a small SSD, while the other folder in on aRAID-6 array with lots of space.When I search for the problem, I see a lot of "solutions" that say just change the document root of the vhost and restart Apache 2. However thatisn't working in my case. This is likely Debian specific but all theDebian stuff only shows vhosts under /var/www, which isn't what I want.Any ideas?What are the permissions of the directory in question? Do you have a directory directive for that location in apache2? -- John DoeThat is, if you change the 'DocumentRoot' directive you also need to modify or add a corresponding directory directive in apache2. Look at '/etc/apache2/apache2.conf' for how it is done for '/var/www'.: "<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>" I would change the path of '<directory ...' to whatever your DocumentRoot directive is pointing to.ForbiddenYou don't have permission to access this resource.Server unable to read htaccess file, denying access to be safeApache/2.4.38 (Debian) Server at lionsclub.local Port 80In fact I don't have a .htaccess file anywhere on my sites (as per Apache's recommendations). The AllowOverride directive apparently allows Apache to look for one, so the problem remains the same.In response to your first question, the permissions are u:rwx g:rwx o:rx. This is slightly looser than the folder in /var/www which removes g:w. In both cases the files are owned by me and group:www-data.
/<folder in root> /<folder that is exported> /<folder containing all the web sites> /<folder grouping sites> /<folder containing one site> /<folder containing site files>My document root for the site is the full tree. For testing, I used the <folder containing one site> in the <Directory> directive. When I changed the group ownership on the folder above it, things started working. However the <folder that is exported> still has the old permissions...
The reason I do things this way is that I work on the sites locally in place - so my site/project folder contains all the files for that site/project, while the files that are needed on the public site reside in a single folder below the <folder containing one site> (which usually contains multiple subfolders).
Thanks John!