Apache 2: aanpassen website folder

Jorisvh

Gebruiker
Lid geworden
18 mrt 2009
Berichten
84
Ik wil terug beginnen programmeren met PHP en MySql. Hiervoor wil ik mijn computer instellen als testserver.
De eerste stap lukt al niet. Apache configuren.
Mijn website staat op een andere harde schijf. Info hieronder en wat ik reeds gedaan heb.

Bij: http://localhost/ krijg ik:
Forbidden

info sofstware:
- apache2
- 2de harde schijf /dev/sda1 /media/joris/doc/
- O.S.: Linux Mint 22.1
- website folder: /media/joris/doc/website

Dit heb ik gedaan:

Aanpassingen in bestanden: /etc/apache2/apache2.conf
Code:
<Directory /media/joris/doc/website>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

/etc/apache2/sites-enabled/000-default.conf
Code:
ServerAdmin webmaster@localhost
DocumentRoot /media/joris/doc/website

commando's:
Bash:
sudo chown -R www-data:www-data /media/joris/doc/website
sudo chmod -R 755 /media/joris/doc/website
sudo apachectl configtest
sudo service apache2 restart

Hoe kan ik zorgen dat ik toegang krijg tot mijn website en dat ik als gewone gebruiker bestanden in die map kan toevoegen en aanpassen?
 
Waarschijnlijk zit het probleem niet in Apache zelf, maar in de rechten.

Apache moet namelijk toegang hebben tot alle bovenliggende mappen, niet alleen tot /website.

Controleer dit eens:

Bash:
ls -ld /media
ls -ld /media/joris
ls -ld /media/joris/doc
ls -ld /media/joris/doc/website

Vaak zie je dan iets zoals dit op /media/joris of /media/joris/doc, waardoor Apache (www-data) het niet opent:
drwx------ ...
Dus zorg dat het ook uitvoerbaar is.
Bash:
sudo chmod o+x /media
sudo chmod o+x /media/joris
sudo chmod o+x /media/joris/doc

Daarna Apache herstarten.

Maar verder zou de error.log jou ook een stuk wijzer moeten maken over wat de oorzaak is.

Trouwens, waarom gebruik je niet de /home directory? Mogelijk heeft die al de juiste rechten waardoor het meteen had gewerkt?
 
Ik wil terug beginnen programmeren met PHP en MySql. Hiervoor wil ik mijn computer instellen als testserver.
De eerste stap lukt al niet.
Als programmeren het doel is kan je xampp installeren
Dan heb je ook https op localhost
 
@bron XAMPP is kant en klaar, maar qua versies van de stack behoorlijk verouderd. De Linux stack en de Windows zit op PHP 8.2.12. En die is alweer verouderd. Eind dit jaar krijgt deze helemaal geen security-updates meer.
Ik weet dat er momenteel wordt gewerkt aan een update, maar of deze voor Linux geldt, dat weet ik niet.

Ik heb wel het idee dat de huidige ontwikkelaar geen biet meer om XAMPP lijkt te geven, gezien zijn supportforum al jaren vaak sloom laadt.

Er zijn genoeg handleidingen om een Apache / PHP / MySQL of MariaDB opzet te bouwen voor Linux. Ik weet niet tot hoever XAMPP hierin geconfigureerd wordt. Maar een manual volgen i.p.v. XAMPP op Linux lijkt me handiger.
 
Controleer dit eens:

Bash:
ls -ld /media
ls -ld /media/joris
ls -ld /media/joris/doc
ls -ld /media/joris/doc/website
ls -ld /media
drwxr-xr-x 3 root root 4096 jan 9 12:40 /media
ls -ld /media/joris
drwxr-x---+ 3 root root 4096 mei 27 19:24 /media/joris
ls -ld /media/joris/doc
drwxrwxr-x 38 joris joris 4096 feb 24 21:55 /media/joris/doc
ls -ld /media/joris/doc/website
drwxr-xr-x+ 37 www-data www-data 4096 feb 9 2022 /media/joris/doc/website
 
Dit lijkt dus fout:

Bash:
drwxr-x---+ 3 root root ... /media/joris

Die map geeft géén toegang aan “others”.

Apache draait als gebruiker www-data en kan daardoor niet door /media/joris heen navigeren.

De oplossing:
Bash:
sudo chmod o+x /media/joris

Verder raad ik aan om de /home te gebruiken. Het zou zomaar kunnen dat /media botst met je rechten.
 
De oplossing:
Bash:
sudo chmod o+x /media/joris

Verder raad ik aan om de /home te gebruiken. Het zou zomaar kunnen dat /media botst met je rechten.
Dankjewel! Het werkt nu.

Nu heb ik nog een ander probleem.
Ik kan in deze map /media/joris/doc/website/Welenhoeck als gebruiker Joris nog geen wijzigingen aanbrengen zoals nieuwe bestanden aanmaken zoals *.php of een submap aanmaken. Ook kan ik de inhoud van bestaande bestanden niet wijzigen.
Hoe kan ik dit oplossen?

Voor ik apache had geïnstalleerd lukt dat wel.
 
Dan moet je hem chownen:
Bash:
sudo chown -R joris:www-data /media/joris/doc/website

Maar ik adviseer om /home te gebruiken.
Of kan je beargumenteren waarom je /media gebruikt?
 
Waarschijnlijk zit het probleem niet in Apache zelf, maar in de rechten.

Apache moet namelijk toegang hebben tot alle bovenliggende mappen, niet alleen tot /website.

Controleer dit eens:

Bash:
ls -ld /media
ls -ld /media/joris
ls -ld /media/joris/doc
ls -ld /media/joris/doc/website

Vaak zie je dan iets zoals dit op /media/joris of /media/joris/doc, waardoor Apache (www-data) het niet opent:

Dus zorg dat het ook uitvoerbaar is.
Bash:
sudo chmod o+x /media
sudo chmod o+x /media/joris
sudo chmod o+x /media/joris/doc

Daarna Apache herstarten.

Maar verder zou de error.log jou ook een stuk wijzer moeten maken over wat de oorzaak is.

Trouwens, waarom gebruik je niet de /home directory? Mogelijk heeft die al de juiste rechten waardoor het meteen had gewerkt?
Ik heb al eens mijn computer geherinstalleerd omdat ik niet tijdig mijn Ubutu had geupdated. Zo kon ik al mijn data behouden.
 
Niet echt een valide reden, lijkt me. Je kan prima /home backuppen.
 
Ik lees dat Apache problemen kan geven met /media. Dit is er écht niet voor bedoeld, tenzij je heel goed weet wat je doet. En anders verhuis je toch /home naar je andere harddisk?
 
Ik lees dat Apache problemen kan geven met /media. Dit is er écht niet voor bedoeld, tenzij je heel goed weet wat je doet. En anders verhuis je toch /home naar je andere harddisk?
Mijn 2de harde schijf is dit /dev/sda1 / nu gemount aan /media/joris/doc/
Als dit iets anders is dan /media/joris/doc, kan dat dan voor Apache?
 
Je kan met wat configuratie-aanpassingen prima ervoor zorgen dat /home op je andere hardeschijf staat.
Linux is heel erg flexibel daarin.
 
Terug
Bovenaan Onderaan