On 2020-08-31 15:59, Gary Dale wrote:
On 2020-08-31 15:14, Gary Dale wrote:
On 2020-08-30 13:24, john doe wrote:
On 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 my
local server.
I get the same thing if I replace the public_html folder with a
link to
the 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 system
partition, which runs off of a small SSD, while the other folder
in on a
RAID-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 that
isn't working in my case. This is likely Debian specific but all the
Debian 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 Doe
That 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.
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 get
Forbidden
You don't have permission to access this resource.Server unable to
read htaccess file, denying access to be safe
Apache/2.4.38 (Debian) Server at lionsclub.local Port 80
In 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.
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:
/<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!
Just to be clear, the folder I had to change permissions on is the
<folder containing all the web sites. This is many levels above the
document root,