So I am trying to build a LAMP-app with Docker because I always have issues with installing PHP and such on my local machine.
Currently I am following a tutorial from Brad Traversy: PHP Crash Course on youtube and I am getting stuck at the part where he explains 'filehandling'. Part 14.
This is the error I am getting:
Warning: fopen(users.txt): Failed to open stream: Permission denied in /var/www/html/filehandling.php on line 13
Fatal error: Uncaught TypeError: fwrite(): Argument #1 ($stream) must be of type resource, bool given in /var/www/html/filehandling.php:15 Stack trace: #0 /var/www/html/filehandling.php(15): fwrite(false, 'Brad') #1 {main} thrown in /var/www/html/filehandling.php on line 15
I also added screenshots of the error and file itself, my Dockerfile, and the docker-compose.yaml file.
When I look up the user with 'whoami', I get user'root' in the Docker container. When I try 'whoami' outside of the container, I get my regular username.
I have tried changing permissions with chmod 755 and chmod 777 inside the Dockerfile, but that didn't work either.
Is there anybody who can help?
Thanks so much in advance!
Following @hakre advice: This is what I get when I do ls -altrh inside of the containers shell:
This is what I get when I do ls -altrh inside the container:
# ls -altrh
total 68K
drwxr-xr-x 1 root root 4.0K Sep 13 09:45 ..
-rwxr-xr-x 1 1000 1000 14 Oct 14 14:57 phpinfo.php
drwxr-xr-x 2 1000 1000 4.0K Oct 14 18:51 db
-rwxr-xr-x 1 1000 1000 0 Oct 15 17:18 .env
-rwxr-xr-x 1 1000 1000 90 Oct 15 17:23 .env.example
-rwxr-xr-x 1 1000 1000 5 Oct 15 17:25 .gitignore
-rwxr-xr-x 1 1000 1000 3.7K Nov 9 17:15 variables.php
-rwxr-xr-x 1 1000 1000 468 Nov 9 17:32 getpost.php
-rwxr-xr-x 1 1000 1000 599 Nov 14 15:15 sanitizinginput.php
-rwxr-xr-x 1 1000 1000 167 Nov 14 15:38 cookies.php
-rwxr-xr-x 1 1000 1000 904 Nov 14 16:03 sessions.php
-rwxr-xr-x 1 1000 1000 225 Nov 19 17:10 package.json
drwxr-xr-x 4 1000 1000 4.0K Nov 20 15:26 .
-rwxr-xr-x 1 1000 1000 734 Nov 20 15:26 docker-compose.yml
-rwxr-xr-x 1 1000 1000 335 Nov 20 15:26 index.php
drwxr-xr-x 2 1000 1000 4.0K Nov 20 16:29 extras
-rwxr-xr-x 1 1000 1000 283 Nov 20 18:07 filehandling.php
-rwxr-xr-x 1 1000 1000 73 Nov 20 18:12 Dockerfile
#
Edit: Also this is what I get when looking for the user of apache in the container's shell:
# ps aux | egrep '(apache|httpd)'
root 1 0.3 0.1 219560 28892 ? Ss 09:28 0:00 apache2 -DFOREGROUND
www-data 23 0.0 0.0 219592 7804 ? S 09:28 0:00 apache2 -DFOREGROUND
www-data 24 0.0 0.0 219592 7804 ? S 09:28 0:00 apache2 -DFOREGROUND
www-data 25 0.0 0.0 219592 7804 ? S 09:28 0:00 apache2 -DFOREGROUND
www-data 26 0.0 0.0 219592 7804 ? S 09:28 0:00 apache2 -DFOREGROUND
www-data 27 0.0 0.0 219592 7804 ? S 09:28 0:00 apache2 -DFOREGROUND
root 35 0.0 0.0 3180 652 pts/0 S+ 09:29 0:00 grep -E (apache|httpd)
And tried changing these in the Dockerfile, not at the same time of course:
RUN chown -R www-data /var/www/html/
and this: RUN chown -R www-data:www-data /var/www/html/
and this: RUN chown 777 /var/www/html
and this: RUN chown 777 www-data /var/www/html
But no success –