[Resuelto] servidor apache/php no carga archivos php

Iniciado por gAb1, 19 Diciembre 2014, 14:33 PM

0 Miembros y 1 Visitante están viendo este tema.

gAb1

Acaba de instalar y configurar un servidor Lamp en Linux Mint 17.1 siguiendo una guia reciente que encontré en google, pero los archivos de las webs que tengo no funcionan.

Los hice cuando trabajaba en Windows, con notepad++ todos con codificación "utf-8 without BOM". He probado a añadir codigo html y funciona solo si lo pongo antes o entre los tags <?php ?> y los echo tambien funcionan, pero no me carga la web (includes, etcs).

Los permisos creo que los he puesto bien:
Código (bash) [Seleccionar]

chazy@1337-h4x0r /var/www $ sudo chown -R chazy html
chazy@1337-h4x0r /var/www $ sudo chgrp -R www-data html
chazy@1337-h4x0r /var/www $ sudo chmod -R 750 html
chazy@1337-h4x0r /var/www $ sudo chmod g+s html
chazy@1337-h4x0r /var/www $ ls -l
total 4
drwxr-s--- 10 chazy www-data 4096 Dec 19 13:30 html


Porque www-data es el usuario de apache, ¿no?

En la consola de firefox me sale el siguiente error al cargar, la pagina en blanco:

CitarGET http://localhost/ [HTTP/1.0 500 Internal Server Error 1ms]
GET http://localhost/ [HTTP/1.0 500 Internal Server Error 0ms]
GET http://localhost/ [HTTP/1.0 500 Internal Server Error 0ms]
GET http://localhost/ [HTTP/1.0 500 Internal Server Error 1ms]
GET http://127.0.0.1/ [HTTP/1.0 500 Internal Server Error 0ms]

Sin embargo, si que funciona si entro a "localhost/info.php" (phpinfo();)

Ahora utilizo el Sublime Text (sin registrar) para editar los archivos, pero no se si es problema de la codificación o algo.

Cuando configuraba apache y php (no recuerdo que archivo fue) cambie el mime type a utf-8, o la codificación por defecto. ¿Puede ser ese el problema?

Este es el .htaccess (en windows funcionaba bien):
Options -Indexes

DirectoryIndex index.php

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>


Gracias.

Añado el link: http://84.120.219.199/info.php

MinusFour

Revisa tus error logs.

Código (bash) [Seleccionar]

sudo tail /var/log/apache2/error.log

gAb1

Estoy viendo el log y es un problema con el require (linea 11):

Código (php) [Seleccionar]
require('includes/functions.php');

Según he leido es más seguro hacerlo de esta manera.

Código (php) [Seleccionar]
require(dirname(FILE) . 'includes/functions.php');

Este es el log (copio el ultimo, todos son lo mismo)

Citar[Fri Dec 19 14:49:37.514737 2014] [:error] [pid 1677] [client x:35337] PHP Notice:  Use of undefined constant FILE - assumed 'FILE' in /var/www/html/index.php on line 11
[Fri Dec 19 14:49:37.514906 2014] [:error] [pid 1677] [client x:35337] PHP Fatal error:  require(): Failed opening required '.includes/functions.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/html/index.php on line 11

¿Los permisos que puse antes no se aplican a todas las subcarpetas y archivos? Porque la ruta esta debería estar bien.

Gracias.

MinusFour

#3
Cita de: gAb1 en 19 Diciembre 2014, 18:05 PM
Estoy viendo el log y es un problema con el require (linea 11):

Código (php) [Seleccionar]
require('includes/functions.php');

Según he leido es más seguro hacerlo de esta manera.

Código (php) [Seleccionar]
require(dirname(FILE) . 'includes/functions.php');

Este es el log (copio el ultimo, todos son lo mismo)

¿Los permisos que puse antes no se aplican a todas las subcarpetas y archivos? Porque la ruta esta debería estar bien.

Gracias.

Es:

Código (php) [Seleccionar]

dirname(__FILE__);


Por cierto, ¿copiaste tus archivos a la carpeta HTML despues del chmod? Revisa bien que esos archivos tengan permisos de lectura.

gAb1

Fue despues de copiarlos.

Asi los tengo ahora:

Código (bash) [Seleccionar]
-rwxr-x--- 1 chazy www-data 1590 Dec 19 23:53 index.php
-rwxr-x--- 1 chazy www-data 10971 Nov 30 08:17 functions.php

MinusFour

Cita de: gAb1 en 19 Diciembre 2014, 23:59 PM
Fue despues de copiarlos.

Asi los tengo ahora:

Código (bash) [Seleccionar]
-rwxr-x--- 1 chazy www-data 1590 Dec 19 23:53 index.php
-rwxr-x--- 1 chazy www-data 10971 Nov 30 08:17 functions.php


Y despues de agregarle el dirname, ¿que errores tienes? Tambien necesitas agregarle el trailing slash.

Código (php) [Seleccionar]

include(dirname(__FILE__)  . DIRECTORY_SEPARATOR . 'includes/functions.php');

gAb1

Que raro... ahora me da este error:

Citar[Sat Dec 20 01:41:32.518072 2014] [:error] [pid 1674] [client 127.0.0.1:54924] PHP Fatal error:  Class 'mysqli' not found in /var/www/html/includes/db_connect.php on line 5

MinusFour

Cita de: gAb1 en 20 Diciembre 2014, 01:43 AM
Que raro... ahora me da este error:


Probablemente no tengas la extension mysqli de php.

Código (bash) [Seleccionar]

sudo apt-get install php5-mysql

gAb1

#8
Ah! Cierto, se me habia olvidado instalar eso. Aunque tambien tengo que instalar/configurar otras cosas... Con Xampp en Windows venian varias cosas instaladas y configuradas y no me fije en lo que era, ahora que toca investigar ya que no funcionan los links dinámicos (como "localhost/home" que da el error not found).

Edito: Debe ser que mod_rewrite no viene activado por defecto en apache2.

Edito 2: Efectivamente era el mod_rewrite. Gracias!