
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 -i
funciona, 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 TMPDIRORACLE_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! :)