Jump to content

PPI_Framework on 5.3


Recommended Posts

I have been asked to move a website from one host to another. The FTP went fine but when I tried to run it I got a blank page with no errors ( The host is hostpapa )


I tried running the site on a local Zend framework and it was fine.


Eventually after about 2 days of contacting their support department it turns out they are running on 5.3.6 whereas my local Zend server and the original site was 5.2


They have said the version of PPI_Framework on the site does not support 5.3.6 !!


I know nothing about ppi_framework and their google group site  does not tell me anything


anyone help with this ?



Link to post
Share on other sites

I'd never heard of it before either ( www.ppiframework.com  author Paul Dragoonis)


The original site ran under 5.2 fine. For testing purposes I loaded down the free Zend community edition which also runs under 5.2 and I was able to run it on that fine too but when I loaded it up to the new site I got a blank page. As I said the host provider said it was because they were using 5.3 and the version of pp_framework I was running would not work but that is as much as I know

Link to post
Share on other sites

The site was built before I got it. It is a combination of php, ppi_framework and Smarty of which the last 2 I know little about. The only reason I mention Zend is that I needed an enviroment where I could test the code I was given so I looked at XAmpp but chose Zend to run the site.. its not built on Zend

Link to post
Share on other sites

Right. Well, having never heard of PPI before I can only go on what there site says and that is that the framework is compatible with 5.2 and above. Having said that however there are many changes in 5.3 that could effect it.


I would start asking some questions on a PPI specific board.

Link to post
Share on other sites

Thanks for that.. I wasnt quite sure whether the support people really knew what they were talking about. Is there anything else I can do to try and trap probems that 5.3 might cause.. all I use at the moment is add the following to the index.php :-



/* initialize the framework */

ini_set('display_errors', true);

error_reporting(E_ALL + E_NOTICE);


I dont know of any ppi groups



Link to post
Share on other sites

Have a chat with the PPI developers, they hang out on IRC  (irc.freenode.net #ppi, web chat). 


For what it's worth, I run PPI on the latest PHP 5.3. Maybe there is some setup and/or configuration issue.

Link to post
Share on other sites
Salathe.. thanks for the link but I have not used IRC before so I dont know how to get in touch with the group.


You can use the web chat (http://webchat.freenode.net/), just enter your nick name (smallzoo is fine) and the channel (#ppi).


To get ppi running on 5.3 did you have to change anything in particular ?


Nope, not a sausage.


Link to post
Share on other sites

Ok take a look at my files.. spot something wrong ?




RewriteEngine on

Options +FollowSymLinks

RewriteCond %{REQUEST_URI} !css|scripts|images|install|photos|paypal|documents|blog

RewriteRule .* index.php







* @license http://opensource.org/licenses/gpl-license.php GNU Public License

* @copyright © Digiflex Development Team 2008

* @version 1.0

* @author Paul Dragoonis <paul@digiflex.org>

* @since Version 1.0

* @subpackage Framework




echo 'Current PHP version: ' . phpversion();


// this is to make it Smarty compliant



global $siteTypes;

$siteTypes = array('freelancer-market.com' => 'production','localhost:200' => 'development');



/* initialize the framework */

ini_set('display_errors', true);

error_reporting(E_ALL + E_NOTICE);







function listFiles( $from = '.')




    if(! is_dir($from))

        return false;


    $files = array();

    $dirs = array( $from);

    while( NULL !== ($dir = array_pop( $dirs)))


        if( $dh = opendir($dir))


            while( false !== ($file = readdir($dh)))


                if( $file == '.' || $file == '..')


                $path = $dir . '/' . $file;

                if( is_dir($path))

                    $dirs[] = $path;




                    unlink ($path);






    return $files;








require_once 'system' . DIRECTORY_SEPARATOR . 'base' . DIRECTORY_SEPARATOR . 'framework.php';








* @license http://opensource.org/licenses/gpl-license.php GNU Public License

* @copyright © Digiflex Development Team 2008

* @version 1.0

* @author Paul Dragoonis <dragoonis@php.net>

* @since Version 1.0



// ---- site wide -----

defined('ROOTPATH')          or define('ROOTPATH', getcwd().'/');

defined('SYSTEMPATH')        or define('SYSTEMPATH', ROOTPATH.'system'.'/');

defined('BASEPATH')          or define('BASEPATH', SYSTEMPATH.'base'.'/');

defined('APPFOLDER')        or define('APPFOLDER', ROOTPATH.'application'.'/');


// ---- core paths----

defined('CORECLASSPATH')    or define('CORECLASSPATH', BASEPATH.'classes'.'/');

defined('COREMODELPATH')    or define('COREMODELPATH', SYSTEMPATH.'models'.'/');

defined('CORECONTROLLERPATH')  or define('CORECONTROLLERPATH', SYSTEMPATH.'controllers'.'/');


// ---- plugin paths ----

defined('PLUGINPATH')        or define('PLUGINPATH',SYSTEMPATH.'plugins'.'/');


defined('PLUGINMODELPATH')  or define('PLUGINMODELPATH', PLUGINPATH.'models'.'/');


// ---- app paths ------


defined('APPSHAREDPATH')        or define('APPSHAREDPATH', APPFOLDER.'shared'.'/');

defined('CONTROLLERPATH')      or define('CONTROLLERPATH', APPFOLDER.'controllers'.'/');

defined('VIEWPATH')            or define('VIEWPATH',  APPFOLDER.'views'.'/');

defined('SMARTYPATH')          or define('SMARTYPATH', CORECLASSPATH.'smarty'.'/');

defined('EXT')              or define('EXT', '.php');

defined('SMARTY_EXT')          or define('SMARTY_EXT', '.tpl');

defined('MODELPATH')          or define('MODELPATH', APPFOLDER.'models'.'/');

defined('CONFIGPATH')        or define('CONFIGPATH', APPFOLDER.'config'.'/');



// ------- system constants -------

defined('PPI_VERSION')    or define('PPI_VERSION', '1.1');

defined('LOGPATH')        or define('LOGPATH', SYSTEMPATH.'logs/');


global $ppi_exception_thrown, $oDispatch, $oConfig, $siteTypes;

$ppi_exception_thrown = false;








. PATH_SEPARATOR . get_include_path());


include_once(CORECLASSPATH . 'PPI_Base.php');





$oConfig = PPI_Model_Config::getInstance()->getConfig();


PPI_Registry::getInstance()->set('config', $oConfig);



set_error_handler('ppi_error_handler', E_ALL);




if(version_compare(PHP_VERSION, '5.3.0', '<')) {

set_magic_quotes_runtime(0); // Kill magic quotes



** Load common functions


// ----------- CORE WRITABLE DIRECTORIES -----------

if(!is_writable(SMARTYPATH)) {

throw new PPI_Exception('Smarty Directory is not writable: '.SMARTYPATH);


if(!isset($siteTypes) || (is_array($siteTypes) && count($siteTypes) < 1)) {

die('Unable to find your site in the bootstrap file. Please add a site and its type to your index.php file.');


$sHostName = getHTTPHostname();


if(!isset($siteTypes[$sHostName])) {

die('Unable to find your site: '. $sHostName .' in index.php bootstrap site types');



// ------------ ERROR LEVEL CHECKING --------------

if($siteTypes[$sHostName] == 'development') {


ini_set('display_errors', 'On');

} else {


ini_set('display_errors', 'Off');



// ------------- Initialise the session -----------------

if(!headers_sent()) {

if(!isset($oConfig->system->sessionNamespace)) {

die('Required config value not found. system.sessionNamespace');

} else {






// ---------------- CHECK FOR MAINTENANCE MODE ------------------

if(isset($oConfig->system->maintenance) && $oConfig->system->maintenance) {






// Include the app common file so that its in global namespace before our controller is dispatched.

if(file_exists(APPSHAREDPATH . 'ApplicationCommon.php')) {

include_once(APPSHAREDPATH . 'ApplicationCommon.php');




// Locate the controller, load the controller/method, and dispatch it !

$oDispatch = PPI_Dispatch::getInstance();


// Install check if so we dispatch something else.


// Set the dispatch object in the registry for future use.

PPI_Registry::getInstance()->set('dispatch', $oDispatch);



Link to post
Share on other sites
  • 3 weeks later...

@smallzoo this is Paul Dragoonis from PPI.


PPI will run easily from PHP5.1.0 upwards depending on the software you're running.


You said you were running the site on Zend.. did you mean ZendServer? What about XAMPP or WAMP?


I recommend you check the log files for apache that will probably contain your issue.


If you're using smarty, after making sure there is no permission errors, try doing CHMOD -R 777 <smarty cache path>

I wouldn't recommend using that chmod value in production but just to see, as Smarty required extra permissions to work properly, to avoid this you may be able to disable smarty template caching.


What is the URL of the website you're deploying, I may know who developed it and could ask them for some advice if you still can't figure it out.


For the future, you can create an issue/discussion here on github: https://github.com/dragoonis/ppi-framework/issues/new


Good luck

Link to post
Share on other sites

Btw, you're running a very old version of PPI. If there is budget for it I recommend you guys tweaking your app to work with the latest and greatest version of PPI.


> What is the URL of the website you're deploying,

> I may know who developed it and could ask them for some advice if you still can't figure it out.

Forget this, i seen your URL in your index.php config.


In your index.php file you have: echo 'Current PHP version: ' . phpversion();

Did you leave this debug message in by accident? If not I suggest you take it out as it will prevent the framework from initialising..


Link to post
Share on other sites


This topic is now archived and is closed to further replies.

  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.