2016-10-06 3 views
0

Когда я добавляю phpinfo(); в индекс index.php работающего сайта (или даже пустую страницу), сервер отправляет пустой ответ. Релевантная информация:phpinfo отправка пустого ответа (MacPorts)

  • Если я удалю phpinfo();, страница будет вести себя так, как ожидалось. Сайты также уважают директивы перенаправления Apache.
  • Я использую MacPorts для PHP и Apache
  • Недавно я обновился до последней версии macOS и последней версии MacPorts.
  • Я уже побежал sudo port upgrade outdated
  • phpinfo работает в командной строке (не удивительно).
  • Файл php.ini не содержит phpinfo в списке disable_functions.

ответ

0

Оказалось, что это проблема с библиотекой enchant PHP. There is already a bug reported related to this.

Пользователь фактически создали особенно полезный скрипт, который я скопированный ниже:

#!/usr/bin/env bash 

# list installed, don't try to deactivate php56-apache2handler|php56-curl because of dependencies 
for thePort in $(port echo installed | awk '{if($1~'/^php56-/') print $1 ;}' | grep -v -E 'php56-apache2handler|php56-curl') ; do 
    # try do deactivate a module 
    echo -n "Test without $thePort : " 
    port deactivate $thePort 
    if [ ! "$?" -eq "0" ] ; then 
     echo "Error for deactivate" 
     exit 1 
    fi 
    # began tests 
    /opt/local/bin/php -i &> /dev/null 
    if [ ! "$?" -eq "0" ] ; then 
     echo "ERROR php -i" 
    else 
     echo "OK" 
     echo -n "Web test : " 
     port unload apache2 
     sleep 2 
     port load apache2 
     sleep 1 
     # The address of the web server; <?php phpinfo(); in the file 
     curl http://127.0.0.1/info.php &> ~/tmpCurlOut 
     # If the curl command exits with an error, then we've 
     if [ ! "$?" -eq "0" ] ; then 
      echo "web test past" 
     else 
      echo "Faulty module is $thePort" 
      exit 1  
     fi  
    fi 
    # on reactive 
    port activate $thePort 
    if [ ! "$?" -eq "0" ] ; then 
     echo "Error for activate" 
     exit 1 
    fi 
done