Не удается найти функцию из расширения PECL: http_send_content_disposition

При запуске сценария PHP путем посещения файла PHP, обслуживаемого моим сервером Apache, я получаю следующую ошибку:

Fatal error: Uncaught Error: Call to undefined function http_send_content_disposition()...

Простой скрипт PHP выглядит следующим образом:

<?php
http_send_content_disposition("video.php", true);
?>

Похоже, у меня есть необходимые http модуль установлен (если его не нужно вызывать pecl_http..):

me$ php -m
...
http
...

Вот мой php информация о версии:

me$ php -v
PHP 7.2.2 (cli) (built: Feb 22 2018 15:07:16) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

me$ which php
/usr/local/bin/php

Вот мой pecl информация о версии:

me$ pecl -V
PEAR Version: 1.10.5
PHP Version: 7.2.2
Zend Engine Version: 3.2.0

me$ which pecl
/usr/local/bin/pecl

Я запускаю свой сервер Apache (копия, которая была предварительно установлена ​​вместе с Sierra) через:

me$ sudo /usr/sbin/apachectl -k restart

… Который использует конф /private/etc/apache2/httpd.conf, как подтверждено через:

me$ /usr/sbin/apachectl -V
Server version: Apache/2.4.28 (Unix)
Server built:   Oct 29 2017 19:28:54
Server's Module Magic Number: 20120211:68
Server loaded:  APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture:   64-bit
Server MPM:     prefork
threaded:     no
forked:     yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_FLOCK_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/usr"-D SUEXEC_BIN="/usr/bin/suexec"-D DEFAULT_PIDLOG="/private/var/run/httpd.pid"-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"-D DEFAULT_ERRORLOG="logs/error_log"-D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types"-D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"

… И этот конфигурационный файл правильно содержит строку, чтобы связать соответствующую версию PHP:

# LoadModule php5_module libexec/apache2/libphp5.so
LoadModule php7_module /usr/local/opt/php72/libexec/apache2/libphp7.so

Хотя эта версия Apache поставлялась с Sierra, я установил PHP через:

brew install php72 --with-httpd --with-pear

Я экспортировал следующие пути:

# Ensures PHP extensions are compiled against the Homebrew-managed PHP installation.
export PATH="/usr/local/bin:$PATH"# Ensures the Homebrew-installed php 7.2 becomes the default CL executable.
export PATH="$(brew --prefix homebrew/php/php72)/bin:$PATH"

Я впоследствии установил pecl_http с помощью:

brew install autoconf
export PHP_AUTOCONF=/usr/local/bin/autoconf
pecl install pecl_http

Это добавило следующие строки в начало /usr/local/etc/php/7.2/php.ini, который Доморощенный сообщил, чтобы быть php.iniрасположение после установки php72:

extension="propro.so"extension="http.so"extension="raphf.so"

Я что-то здесь упускаю? Нужно ли явно включать pecl_http в моем скрипте PHP как-то?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]