LINUX.ORG.RU

Apache2 + PHP

 ,


1

3

Добрый день. Хотелось бы попросить помощи разобраться в одном вопросе. Есть локальный сервер Apache + php + pgsql. Задача: развернуть копию сайта локально. Проблема: все запустил, php подключил, но при этом когда сайт открываешь, Apache не обрабатывает код PHP и когда в хроме открываю инструменты разработчика, PHP код оказывается закомментирован, в чем может быть проблема? Мучаюсь второй день уже, помогите пожалуйста


в чем может быть проблема?

Может быть в php или связи между ним и апачем, могут быть не установлены какие-то пакеты.

echo '<?php phpinfo(); ?>' > info.php
anonymous
()

Начать стоит с выкидывания давным давно устаревшего апача и установки нормального веб-сервера (nginx). Если на сайте, чью копию ты пытаешься развернуть, тоже апач, начать исправления стоит с него.

firkax ★★★★★
()
Ответ на: комментарий от firkax

ТС ее спрашивал про NGINX. Его интересует конкретно связка Apache httpd и php. И да, httpd хоть и старичок, но ещё работает и работает для большинства небольших сайтов хорошо.

anonymous
()
Ответ на: комментарий от Clockwork

Хотел бы спросить. Чем он нормальный, кроме своей новомодности?

nginx появился 17 лет назад (!).

Приблизительно лет 10 назад или раньше он заменил собой Apache практически везде.

Сейчас новомодные решения, это, типа traefik и другие, а nginx уже почти legacy.

emorozov
()
Ответ на: комментарий от Clockwork

Тем что он сделан в расчёте на современный веб, а не на доисторический. Это видно в каждой детали работы, если их сравнивать. Апач это веб-сервер для многопользовательского мейнфрейма, пользователи которого хотят публиковаться по http (это видно в том числе из формата его конфига - там именно настройки публикации по сути). Да, к нему прикрутили что-то новое, но всё - костылями (в частности, пхп там вставлен как фильтр обработки текстов). nginx это веб-сервер для выделенного сервера, у него конфиг выглядит как настройка парсера урла с выбором действий. Это именно специализированный драйвер http/https-протокола для приложения, максимально оптимизированный именно под эту задачу (unix-way), и имеющий опять же быстрые и удобные (в отличие от апача) способы компоновки с приложением (которое не хочет ничего знать про детали реализации http и не обязано даже быть на той же машине).

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от anonymous

ТС ее спрашивал про NGINX. Его интересует конкретно связка Apache httpd и php.

Это не мнение ТС, а приобретённое им заблуждение. Ему не апач нужен а локально запустить сайт и он, ввиду неграмотности, думает что для этого нужен апач.

работает для большинства небольших сайтов хорошо.

Да, а ещё для небольших пассажирских перевозок можно использовать лошадиную повозку, ведь работает же.

firkax ★★★★★
()
Ответ на: комментарий от emorozov

Я прям сам почувствовал, насколько постарел.

Clockwork ★★★★★
()
Ответ на: комментарий от firkax

Это именно специализированный драйвер http/https-протокола для приложения

Иными словами, nginx это программа, успешно дублирующая лишь кусок функциональности apache httpd.

в частности, пхп там вставлен как фильтр обработки текстов

В частности в nginx php не вставлен никак. Потому что nginx это программа, успешно дублирующая лишь кусок функциональности apache httpd.

Это видно в каждой детали работы, если их сравнивать.

Перечисли хотя бы три детали, чтобы не быть голословным.

thesis ★★★★★
()
Ответ на: комментарий от thesis

Иными словами, nginx это программа, успешно дублирующая лишь кусок функциональности apache httpd.

Та функциональность, которая есть в apache httpd, но нет в nginx - устаревшее, 20 лет никому не нужное, legacy.

Например, user directories, поддержка .htaccess, и всё прочее барахло.

В частности в nginx php не вставлен никак. Потому что nginx это программа, успешно дублирующая лишь кусок функциональности apache httpd.

В Apache PHP тоже не вставлен, а реализуется сторонним загружаемым модулем (который не часть Apache, а часть PHP).

emorozov
()
Ответ на: комментарий от emorozov

Да я уже понял мнение специалистов: апач хуже потому, что он умеет больше.

В Apache PHP тоже не вставлен

Мнения экспертов разделились.

thesis ★★★★★
()
Ответ на: комментарий от thesis

Мнения экспертов разделились.

Во-первых, mod_php никогда не был частью Apache. Это сторонний модуль, который так же, как и в случае с nginx, надо устанавливать и настраивать.

Во-вторых, mod_php даже среди адептов PHP и Apache считается устаревшим, и сами разработчики на PHP рекомендуют использовать php-fpm. А раз так, то зачем вообще нужен Apache? php-fpm можно и с nginx использовать.

emorozov
()
Ответ на: комментарий от emorozov

Но зачем ты это пишешь именно мне? Разве это я утверждал, что «пхп там вставлен»?

thesis ★★★★★
()

Apache не обрабатывает код PHP

Значит не подключил php. Переделывай. Так как что у тебя в конфигах никто на форуме не знает, то помочь невозможно

cobold ★★★★★
()
Ответ на: комментарий от emorozov

Во-первых, mod_php никогда не был частью Apache. Это сторонний модуль, который так же, как и в случае с nginx, надо устанавливать и настраивать.

Я прошу прощения, а частью чего он является? Или это самостоятельный программный продукт, который может использоваться не в составе Apache?

Или вы просто решили, что разработка модулей Apache сторонними разработчиками сразу делает их модули не частью Apache?

Вот, например, mod-auth-pubtkt является частью Apache?

:)

PS Каждому овощу своя грядка. (c) Я :)

Oleg_Iu
()
Ответ на: комментарий от firkax

Да, а ещё для небольших пассажирских перевозок можно использовать лошадиную повозку, ведь работает же.

Ещё в 2006 году апачь+php на озу 100мб выдерживал нагрузку которая ложила на лопатки сотовых операторов (правда это не хорактерезует апачь, а сотовых операторов тех времён)
Сейчас, машине с апачем урезал до 64мб сайт работает (при установке дебиан 11 требует 2gb).
На отдаче статики (по скорости отдачи и нагрузке на CPU) где раньше всегда лидировал nginx, на больших файлах >1gb лидирует apache2. Тут видно виновата реализация epoll в linux, posix функции select и poll apache в таких режиме выгоднее.
Конфиги nginx мне больше нравятся, да и он сам проще, и нет такого безумного количества плагинов, как в apache.
Проводить тесты apache очень сложно, он слишком многогранен, я знаю 4 способа его работы-запуска, у каждого запуска с десяток параметров.
nginx изначально простой одно-поточный почтовый-прокси сервер, к которому добавили возможность отдавать статику, и тут он оказался на голову быстрее apache, переключения между потоками-процесами оказались слишком затратны.
менять apache на nginx можно, но оно того стоит? mod-rewrite тяжко переделать (без потерь с чужими правилами я эту операцию не смог проделать, свои с нуля nginx мне проще да и не надо модули подключать отключать) да и обратный прокси хоть в апаче и медленей и сложнее организован 3 строчки вместо одной в nginx, но nginx всё же не столь гибкий.

s-warus ★★★
()
Ответ на: комментарий от s-warus

Тут видно виновата реализация epoll в linux

Это какие-то сказки. Epoll это нативная очередь событий, select/poll это брутфорс по списку. Впрочем, не имел дело с особыми нагрузками в линуксе, для них есть фрибсд с kqueue. Видимо у тебя был как-то чрезвычайно плохо настроен nginx, хотя я не знаю что там можно напортить.

я знаю 4 способа его работы-запуска, у каждого запуска с десяток параметров.

4 ненужных легаси-способа, когда есть оптимальный - цикл обработки приходящих событий. И куча ненужных параметров, которые либо должны быть заполнены заранее известными величинами (чтобы не сломать), либо вычисляться автоматически (чего апач не умеет, и опять впишешь не то - будет плохо).

менять apache на nginx можно, но оно того стоит?

Разумется стоит.

mod-rewrite тяжко переделать (без потерь с чужими правилами я эту операцию не смог проделать, свои с нуля nginx мне проще да и не надо модули подключать отключать)

От легаси надо избавляться. Один раз потратить время и забыть простыни htaccess-ов (которые кстати ещё и дёргаются по всему пути поиска файла на каждый запрос).

nginx всё же не столь гибкий.

В чём это выражается? Только реальные задачи, а не теории об устаревших штуках типа запуска перла из cgi-bin для отдачи веба.

firkax ★★★★★
()
Ответ на: комментарий от firkax

В чём это выражается?

если-бы я это мог вспомнить, но факт что повторить в nginx я не смог. Для 1С прокси организовавал, какие-то ресурсы нужно было подменять своми.

В чём это выражается? Только реальные задачи, а не теории об устаревших штуках типа запуска перла из cgi-bin для отдачи веба.

Умение запускать cgi и fast-cgi скрипты не лишнее и куча пораметров этого не лишние, хотя вроде nginx тут справляется, недавно fast-cgi репозиторий fossil запускал, с бубном, но заработал. Через ad не тестировал.
Просто отобразить папку и файлы в ней.
Создать виртуальные хосты для каждого пользователя и запускать cgi скрипты, и phpmod от имени пользователя (был и такой мод под apache)
Всякие моды на local, конверторы изображений, реакция на user-agent.
Понятно что всё это можно переписать-реализовать, но не факт что будет быстрее и безопаснее. А тут лёгкий проверенный браузер и готовые решения. Можно вести пагубной политикой: не читал, но не одобряю, лучше прочитать, знать и применять.

s-warus ★★★
()
Ответ на: комментарий от thesis

Если долго работать с легаси технологиями, можно стать неактуальным для рынка труда. Эта мантра точнее.

anonymous
()
Ответ на: комментарий от anonymous

это значит mod_php для хоста не включен

anonymous
()
Ответ на: комментарий от anonymous

А нжынс, которому почти 20 лет, точно не легаси-технология? А то он всего лишь на два года моложе второго апача, из которого произрастает нынешний 2.4.

А пока ты думаешь, я расскажу твою шутку про легаси одинэснику, работающему на седьмой версии. Он любит поржать над зарплатами молодых модных ойтишников. И это у меня еще нет знакомых писателей на коболе.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от thesis

Если завтра все джуны будут по дефолту знать питон, то пхп проекты станут легаси, несмотря на то что питон и пхп почти в одно время появились. Так и сейчас когда космические корабли бороздят просторы кубернетеса, никто не встретит конфигураций с апачем в составе, зато встретит рой нжинксов, реверсящих запросы между контейнерами.

anonymous
()
Ответ на: комментарий от thesis

Я бы не хотел стать дедом даже с большой зарплатой, который не может плюнуть и уйти, когда только и остается что спрятать голову поглубже в воротник как черепашка в панцирь и выслушивать офигительные истории от начальства.

anonymous
()
Ответ на: комментарий от anonymous

Ты не понял. Эти деды вертят всех на чем хотят, потому что их тупо некем заменить. За большую зарплату, тут ты все правильно понял.

thesis ★★★★★
()
Ответ на: комментарий от thesis

Почему думаешь ТС не смог нагуглить как настрить mod_php для виртуального хоста? Потому что поисковик отранжировал результаты, так что php-fpm оказался на первых местах, я почти уверен.

anonymous
()
Ответ на: комментарий от anonymous

Игра в угадайку неинтересна. А может он вообще не пытался ничего настроить.

Да и в любом случае, уже, по-моему, всем очевидно, что гугло в плане релевантности - немыслимая говнина. Однако ж, здесь речь не об этом.

thesis ★★★★★
()
Ответ на: комментарий от s-warus

Умение запускать cgi и fast-cgi скрипты

cgi это легаси из 90-х, сейчас оно нужно только для поддержки перлового хлама оттуда же. fastcgi это не скрипты, это протокол, и nginx его поддерживает.

Просто отобразить папку и файлы в ней.

умеет, конечно

Создать виртуальные хосты для каждого пользователя и запускать cgi скрипты, и phpmod от имени пользователя (был и такой мод под apache)

Это ж и есть жуткое легаси. Ты корпоративный мейнфрейм из 90-х содержишь?

Всякие моды на local

Не понял.

конверторы изображений

Где-то видел такое про nginx, хотя опять же нафига это делать веб-сервером - непонятно.

реакция на user-agent

У nginx можно сделать реакцию на любые параметры запроса вплоть до кук.

Понятно что всё это можно переписать-реализовать, но не факт что будет быстрее и безопаснее.

Именно так и будет. Избавишься от неудачных парадигм работы веб-сервера из 90-х, избавишься от уродливых неподдерживаемых простынь на перле с cgi, избавишься от несистематизированных конфигов, которые лучше просто не трогать как бы что не сломать - явно станет безопаснее.

firkax ★★★★★
()
Ответ на: комментарий от thesis

А нжынс, которому почти 20 лет, точно не легаси-технология? А то он всего лишь на два года моложе второго апача, из которого произрастает нынешний 2.4.

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

А пока ты думаешь, я расскажу твою шутку про легаси одинэснику, работающему на седьмой версии. Он любит поржать над зарплатами

Ну, если ты хочешь получать деньги за древность обслуживаемой технологии - то это другой разговор, возможно тут апач и правда будет полезнее, да и лучше не второй а 1.3 с патчами на TLS - так тебе сложнее будет найти замену. Но лучше та технология от этого не становится.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

А «пачка костылей» это ведь из того же набора, что и «видно в каждой детали работы»(с), да? Перечислений я так и не дождусь?

thesis ★★★★★
()
Ответ на: комментарий от anonymous

Если завтра все джуны будут по дефолту знать питон, то пхп проекты станут легаси,

Плохое сравнение. Апач легаси не потому что он когда-то там появился, и не потому что кто-то его знает/не знает, а потому что парадигма его работы оказалась технически неудачной и закономерно вытеснена более продуманной.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Как это не парадоксально, но довольно много встречается php-проектов, рассчитанных главным образом на apache, несмотря на очевидное и в правильном направлении решение на базе nginx (php-fpm)

anonymous
()
Ответ на: комментарий от Clockwork

Если вопрос «чем лучше» задает не труъ-ынтерпрайз-одмин, а обычный смертный с хомяком, то ответ будет «ничем». А, нет, вру. Ответ будет «лучше тем, что миллионы пионеров за последние 15 лет накопипастили миллионы раз один и тот же способ подружить похапе с нжынсом в свои сраные бложики, поэтому теперь у тебя не должно возникнуть проблем до тех пор, пока твоя цель - подружить похапе с нжынсом, запустить свой сраный хомяк и скопипастить конфиги туда, чтобы все знали, как ты крут».

Ну и еще каждый пионер твердо знает, что нжынс быстрее раздает статику, то есть сможет быстро и надежно доставить твою фавиконку и css обоим твоим посетителям.

А вот труъ-ынтерпрайз-одмины чот в тему так и не пришли.

thesis ★★★★★
()
Ответ на: комментарий от anonymous

Я уже выше объяснял почему так происходит. Если кратко, то это инерция. Куча факторов (начавшихся в далёкие 90-е) взаимно тянут друг друга. Началось всё со статей «как настроить веб-сервер в линуксе» или хуже «как установить wamp» в те времена, когда это действительно было актуально, тогда же или чуть позже начались всякие вордпрессы, друпалы итд тоже для апача, под них сделали всякие «веб-админ-панели» для нубосерверов, тоже с апачем чтоб легко было поставить вордпресс или ещё что-то по нубогайдам. Сейчас же эти привычки просто кочуют с места на место методом копипаста, изредка зарождая новые кривопхп-проекты. Пользователям же nginx'а не особо сдалось заполнять инет копипастерскими статьями про то как его установить - у них есть чем заняться более полезным, да и само наличие в (пусть в личном блоге) статьи «как я установил nginx» будет плохо сказываться на репутации этого самого блога. Как итог инет забит плохими и не очень статьями про установку апача.

firkax ★★★★★
()
Ответ на: комментарий от thesis

, что миллионы пионеров за последние 15 лет накопипастили миллионы раз один и тот же способ

Они как раз обычно про апач пишут.

А вот труъ-ынтерпрайз

Там до сих пор веб-сервера на джаве встречаются, что ещё хуже чем апач.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)

Все необходимые модули поставил? Конфиги апача переносил с боевого сервера копированием или ручками писал по новой?

Kolins ★★★★
()
Ответ на: комментарий от thesis

Повторюсь, выше всё написано. Если ты видишь только 1 предложение из 10 - учись читать. Ну или думать, может, если в этом проблема.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Дело в том, что выше написан задорный пионерский треп без единой технической детали.

thesis ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.