Как правильно настроить PHP на моем сервере Linux Fedora 19?

Как правильно настроить PHP на моем сервере Linux Fedora 19?

Проблема:

Это продолжается уже довольно долго. У меня только один раз получилась правильная установка, и после этого она либо:

  • PHP-страницы показывают PHP-коды (текущая ошибка не актуальна, но я сталкивался с ней)
  • PHP-страницы возвращают «Внутреннюю ошибку на сервере»

Все, что я действительно хочу, это заставить PHP подключиться к Oracle 11g XE через oci8. Я понятия не имел, что это будет так сложно.

Кроме того, просмотр журналов ошибок (я предполагаю, что это журналы ошибок PHP), расположенных в /var/log/httpd/error_log, выявляет следующую ошибку:

Фатальная ошибка PHP: Неизвестно: Не удалось открыть требуемый '/var/www/html/info.php' (включая путь = '.:/usr/share/pear:/usr/share/php').

Я никогда раньше с таким не сталкивался.

Система:

  • Федора 19 x86_64
  • Oracle 11g XE
  • Апач 2.4.6
  • PHP 5.5.4

Дополнительная информация:

info.php содержит только следующее:

<?php 
phpinfo();
?>

php -iработает, хотя я не уверен, что там искать.

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

Много. Но поскольку я переформатировал ПК и начал все заново, вот список того, что я сделал:

  • Установлен Oracle 11g XE
  • Правильно сделал резервную копию моей базы данных в указанном Oracle
  • Измените .bashrc, добавив следующее

TMP=/tmp; экспорт TMP
TMPDIR=$TMP; экспорт TMPDIR

ORACLE_HOSTNAME=localhost.localdomain; export ORACLE_HOSTNAME  
ORACLE_UNQNAME=DB11G; export ORACLE_UNQNAME  
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE  
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/xe; export ORACLE_HOME  
ORACLE_SID=XE; export ORACLE_SID  
NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`; export NLS_LANG  
ORACLE_TERM=xterm; export ORACLE_TERM  
PATH=/usr/sbin:$PATH; export PATH  
PATH=$ORACLE_HOME/bin:$PATH; export PATH  

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH  
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;

экспортировать CLASSPATH

if [ $USER = "oracle" ]; then  
  if [ $SHELL = "/bin/ksh" ]; then  
    ulimit -p 16384  
    ulimit -n 65536  
  else  
    ulimit -u 16384 -n 65536  
  fi  
fi
  • yum groupinstall "Библиотеки разработки"
  • yum установить httpd
  • yum установить php

Я запустил Apache, настроил его на запуск при загрузке, смог попасть на тестовую страницу Fedora и поместил тестовую страницу PHP в /var/www/html/каталог.

localhost работает нормально.

localhost/info.php возвращает «Внутренняя ошибка сервера».

Понятия не имею, что я делаю не так. Я даже PHP еще не запустил, так что я очень беспокоюсь о своей способности подключить его к Oracle. Есть идеи/предложения? Спасибо.

решение1

Проверьте разрешения на:

/var/www/html/info.php

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

Это не очень хорошая вещь, но вы можете записать текущие права доступа info.php, chmod 777 /var/www/html/info.php и посмотреть, работает ли это. Если так, то это проблема и попробуйте решить ее.

Также проверьте, следуя инструкциям @GeoSword, отображается ли PHP-код вместо HTML, так как это означает, что конфигурация PHP в Apache неверна.

решение2

Похоже, здесь происходит несколько вещей.

Страницы, которые показывали php-код вместо результата, вероятно, потому, что обработчик php не был правильно определен в конфигурации apache. Установки Redhat обычно заботятся о таких вещах. Однако что-то вроде этого необходимо где-то в вашей конфигурации apache для обработки php-файлов

LoadModule php5_module    modules/libphp5.so
AddHandler application/x-httpd-php .php .php5 .phtml
AddHandler application/x-httpd-php-source .phps

Фатальная ошибка, которую вы получаете, вероятно, связана с ошибкой, которую вы видите в /var/log/httpd/error_log.

Похоже, /var/www/html/info.php не существует, а вашей php-программе он очень нужен. Я уверен, что мне не нужно говорить вам, что с этим делать! :)

Связанный контент