Syllith
Syllith

Reputation: 317

PHP restricted to document root, not file system root

I'm trying to change a text file located inside the /etc/nginx directory via php. I'm using fopen() to do this, however, I cannot access any directory outside my websites root folder.

For example, I have my website stored in the absolute path: /webroot/mywebsite/ and if I attempt to read anything outside that folder, like /etc/nginx, fopen() dies.

When I echo out realpath("index.php") it returns "/webroot/mywebsite/index.php"

This is how I've been confirming if I have access to my root directory, but it has not changed. I have no idea what else I can try. My old Debian install let me just use the absolute path. This is my new Arch install and this is the first time I've experienced this. I suspect it may be a permission issue, but I do not want to mas modify my entire OS root. Any other suggestions? Thanks

Upvotes: 0

Views: 771

Answers (1)

Syllith
Syllith

Reputation: 317

Well. I'm very surprised I was not able to find this answer after literally 4 hours of googling but here it is. Hopefully I save someone the trouble.

The problem was located here: /lib/systemd/system/php-fpm.service

Find the line "ProtectSystem=full" and set it to "false". Ta-da, I now have access everywhere.

Upvotes: 1

Related Questions