Форум программистов, компьютерный форум, киберфорум
Apache, htaccess
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
66 / 9 / 4
Регистрация: 09.01.2018
Сообщений: 279

Связка Apache - PHP

03.01.2025, 13:56. Показов 2603. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день, и с Новым годом!
Случилась беда, понадобился РНР 8.0 и старше...
Не получается помирить Apache и PHP...
Из командной строки по-честному на php -v возвращает 8.3.15, как и устанавливал. Список модулей по php -m тоже в порядке, т.е. редактирую в ini строки с extension= - в списке загруженных модулей появляются/пропадают dll. По php --ini рисует правильный путь - ini тот самый.
Но если в браузере localhost набрать (там в index.php торчит phpinfo()), то вываливается страница с 8.3.3.
В httpd.conf строки про РНР вроде правильные

LoadModule php_module "c:\server\bin\php\php8apache2_4.dll "
AddHandler application/x-httpd-php .php
PHPIniDir “c:\server\bin\php”
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.01.2025, 13:56
Ответы с готовыми решениями:

APACHE+PHP+MYSQL+PHPMYADMIN эта связка актальна для динамического сайта?
APACHE+PHP+MYSQL+PHPMYADMIN эта связка актуальна для динамического сайта сколько искал инфы но так и не нашел человека ...

Связка PHP и Cookies
Помогите, пожалуйста. Сделайте, чтобы ваша первая страница узнавала посетителя (приветствовала что "вы снова зашли на сайт студента...

Выводится php-код в браузер после установки php+apache+mysql
Навеяло отсюда: https://www.cyberforum.ru/php-beginners/thread839975.html Установила по инструкции...

24
Невнимательный
 Аватар для ft4l
3108 / 1285 / 358
Регистрация: 08.02.2013
Сообщений: 7,545
Записей в блоге: 2
03.01.2025, 15:28
Цитата Сообщение от vpivo Посмотреть сообщение
8.3.15 ... 8.3.3.
Как-то слабо верится что какая-то существенная разница есть между ними,
кроме того что свежее обычно местами поправили.
... на первый взгляд - Почему-бы просто не снести 8.3.3 ... настройки для 8.3.15 только возможно надо будет
Цитата Сообщение от vpivo Посмотреть сообщение
LoadModule php_module "c:\server\bin\php\php8apache2_4.dll "
возможно поможет если перед этии сделать
LoadFile "c:/server/bin/php/php8ts.dll"
Но само по себе то что httpd.exe подхватывает *.dll не оттуда уже настораживает.

... Когда php.exe запускается оно первым делом ищет библтотеки там-же где находится.
Когда httpd.exe ищет , то что находится не там-же, то ищет перебирая по порядку директории переменной оружения PATH
0
66 / 9 / 4
Регистрация: 09.01.2018
Сообщений: 279
03.01.2025, 16:30  [ТС]
Цитата Сообщение от ft4l Посмотреть сообщение
Как-то слабо верится что какая-то существенная разница есть между ними
Это остатки от предыдущей попытки перехода с 7.2. Просто тогда остро не стояла проблема и обходился VS2019 с плагином под РНР.
Цитата Сообщение от ft4l Посмотреть сообщение
на первый взгляд - Почему-бы просто не снести 8.3.3
Только где его найти? Кроме c:\server\bin\php РНР нигде больше не жил на компе. VS2019 работает через IIS Express...
Цитата Сообщение от ft4l Посмотреть сообщение
Когда httpd.exe ищет , то что находится не там-же, то ищет перебирая по порядку директории переменной оружения PATH
В переменных окружения до РНР есть путь...
0
Невнимательный
 Аватар для ft4l
3108 / 1285 / 358
Регистрация: 08.02.2013
Сообщений: 7,545
Записей в блоге: 2
03.01.2025, 18:36
Цитата Сообщение от vpivo Посмотреть сообщение
Только где его найти? Кроме c:\server\bin\php РНР нигде больше не жил на компе
Если на самом деле разные phpinfo показывают разные версии то, как-минимум, парочка разных php*.dll где-то
... разных версий в смысле.
Плагин VS я не знаю в каком месте держит php... но скорее всего будет в PATH, хотя-бы для своих переменных среды
типа когда консоль запускать с ярлыка "Visual Studio Command Prompt" или просто для студии.

Даже не знаю чем помочь ,)) можно попробовать например таким WHICH.BAT чего-то поискать
Например я могу и такое у себя окружение устроить в PATH
% which.bat dll php*

php*
D:\A\32\php70\php7apache2_4.dll
D:\A\32\php70\php7phpdbg.dll
D:\A\32\php70\php7ts.dll
D:\A\32\php8.2\php8apache2_4.dll
D:\A\32\php8.2\php8phpdbg.dll
D:\A\32\php8.2\php8ts.dll

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

Не по теме:

php-7 у меня для XP )) крайнее что нашёл дщля него , типа васяно-сборки с nonxp.dll )

0
Надуваю лягушек
Эксперт PHP
 Аватар для Царь Бабай
289 / 219 / 93
Регистрация: 01.05.2014
Сообщений: 742
03.01.2025, 18:55
Попробуй подобное и свой путь пропиши

Define SRVROOT "/usr/local/apache"

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
LoadFile "${SRVROOT}/php8/php8ts.dll"
LoadFile "${SRVROOT}/php8/libpq.dll"
LoadFile "${SRVROOT}/php8/libsqlite3.dll"
LoadModule php_module "${SRVROOT}/php8/php8apache2_4.dll"
 
<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>
 
#
# PHP-CGI setup
#
#<FilesMatch "\.php$">
#    SetHandler application/x-httpd-php-cgi
#</FilesMatch>
#<IfModule actions_module>
#    Action application/x-httpd-php-cgi "/php-cgi/php-cgi.exe"
#</IfModule>
 
 
<IfModule php_module>
    PHPINIDir "${SRVROOT}/php8"
</IfModule>
 
<IfModule mime_module>
    AddType text/html .php .phps
</IfModule>
1
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
03.01.2025, 23:38
Цитата Сообщение от vpivo Посмотреть сообщение
Но если в браузере localhost набрать (там в index.php торчит phpinfo()), то вываливается страница с 8.3.3.
В httpd.conf строки про РНР вроде правильные
LoadModule php_module "c:\server\bin\php\php8apache2_4.dll "
AddHandler application/x-httpd-php .php
PHPIniDir “c:\server\bin\php”
Попробуйте использовать прямые слеши и обычные кавычки (везде). Кроме того, PHP рекомендует использовать SetHandler:
Code
1
2
3
4
5
6
7
8
LoadModule php_module D:/Programs/PHP/php8apache2_4.dll
 
<IfModule php_module>
    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>
    PHPIniDir "D:/Programs/PHP"
</IfModule>
Также проверьте др. требования: 8.3.x использует VS16 (VS 2019), так что сборка апача по идее должна быть такой же (а то может быть и vc15, и vs17). Обычно используется TS-версия PHP-модуля (без суффикса nts в названии дистра). Также написано, что нужен VCRedist 2015-2022 (для VS16 достаточно VCRedist 2015-2019).
1
66 / 9 / 4
Регистрация: 09.01.2018
Сообщений: 279
07.01.2025, 13:49  [ТС]
Похоже, что сам напортачил, но не пойму где. В логах апача вот таких типа строк
PHP Warning: PHP Startup: curl: Unable to initialize module\nModule compiled with build ID=API20230831,NTS,VS16\nPHP
тьма-тьмущая. Т.е. не хочет инициализировать модули скомпиленные как NTS. Но я же PHP специально взял с https://windows.php.net/download#php-8.3 как Thread Safe. Почему ругается, как будто это NTS?
Полез в php.ini, закомментил пару строк типа ;extension=bz2.
Перезапустил апач - все четко, строки типа PHP Warning: PHP Startup: bz2: Unable to initialize... в логе теперь нет.
Какие-то танцы с бубном...
Подскажите тупому - не нравится тип компиляции, или не находит этот модуль?
Причем странно - в папке ext лежит php_bz2.dll, а в php.ini что extension=bz2, что extension=php_bz2 - одна фигня.

Добавлено через 3 минуты
Полез еще за инсталяцией апача - там последняя версия под VS17, а про VS16 - только старые сборки, типа больше и не будет VS16

Добавлено через 35 минут
Переустановил апач из исходника под VS16 - не помогло. Все теже строки в error.log про то, что не может инициализировать модули типа
PHP Warning: PHP Startup: curl: Unable to initialize module\nModule compiled with build ID=API20230831,NTS,VS16\nPHP
0
Невнимательный
 Аватар для ft4l
3108 / 1285 / 358
Регистрация: 08.02.2013
Сообщений: 7,545
Записей в блоге: 2
07.01.2025, 13:53
Цитата Сообщение от vpivo Посмотреть сообщение
extension=bz2
в новых версиях так рекомендуется, в совсем старых может не работать

Так-то, например если пользуетксь TotalCommander можно просто по F3 посмотреть с ts или нет собрана dll
... в зависимостях будет phpXXts.dll

... некоторые зависят ещё от сторонних dll , которые в директории с самим php


Но бывает, что стандартное extension_dir = "ext" поможет заменить полным путём
типа extension_dir = "d:/pathto/php8.2/ext" или где там оно.
... чтоб наверняка.

Цитата Сообщение от vpivo Посмотреть сообщение
PHPIniDir
PhpIniDir в таком регистре у меня
1
66 / 9 / 4
Регистрация: 09.01.2018
Сообщений: 279
07.01.2025, 14:06  [ТС]
Опа-на... Начало прояснятся.
Скачал длл-ку под сиквел с Thread Safe - ошибка в логе про sqlsrv.dll исчезла.
Все понятно - хочет все dll-ки под Thread Safe, но где их взять? На https://windows.php.net/download#php-8.3 скачивал же именно TS...

Цитата Сообщение от ft4l Посмотреть сообщение
PhpIniDir в таком регистре у меня
Думаю, что не актуально - под сиквел dll-ки подгрузились без ошибки, значит путь правильно прописан.
0
Невнимательный
 Аватар для ft4l
3108 / 1285 / 358
Регистрация: 08.02.2013
Сообщений: 7,545
Записей в блоге: 2
07.01.2025, 14:17
Цитата Сообщение от vpivo Посмотреть сообщение
по F3 простой Lister
У меня всё стандартно вроде ))

ICLView.wlx
v14.6.2018
Free for noncommercial use.

Lister plugin for Total Commander. Show icons in files.
Supported extentions: ico, icl, exe, dll, scr, ocx, bpl, wlx, wfx, wcx, wdx, cpl, acm.
С офф.сайта плагинов помню чнго-то собирал... но чтобы конкретно этот не помню
0
Невнимательный
 Аватар для ft4l
3108 / 1285 / 358
Регистрация: 08.02.2013
Сообщений: 7,545
Записей в блоге: 2
07.01.2025, 14:21
Цитата Сообщение от ft4l Посмотреть сообщение
Show icons in files.
не оно возможно... тогда если fileinfo только
0
66 / 9 / 4
Регистрация: 09.01.2018
Сообщений: 279
07.01.2025, 14:53  [ТС]
Цитата Сообщение от ft4l Посмотреть сообщение
не оно возможно... тогда если fileinfo только
Нашел. Спасибо за пинок. Раньше ленился поискать...
https://www.ghisler.com/plugins.htm отсюда fileinfo скачал и обновил у TC.

Добавлено через 19 минут
Заработало! Ура! Танец с бубном исполнен!

Первую строку (про php8.dll)добавил сам,
а последняя из ниже перечисленных строк из httpd.conf была лишняя

# от Царь Бабай
LoadFile "c:/server/bin/php/php8.dll"
LoadFile "c:/server/bin/php/php8ts.dll"
LoadFile "c:/server/bin/php/libpq.dll"
LoadFile "c:/server/bin/php/libsqlite3.dll"
#LoadModule php_module "c:/server/bin/php/php8apache2_4.dll"

Как только ее закомментил - в error.log осталось только 4 строки (удалял его, чтобы не копаться)

Добавлено через 9 минут
И побочный эффект - phpinfo() перестало работать. Видать как-то зависит от php8apache2_4.dll. Ну да ладно - переживу.
0
Невнимательный
 Аватар для ft4l
3108 / 1285 / 358
Регистрация: 08.02.2013
Сообщений: 7,545
Записей в блоге: 2
07.01.2025, 15:12
Цитата Сообщение от vpivo Посмотреть сообщение
LoadFile "c:/server/bin/php/php8.dll"
LoadFile "c:/server/bin/php/php8ts.dll"
как-то странно...
... у меня вообще-то не запускатся php>=2.3 и XP >5.4 ( != 7.0 mod) ... но
всю жизнь было или всё TS или всё NTS никакого смешивания.

Сейчас вот под XP сижу и php-7.0 вообще не модулем а с php-cgi.exe посредством mod_fcgid
но никаких php7.dll даже и рядом не было никогда, только php7ts.dll
0
66 / 9 / 4
Регистрация: 09.01.2018
Сообщений: 279
07.01.2025, 15:19  [ТС]
А вот и не заработало... Вызываю свой php скрипт - возвращается текст самого скрипта/
0
Невнимательный
 Аватар для ft4l
3108 / 1285 / 358
Регистрация: 08.02.2013
Сообщений: 7,545
Записей в блоге: 2
07.01.2025, 15:45
Цитата Сообщение от vpivo Посмотреть сообщение
возвращается текст
там должно быть в конфигах апаче что-то типа
Bash
1
2
3
<IfModule mod_mime.c>
    AddType application/x-httpd-php php
</IfModule>
для всего сервера или мест/хостов
как вариант AddHandler application/x-httpd-php php тоже из mod_mime
и есть ядерная SetHandler

файл точно c разрешением .php ?
чего-то как-то насчёт сервера можете посмотреть ?
... как если включить
Bash
1
2
3
4
5
LoadModule  info_module modules/mod_info.so
# .....
        <Location /server-info>
            SetHandler server-info
        </Location>
и перейти http://localhost/server-info
0
66 / 9 / 4
Регистрация: 09.01.2018
Сообщений: 279
07.01.2025, 16:59  [ТС]
Цитата Сообщение от ft4l Посмотреть сообщение
Сделал... много чего нарисовало...
Какие секции смотреть нужно?
0
Невнимательный
 Аватар для ft4l
3108 / 1285 / 358
Регистрация: 08.02.2013
Сообщений: 7,545
Записей в блоге: 2
07.01.2025, 17:05
Цитата Сообщение от vpivo Посмотреть сообщение
Какие секции
вообще загрузило-ли mod_php
и на предмет application/x-httpd-php
И раньше забыл сказать ... error.log бывает жалуется на что-то, выплёвывает модуль, но загружается и без него
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
07.01.2025, 20:15
Цитата Сообщение от ft4l Посмотреть сообщение
там должно быть в конфигах апаче что-то типа
Уже давно (всегда?) рекомендуется использовать SetHandler. Писал об этом в теме.

Добавлено через 59 секунд
https://www.php.net/manual/ru/... pache2.php
1
66 / 9 / 4
Регистрация: 09.01.2018
Сообщений: 279
25.01.2025, 12:12  [ТС]
Всем спасибо за участие.
Как говорится, не нужно прыгать туда-сюда. Нужно все делать последовательно.
Деинсталлировал Apache, удалил все каталоги его и РНР. Добился полного удаления - гарантия, что ни один ехе-шник нигде не загружается.
Как устанавливать Apache - за кадром, в инете полно инфы и роликов.
После установки проверяем работоспособность как там говорят.
Как устанавливать РНР - тоже за кадром, гуглим там же.
После установки проверяем работоспособность как там говорят.
Дополнительно стараемся скачивать и устанавливать сборки под Windows и Apache и PHP скомпилированные под одной средой. В моем случае я выбрал под VC16. Соответственно пакет под VC16 тоже скачиваем и устанавливаем.
И как посоветовали в гугле РНР я выбрал в потокозависимой версии (не nts).

А вот для связки в конфиг Apache прописываем вот такие строки:

#For PHP 8.0.0
LoadModule php_module "Свой Каталог до ДЛЛ-ки/php8apache2_4.dll"
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
PHPIniDir "Свой Каталог до php.ini"

Как правило и ДЛЛ и ИНИ торчат в одной папке.

И не забудьте раскомментить модули (extention) в php.ini, указав путь до них
extension_dir = "Свой каталог\PHP\ext"
Добавить туда (в папку) недостающие (мне понадобилась длл для MS SQL Server) и прописать их в php.ini.
Ничего больше в php.ini не правил, только сделал его из php.ini-development тупым созданием копии.

И вуаля. Все работает.
Весь этот гиморрой случился от того, что пришлось с РНР7.1 перейти на РНР8.3. Пока не сконфигурил связку приходилось работать под VS2019 с расширением под РНР. А это расширение работало под IIS Express.
Еще раз всем спасибо.
0
66 / 9 / 4
Регистрация: 09.01.2018
Сообщений: 279
27.05.2025, 09:08  [ТС]
Наверное стоило начать новую тему...
Все-таки проблема не оставляет в покое...
В полной уверенности, что деинсталляция апача, подчистка за ним и PHP, с последующим копированием нужных каталогов и установкой апача как сервиса, проблемы не родит. Ан нет - на другом компе ситуация повторилась.
При запуске сервиса апач и его попытке подгрузить библиотеки РНР в логе появляются строки типа

PHP Warning: PHP Startup: Unable to load dynamic library 'curl' (tried: C:\\server\\bin\\PHP\\ext\\curl (\xd0...........

Правка строк в php.ini убеждает, что :
1. Читается именно этот ini.
2. Не грузятся только некоторые из библиотек (расширений).
3. Причина не в путях/названиях и пр., а именно в самих библиотеках. Т.е. стоит изменить название библиотеки в php.ini, как указанная выше строка также появляется в логе и касается как раз исправленной строки в php.ini.

Проанализировал установленные фреймворки и пр. на двух компах, доустановил пакет С++. Не помогло.
Не знаю, что дальше делать. Полную переустановку, как в первом случае делать не хочу. Хочу сделать некий cmd, чтобы нужное мне ПО начинало работать без танцев с бубном.

Добавлено через 7 минут
Смущают такого вида строки подгрузки библиотек (помеченные библиотеки не грузятся)

....
extension=curl ;
extension=ffi
extension=ftp ;
extension=fileinfo
.....

Дело в том, что на самом деле библиотеки то php_curl.dll и php_ffi.dll. Но curl не грузится, а ffi грузится. Стоит только исправить на extension=ffi_ или изменить имя самой длл ffi - сразу в логе добавляется строка про ошибку загрузки.
Такое впечатление, что просто где-то апачу не сообщается про то, что curl - это синоним php_curl.dll.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.05.2025, 09:08
Помогаю со студенческими работами здесь

Не работает связка rss+php.
Привет всем. Вот мой скрипт. Когда обращаюсь к нему - ничего не происходит. Совершенно ничего. В чем ошибка? &lt;?...

Apache+PHP
К сожалению, туториал https://www.cyberforum.ru/php-beginners/thread87651.html устарел и никак не помогает решить пролему. Установил...

PHP Apache
Устанавливаю PHP(5.5.4) и Apache(2.2.25). В httpd.conf пишу PHPIniDir &quot;c:/webserver/php&quot; LoadModule php5_module...

Привязать PHP к apache
Здравствуйте, очень нужна помощь!!! Не могу привязать PHP(4.4.9) к apache(2.0.65). Как только в файле httpd.conf прописываю LoadModule...

Apache & PHP ?!
Доброе время суток! Понимаю что мои глупые вопросы раздражают, но не знаю где ответ искать (нашел много но не подходит решение, возможно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru