Ответы пользователя по тегу Apache HTTP Server
  • Не обновляется Apache2. Пишет (Job for apache2.service failed because the control process exited with error code.) Что делать?

    XXXXPro
    @XXXXPro
    Fullstack Web developer
    Вариант 1. Проверить, что нет ошибок в конфиге:
    apache2ctl -t
    Вариант 2. Посмотреть логи и статус службы:
    tail /var/log/apache2/error.log
    journalctl -xu apache2.service
    Вариант 3. Запустить вручную из консоли в отладочном режиме: apache2 -X, чтобы все ошибки выводились в консоль.
    Ответ написан
  • Правильная переадресация htaccess?

    XXXXPro
    @XXXXPro
    Fullstack Web developer
    Нужно посмотреть, что в текущем .htaccess прописано. Скорее всего, нужно для URLов типа /novosti/ добавить в конец символ $ (конец строки), чтобы на URL вида /novosti/kategoriya/ корректно выдавался статус 404, а не делать костыли вида редиректов.
    Ответ написан
    Комментировать
  • Почему все-таки PHP на моем VPS выполняется гораздо медленнее (результаты 2 тестов)?

    XXXXPro
    @XXXXPro
    Fullstack Web developer
    Batlab совершенно верно ответил выше, что на VDS ресурсы процессора распределяются через виртуализацию, и они ограничены тарифным планом, но зато гарантированы каждому клиенту.
    На хостинге распределение идет иначе — все ресурсы сервера могут использоваться всеми клиентами. Поэтому если тестировать хостинг в тот момент, когда он слабо загружен (скажем, ночью с субботы на воскресенье), то результаты на нем будут лучше. Но в те моменты, когда на хостинге растет нагрузка от других клиентов, эффект будет обратный: сайт будет работать медленнее, чем на VDS (хотя еще многое зависит от самого хостера).
    Еще для корректного сравнения нужно брать и там и там одну и ту же версию PHP (на такие синтетические тесты, как у вас, она влияет очень сильно). А на тест с файлом будет сильно влиять дисковый кеш.
    Ответ написан
    2 комментария
  • Как отслеживать/логгировать обращения к php файлам со стороны сервера?

    XXXXPro
    @XXXXPro
    Fullstack Web developer
    Если у вас VDS, то по умолчанию логи Apache, скорее всего, включены и лежат где-нибудь в /var/log/apache2 или /var/log/httpd. Если обычный хостинг, то скорее всего, в каталоге /logs в корне.
    Но по ним можно увидеть только тот php-файл, который запускался напрямую, а подключаемые через include/require там не появятся. Если нужно отслеживать и их тоже, то воспользуйтесь функцией get_included_files(), и допишите в конец каждого из вызываемых скриптов код, который будет писать список подключенных файлов в лог.
    Код примерно такой:
    $files = join(',',get_included_files())."\n";
    $fh = fopen('php.log','a');
    if ($fh) fputs($fh,$files);
    fclose($fh);
    Ответ написан
    Комментировать