#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.