Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

167
Vistas
Raspberry Pi Server php no funciona desde fuera de la red local

He estado haciendo una pequeña página en mi servidor para mostrar algunos álbumes de fotos. Esto está en un servidor nginx en una raspberry pi 4. Cuando trato de acceder a la página desde mi computadora portátil o teléfono cuando están en wifi, todo se carga correctamente. Sin embargo, cuando uso mi teléfono con LTE, por ejemplo, las solicitudes de php no funcionan. Verifiqué con mi computadora portátil usando mi punto de acceso inalámbrico y tuve el mismo problema. Nunca obtengo el código "200" que mi navegador está esperando. A mi tampoco me da error. Es como si la solicitud http desapareciera. Tengo otras páginas en este mismo servidor donde el php funciona correctamente, una de las cuales es casi exactamente igual a este código. El php que estoy tratando de usar es uno que devuelve los nombres de archivos y álbumes como una cadena larga. La salida esperada sería:

Hermanos|Wyoming|Utah|Esquí|

Todo esto funciona cuando se accede desde mi red local. En el pasado, he usado archivos php mucho más elaborados para acceder a imágenes de cámaras de seguridad y también enviar scripts de shell para activar y desactivar un relé. Estos funcionaron desde cualquier parte del mundo, no solo desde mi red. Sé muy poco sobre estas cosas, así que espero que me esté perdiendo algo obvio que un experto pueda reconocer de inmediato. :) Incluiré mi código a continuación.

obtener archivos.php

 <?php function clean_scandir($dir){ return array_values(array_diff(scandir($dir),array('.','..'))); } $directory = $_GET['dir']; $files = clean_scandir("/var/www/html/" . $directory); foreach($files as $file){ $fileStr .= $file . "|"; } echo $fileStr; ?>

Y el javascript que está tratando de usar este php:

 function getAlbums(){ var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function(){ if(this.readyState == 4 && this.status == 200){ console.log("return packet = " + this.response); var albumArray = this.response.split("|"); albumArray.pop(); //remove empty last element for (var i = 0; i < albumArray.length; i++){ console.log("album " + i + " = " + albumArray[i]); } getThumbnail(albumArray); setTimeout(() => { populateAlbums(albumArray); //waits 1 sec for thumbnail requests to finish before loading thumbnails }, 1000); } } var urlString = "getfiles.php?dir=" + "photos/"; xmlhttp.open("GET", urlString, true); xmlhttp.send(); }

El código nunca llega a la consola. Los registros que están dentro de la gran declaración 'if', asumo porque el estado nunca llega a 200. No obtengo ningún otro número como un código 500. Simplemente permanece en blanco.

He intentado modificar lentamente el código php. Si el archivo es simplemente:

 echo "php successful";

entonces funciona Pero por alguna razón, el código completo está causando problemas. A veces, los problemas tampoco actúan de la misma manera cada vez.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda