Como configuro corretamente o PHP em meu servidor Linux Fedora 19?

Como configuro corretamente o PHP em meu servidor Linux Fedora 19?

O problema:

Isso já vem acontecendo há algum tempo. Só acertei a instalação uma vez e depois disso:

  • As páginas PHP mostram os códigos PHP (não o erro atual, mas já experimentei isso)
  • Páginas PHP retornam “Erro interno no servidor”

Tudo o que eu realmente quero é que o PHP se conecte ao Oracle 11g XE via oci8. Eu não tinha ideia de que seria tão difícil.

Além disso, examinar os logs de erros (presumo que sejam os logs de erros do PHP) localizados em /var/log/httpd/error_log, revela o seguinte erro:

Erro fatal do PHP: Desconhecido: falha na abertura necessária '/var/www/html/info.php' (incluir caminho = '.:/usr/share/pear:/usr/share/php').

Eu nunca encontrei isso antes.

O sistema:

  • Fedora 19x86_64
  • Oracle 11g XE
  • Apache 2.4.6
  • PHP 5.5.4

Informação adicional:

info.php contém apenas o seguinte:

<?php 
phpinfo();
?>

php -ifunciona, embora eu não tenha certeza do que procurar lá.

O que eu tentei:

Bastante. Mas como reformatei o PC e comecei de novo, aqui está um resumo do que fiz:

  • Instalado o Oracle 11g XE
  • Fiz backup corretamente do meu banco de dados no Oracle
  • Modifique .bashrc adicionando o seguinte

TMP=/tmp; exportar TMP
TMPDIR=$TMP; exportar 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;

exportar 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 "Bibliotecas de Desenvolvimento"
  • yum instalar httpd
  • yum instalar php

Iniciei o apache, configurei-o para iniciar na inicialização, consegui acessar a página de teste do Fedora e coloquei uma página de teste PHP no /var/www/html/diretório.

localhost funciona bem.

localhost/info.php retorna "Erro interno no servidor".

Não tenho ideia do que estou fazendo de errado. Eu ainda nem coloquei o PHP em funcionamento, então estou muito preocupado com minha capacidade de conectá-lo ao Oracle. Alguma idéia/sugestão? Obrigado.

Responder1

Verifique as permissões em:

/var/www/html/info.php

Lembro-me de ter ocorrido um erro semelhante quando o usuário que estava executando o processo Apache não tinha as permissões corretas para este arquivo.

Não é uma boa ideia, mas você pode anotar as permissões atuais de info.php, chmod 777 /var/www/html/info.php e ver se funciona. Se sim, então esse é o problema e tente resolver o problema.

Verifique também de acordo com as instruções do @GeoSword se você está obtendo o código php exibido em vez de html, pois isso significa que a configuração do php no apache não está correta.

Responder2

Parece que há uma série de coisas acontecendo aqui.

As páginas que mostraram o código php em vez do resultado provavelmente são porque o manipulador php não foi definido corretamente na configuração do apache. As instalações do Redhat geralmente cuidam desse tipo de coisa. No entanto, algo assim é necessário em algum lugar da configuração do Apache para processar arquivos php

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

O erro fatal que você está recebendo provavelmente se deve ao erro que você está vendo em /var/log/httpd/error_log.

Parece que /var/www/html/info.php não existe e seu programa php realmente quer isso. Tenho certeza de que não preciso lhe dizer o que fazer com isso! :)

informação relacionada