- Home
- Categorie
- Coding e Sistemistica
- PHP
- compilazione php 5 con apxs2
-
No, forse è meglio se ci spieghi a parole qual'è il problema, perché rileggendo il thread non capisco più qual'è il problema...:bho:
-
una volta compilato php 5, copio il file libphp5.so nei moduli di apache, è che alcune pagine php vengono eseguite (e viene mostrato l'output a video) e invece altre pagine php viene mostrata una pagina bianca (non so se quelle determinate pagine vengono eseguite o meno, visto che viene restituita una pagina vuota). questo è il problema, come posso risolverlo?
-
Non è possibile dire qual'è la casua. Può essere che le pagine che testi non debbano fornire alcun output a video... Dovresti provarle su un sistema che sai per certo funzionare a dovere e trarre le dovute conclusioni.
Spesso, in fase di prima installazione, possono sfuggire alcune estensioni, tipo php3, ecc... oppure non essere abilitati alcuni delimitatori di php com il semplice <? piuttosto del più usuale <?php.
Comunque se le tue pagine non funzionassere dovresti vedere a schero il codice php come fosse normale testo. Il fatto che tu non veda nulla sembra più probabilmente un codice php eseguito...
-
comuque le pagine che testo so per certo che funzionano e restituiscono output a video! testate già con una versione già compilata di php5 per ubuntu, quindi le pagine che testo funzionano per certo, il problema è quando compilo io php 5 alcune di queste pagine riesco a vederle (ed interagisco perfettamente) altre solo pagina bianca
-
...e restituiscono output a video!
Tutte? Anche quelle che sulla versione da te compilata non danno alcun output?In caso affermativo posta un esempio di pagina php che solo sulla versione di php da compilata non fornisce un output a video.
-
<?php
if ($_GET['op'] == 'logout') {
$_SESSION['logged'] = false;
session_destroy();
}require '../config.php'; require '../includes/lib.template.php'; require 'login.php'; $templ = new template(); $templ2 = new template(); $templ->setTemplate("templates/$template/index.tpl"); $op = isset($_GET['op']) ? $_GET['op'] : (isset($_POST['op']) ? $_POST['op'] : ""); $id = isset($_POST['id']) ? $_POST['id'] : ""; $execute = isset($_POST['execute']) ? $_POST['execute'] : ""; if ($_GET['p'] == 'logger') require 'logger.php'; elseif ($_GET['p'] == 'encoder') require 'encoder.php'; elseif ($_GET['p'] == 'obfuscator') require 'obfuscator.php'; elseif ($_GET['p'] == 'settings') require 'settings.php'; elseif (!empty($default_module)) require $default_module . '.php'; $array = Array( "VER" => $version, "CLASS" => $class, "L_VER" => $content, "DESC" => $desc, "BODY" => ($sql->connected) ? @$body : '<span id="error">' . NOT_SQL_CONNECT . '</span>'); $templ->setValues($array); $content = $templ->finalTemplate('prefixed'); foreach($langs as $key => $value) $content = str_replace('{' . $key . '}', $value, $content); echo $content;
?>
nota: tutti i require funzionano
-
Ok, adesso con un po' di pazienza, devi fare il classico debug...
Inizia con il farti stampare tutto ciò che è contenuto negli array, aggiungendo in fondo allo script:***var_dump($_GET); ***
***var_dump($_POST); ***
***var_dump($array); ***
var_dump($langs);e chi più ne ha, più ne metta...;)
Controlla quindi gli output e cerca di capire quale array risulta inaspettatamente vuoto o mal formato.Inoltre potresti aver settato l'output degli errori in modo da non vedere nulla, pertanto, subito dopo <?php metti:
error_reporting (E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
in modo da vedere eventuali errori o warning.
Purtroppo di più non posso dirti perché con tutti quegli inclede non posso ovviamente testare lo script...
-
qui non si tratta di errore di codice, il codice è testato! funziona, è un problema della compilazione della libreria...capire solo cosa non va nel libphp5.so, non mi serve il debug di uno script che funziona.
-
Il debug serve solo per risalire al problema di compilazione...
-
Non sono esperto di compilazioni, ma se dici che le pagine che sul tuo server vedi bianche, su un altro server le vedi bene allora è effettivamente un problema del tuo server o della tua libreria php.
Se è così, prova a settare un ```
error_reporting(E_ALL)Ciauz
-
nessun errore mostrato con E_ALL e sempre solita pagina bianca non so davvero cosa fare...
comunque escludo che il problema sia del mio server perchè sul mio server in locale (dove tutti gli script testati funzionano) se sostituisco il libphp5.so mi da il problema delle pagine bianche (non tutte, soltanto alcune). quindi il problema è sicuramente di quel file, tutto sta capire perchè...
mi sta facendo impazzire!