веб-сервер php не может читать файлы php

#php

#php

Вопрос:

я хочу использовать этот веб-сервер на php

set_time_limit(0);

$address = '127.0.0.1';
$port = 80;

$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, $address, $port) или die('Не удалось привязать к адресу');

echo " n Прослушивает порт $port для подключения...  n  n";

в то время как(1)
{
 socket_listen($sock);

 $client = socket_accept($sock);

 $input = socket_read($client, 1024);

 $incoming = array();
 $incoming = explode(" r  n", $input);

 $fetchArray = array();
 $fetchArray = explode(" ", $incoming[0]);

 $file = $fetchArray[1];
if($file == "/"){ 
 $file = "index.php "; 
 } else {
 $filearray = array();
 $filearray = explode("/", $file);

 $file = $filearray[1];
 }
echo $fetchArray[0] . " Запрос" . $file . " n"; 

$output = "";

$Header = "HTTP / 1.1 200 OK  r  n" .
"Дата: Пт, 31 Дек 1999 23:59:59 GMT  r  n" .
"Тип содержимого: текст / html  r  n  r  n";

$Content = file_get_contents($file);

$output = $Header . $Content;

 socket_write($client,$output,strlen($output));
 socket_close($client);

и в моем index.php является ли функция echo для записи строки или других функций, но этот веб-сервер не может запускать это echo или другие функции php, и на моем локальном хосте я вижу полную страницу withe, и это моя проблема, в чем проблема?

Ответ №1:

Для этой ошибки может быть несколько причин (например, одна из которых заключается в том, что ваш веб-сервер не имеет разрешений на чтение и, следовательно, не может открыть файлы .php). Вы можете попробовать включить журналы php и установить предпочтительные местоположения и прочитать ошибку, которая не позволяет отображать ваш код.

Комментарии:

1. ошибка разрешения отсутствует . index.php запустите true на консоли, но не можете запустить на локальном хосте в браузере

2. @user3748360 это неправда. На вашей консоли пользователь — это вы, а когда дело доходит до веб-сервера, пользователем является apache. Очевидно, что вы можете r / w / x файл, но может ли apache это сделать? Какие разрешения у вашего файла? Предоставили ли вы право собственности на эти файлы apache?

3. @sestus Сервер, который использует запрашивающий, не является apache.

4. @Jim да, вы правы. Я только что привел пример, и apache является одним из основных, поэтому он только что вышел. Я хотел показать принцип. В любом случае, мой предлагаемый способ устранения неполадок заключается в проверке журналов php.