Назад | Перейти на главную страницу

PHP загружает расширения при вызове через CLI, но не через Apache

PHP для меня отлично загружает расширения только при вызове из CLI, но не когда я загружаю страницы через Apache.

Например, это результат php -m:

[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
filter
hash
iconv
json
libxml
mysqlnd
openssl
pcre
PDO
Phar
readline
Reflection
session
SimpleXML
SPL
standard
tokenizer
xml
xmlreader
xmlwriter
zip
zlib

Однако при запуске через Apache:
1. В phpinfo(), Поддержка OpenSSL отображается как «отключена».
2. extension_loaded("curl") является false
3. get_loaded_extensions() не включает curl или OpenSSL.
4. Попытка использовать любую из функций расширений не удалась.

Вот var_dump(get_loaded_extensions()); при запуске через Apache:

array(28) {
  [0]=>
  string(4) "Core"
  [1]=>
  string(6) "bcmath"
  [2]=>
  string(8) "calendar"
  [3]=>
  string(5) "ctype"
  [4]=>
  string(4) "date"
  [5]=>
  string(6) "filter"
  [6]=>
  string(4) "hash"
  [7]=>
  string(5) "iconv"
  [8]=>
  string(4) "json"
  [9]=>
  string(3) "SPL"
  [10]=>
  string(4) "pcre"
  [11]=>
  string(8) "readline"
  [12]=>
  string(10) "Reflection"
  [13]=>
  string(7) "session"
  [14]=>
  string(8) "standard"
  [15]=>
  string(7) "mysqlnd"
  [16]=>
  string(9) "tokenizer"
  [17]=>
  string(3) "zip"
  [18]=>
  string(4) "zlib"
  [19]=>
  string(6) "libxml"
  [20]=>
  string(3) "dom"
  [21]=>
  string(3) "PDO"
  [22]=>
  string(4) "Phar"
  [23]=>
  string(9) "SimpleXML"
  [24]=>
  string(3) "xml"
  [25]=>
  string(9) "xmlreader"
  [26]=>
  string(9) "xmlwriter"
  [27]=>
  string(14) "apache2handler"
}

ОПЕРАЦИОННЫЕ СИСТЕМЫ: Windows 10 1809, up to date.

php -v:

PHP 7.4.5 (cli) (built: Apr 14 2020 16:17:34) ( ZTS Visual C++ 2017 x64 )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

httpd: Apache 2.4.43 Win64 из https://www.apachelounge.com/

PHP и Apache взаимодействуют через это в httpd.conf (mod_php):

LoadModule php7_module "C:/<path_to_PHP>/PHP7/php7apache2_4.dll"

На этом компьютере установлена ​​только одна установка Apache + PHP.


Что я пробовал:

  1. Подтверждено, что PHP использует один и тот же ini-файл в обоих режимах. Если я отключу расширения в ini-файле, они перестанут отображаться в php -m (как должны).
  2. (Повторная) установка распространяемого пакета MS Visual Studio C ++ 2015-19 (как x86, так и x64).
  3. Перезапуск httpd.
  4. Перезагружаем ПК.
  5. Переустановка PHP и Apache.
  6. display_startup_errors=on а затем проверка журналов. В журналах ошибок Apache и PHP нет соответствующей информации.
  7. Подтверждено, что PHP работает в ZTS в php.exe -v, "Безопасность потоков" отображается как включенная в phpinfo() через Apache.

Пожалуйста помоги. Мне нужен этот веб-сервер в рабочем состоянии, и это сводит меня с ума.

Мне удалось решить проблему, заменив двоичные файлы Apache Lounge на файлы из Apache Haus.

Я просто заменил старый Apache24 папка с новой, но сохранила старую conf папка. Никаких других изменений вносить не нужно.