Почему файл включения PHP не найден в Linux Apache по символической ссылке?

304
David Spector

В /home/richard/public_html/tinytest.php:

<?php // Note: reuse is a symlink to /home/r/reuse require("reuse/Test.php"); ?> 

Символическая ссылка / home / richard / public_html / reuse была сделана так:

<?php $User="richard"; $R=symlink("/home/r/reuse","/home/$User/public_html/reuse"); ?> 

Я включил отчеты об ошибках PHP в .htaccess и получил следующие ошибки от tinytest.php:

Warning: require(reuse/Test.php): failed to open stream: No such file or directory in /home/richard/public_html/tinytest.php on line 3  Warning: require(reuse/Test.php): failed to open stream: No such file or directory in /home/richard/public_html/tinytest.php on line 3  Fatal error: require(): Failed opening required 'reuse/Test.php' (include_path='/home/r') in /home/richard/public_html/tinytest.php on line 3 

Я также попытался проверить адрес браузера, используя https://example.com/reuse/Test.phpи получил эту ошибку:

Forbidden  You don't have permission to access /reuse/Test.php on this server. 

/home/r/reuse/Test.php содержит:

This is Test.php in reuse 

Я посмотрел на разрешения для всех соответствующих файлов, и они были RW-R-R-- или лучше.

Владельцем большинства файлов был «Ричард». Владельцем / и / home были "root".

Мотивация: / home / r / reuse - это каталог общих PHP-файлов, используемых несколькими моими сайтами. Я поместил его в / home, потому что это общий корень всех виртуальных хостов на производственном сервере Linux.

0

0 ответов на вопрос

Похожие вопросы