2012-04-24 37 views
9

El problema es que php -v muestra que PHP 5.3 está instalado y apache funciona correctamente con archivos HTML, sin embargo, los archivos PHP solo muestran el origen de la página, y me doy cuenta de que esto es probablemente una configuración incorrecta de Apache, pero he probado todas las guías, tutoriales y sugerencias que pude encontrar, y no obtuve nada, y soy bastante nuevo en Centos, por lo que la ayuda sería muy apreciada.Problemas al instalar PHP 5.3 con apache en centos

+0

su información, ya que esta es una cuestión de configuración y no una cuestión de programación, es probable que sea más relevante para [serverfault.com] (http://serverfault.com). – Wiseguy

Respuesta

12

.php nunca debe mostrar source ... Eso quiere decir que la instalación no se realizó correctamente .. INSTED tratar de parchear el error que estoy seguro de que eventualmente sería una lista larga, creo que sólo debe volver a instalar

yum update

yum update 

Instalar prioridades

yum install yum-priorities 

Retire PHP actual

yum remove php php-* 

Retire httpd actual

yum remove httpd 

Instalar Apache

yum install httpd 

Instalar PHP

yum install php53u-pear php53u php53u-cli php53u-common php53u-devel php53u-gd php53u-mbstring php53u-mcrypt php53u-mysql php53u-pdo php53u-soap php53u-xml php53u-xmlrpc php53u-bcmath php53u-pecl-apc php53u-pecl-memcache php53u-snmp 

Fix APC

yum remove php53u-pecl-apc 
yum update php53u-pecl-apc --enablerepo=ius-testing 

Editar PHP.ini

display_errors = On 

Reinicia Apache

service httpd restart 
+0

Ok, he hecho esto, y ahora en lugar de mostrar el código fuente, mi archivo phpinfo solo imprime un página en blanco. editar: si veo la fuente en un navegador, aún muestra el código php. –

+0

No debería hacer eso ... supongo que es correcto ... puede volver a hacerlo una vez más ... esta vez comience por eliminar httpd .. 'yum elimine httpd' vuelva a instalarlo ... luego instale php asegúrese de hacerlo reinicia Apache 'service httpd restart' después de la instalación de php – Baba

+0

Actualizaría mi respuesta para los pasos completos – Baba

0

editar su configuración de Apache en /usr/local/apache2/conf/mime.types y añadir lo siguiente en la parte inferior:

application/x-httpd-php php phtml php5 

Ahora iniciar Apache usando

/usr/local/apache2/bin/apachectl start 
+0

satya: No tenía ninguna carpeta/local/apache, así que seguí y probé su sugerencia con httpd.conf y obtuve este error 'Inicio de httpd: error de sintaxis en la línea 998 de /etc/httpd/conf/httpd.conf : Comando no válido 'application/x-httpd-php', quizás mal escrito o definido por un módulo no incluido en la configuración del servidor' –

3

Si' hemos construido a partir de la fuente Es necesario añadir esto a su httpd.conf:

LoadModule php5_module modules/libphp5.so 
<FilesMatch \.php$> 
    SetHandler application/x-httpd-php 
</FilesMatch> 
+2

intenté su sugerencia y no obtuve ningún error, pero tampoco se corrigió nada. –

+0

Esto funciona para mí. módulos 'php5_module LoadModule/libphp5.so AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps aplicación SetHandler/x- httpd-php He añadido eso en mi '/ etc/httpd/mod.d/php.load' –

8

después de la actualización, archivo PHP ini será reemplazado.

Esto hará que las "Etiquetas abreviadas abreviadas" sean "Desactivadas".

Si su aplicación utiliza <? ?> en lugar de <?php ?>, PHP "mostrar" su código, no procesarlo, dando a su navegador de su código fuente PHP (tal vez en una página en blanco, según su código).

Para resolver este problema, acabo de ejecutar:

yum remove php* 
yum install php53* 

entonces, Editado:/etc/php.ini, cambiando las etiquetas cortas a en:

short_open_tag = On 

por último:

service httpd restart 

creo que sirve;)

+0

Cualquier instalación de php 4+, se puede configurar de esta manera –

3

Si PHP está instalado por el instalador de paquetes yum, rpm, etc. tendrá por defecto php .ini que tiene short_open_tag = Off por defecto, intente configurarlo 'On' y reiniciar el servicio apache.

if short_open_tag = Desactivado, los scripts php que comiencen con "menos de + signo de interrogación" no serán procesados ​​por apache. Sin embargo, "menos de + signo de interrogación + php" debería funcionar bien.

+0

Wonderful. Funcionó. En realidad lo intenté antes añadiendo short_open_tag = Encendido, sin embargo no noté que había otro short_open_tag = Desactivado en las líneas en la parte inferior del archivo. Tuve que comentar eso y funcionó. Muchas gracias. –

0

No pude obtener ninguna de las otras soluciones para trabajar en CentOS, hasta que instalé la base de php RPM (que ahora es php54w), que instaló httpd para mí. Solo entonces haría el módulo libphp5.so para apache. El único comando que necesitaba era:

yum install php54w php54w* 

No sé qué php54w no se encontró con *, pero a menos que se instala, Apache no contenía el módulo PHP. .

-3

En httpd.conf, elimine Include conf.d/* conf

+2

¿Puedes dar más detalles sobre esta respuesta? –