Ver 1.8.0 Alpha install error

I installed version 1.8.0 alpha with WAMP server on window (I put the project on the sub folder of server root: e:\wamp\www\sdata). For the first step of installation, look like the css, js, … and the other theme resource didn’t load properly. By trace the source code, I figured out this problem came from the uri function in helper/theme.php. It returned the wrong URL of resources.

public static function uri($uri, $local = false)
{
$rootUri = ($local) ? ‘’ : Slim::getInstance()->rootUri;

    // Serve the appropriate theme file
    if (is_dir(PROJECT_ROOT . '/web/theme/' . self::getInstance()->name . '/' . $uri)) {
        return $rootUri . 'theme/' . self::getInstance()->name . '/' . $uri;
    }
    else if (file_exists(PROJECT_ROOT . '/web/theme/' . self::getInstance()->name . '/' . $uri)) {
        return $rootUri . 'theme/' . self::getInstance()->name . '/' . $uri;
    }
    else {
        return $rootUri . 'theme/default/' . $uri;
    }
}

If I change the return to …/theme/ instead of theme/ so It works but this change may effect to other functions. Hope you can check it.

I am also getting this error when trying to install with WAMP on Win8.1. But this was only after commenting out line 29 of web/index.php and line 31 of web/install/index.php:

require PROJECT_ROOT . '/vendor/autoload.php';

As that does not seem to exist. (Maybe something misconfigured? )

Where should we be posting this problem?

Once I read between the lines a bit, I was able to figure out I was missing something.

How I solved it was:
Make sure I had a Github.com account.
Open a terminal/command prompt window.
Change directories to the directory just above “web”.
Entered in “php -r “readfile(‘https://getcomposer.org/installer’);” | php”, to download composer.phar
Then entered the command “php composer.phar install”, to install what was missing. At some point it told me that to go over a certain transfer rate I needed to enter my Github login.

After this I then went back to the “web” folder of my Xibo 1.8 Alpha, and all was good…

Till I got this:

Fatal error: Call to undefined function __() in C:\wamp\www\xibo18alpha\web\settings.php on line 11

Line 11:

defined('XIBO') or die(__("Sorry, you are not allowed to directly access this page.") . "<br />" . __("Please press the back button in your browser."));

URL at top reads: http://localhost/xibo18alpha/web/install/4 when this hapens

Install Log:
[2015-09-12 21:57:45] INSTALL.INFO: Installer Step 1 [] {“uid”:“486f127”,“method”:“GET”,“route”:"/(:step)"}
[2015-09-12 21:57:48] INSTALL.INFO: Installer Step 2 [] {“uid”:“99da0f7”,“method”:“GET”,“route”:"/(:step)"}
[2015-09-12 21:58:03] INSTALL.INFO: Installer Step 3 [] {“uid”:“7852bcd”,“method”:“POST”,“route”:"/(:step)"}
[2015-09-12 21:58:03] INSTALL.INFO: Setting unlimited max execution time. [] {“uid”:“7852bcd”,“method”:“POST”,“route”:"/(:step)"}

Note: I had to copy the “Themes” folder from the “Web” folder to the “web/Install” folder to get everything to show up correctly.

I fixed the theme error during install by modify the uri function in theme.php as below:

public static function uri($uri, $local = false)
{
    $rootUri = ($local) ? '' : Slim::getInstance()->rootUri;

// Bioz
if($local == false && $rootUri == ‘’)
{
$rootUri = ‘…/’;
}
// ~Bioz

    // Serve the appropriate theme file
    if (is_dir(PROJECT_ROOT . '/web/theme/' . self::getInstance()->name . '/' . $uri)) {
        return $rootUri . 'theme/' . self::getInstance()->name . '/' . $uri;
    }
    else if (file_exists(PROJECT_ROOT . '/web/theme/' . self::getInstance()->name . '/' . $uri)) {
        return $rootUri . 'theme/' . self::getInstance()->name . '/' . $uri;
    }
    else {
        return $rootUri . 'theme/default/' . $uri;
    }
}

Please look the // Bioz … // ~Bioz for modification.

But after install finished, I cannot login by using my admin account which I supplied during install. It is very strange. I am debugging it.

I removed

 or die(__("Sorry, you are not allowed to directly access this page.") . "<br />" . __("Please press the back button in your browser."))

from line 11 and was able to proceed a bit to the point of bring up the login page. The install log shows:

[2015-09-12 22:08:38] INSTALL.INFO: Installation Complete. Redirecting to /xibo18alpha/web/login [] {"uid":"d3caa78","method":"POST","route":"/(:step)"}

But I get this error:

Fatal error: Class ‘Xibo\Helper\Config’ not found in C:\wamp\www\xibo18alpha\web\index.php on line 42

bioz,

I tried your suggested change and got the same result as mine. :neutral_face:

But I am glad that someone else is also working on a solution.

I guess the problem of login come from the password encode, I am now checking it. It is pity that I am not familiar with these frameworks so now I start to study them, it take a little time. I think I understand v1.74 much more than this one :). It is happy to know, we are not alone, thank you.

dear cslaughter,

I have found out the bug and fixed. The reason of login error stay in the function:
public static function query($sortOrder = array(), $filterBy = array())
which stay in Userfactory.php

This function will run the query as below when you do the login:

SELECT user.userId,
userName,
userTypeId,
loggedIn,
email,
user.homePageId,
pages.title AS homePage,
lastAccessed,
newUserWizard,
retired,
CSPRNG,
UserPassword AS password,
group.groupId,
group.group,
IFNULL(group.libraryQuota, 0) AS libraryQuota
FROM user
INNER JOIN lkusergroup
ON lkusergroup.userId = user.userId
INNER JOIN group
ON group.groupId = lkusergroup.groupId
AND isUserSpecific = 1
INNER JOIN pages
ON pages.pageId = user.homePageId
WHERE 1 = 1
AND user.userName = :userName ORDER BY userName

The result is always empty since the condition pages.pageId = user.homePageId cannot be satisfied. During install, when we add the admin user, a default information of this one was set in data.sql. So I have 2 solutions for you:

  • you can manually change the homePageId of admin user in user table to 29.
  • or you can change the line

(1, 1, ‘xibo_admin’, ‘21232f297a57a5a743894a0e4a801fc3’, 1, NOW(), ‘’, 42, 0);

in data.sql to

(1, 1, ‘xibo_admin’, ‘21232f297a57a5a743894a0e4a801fc3’, 1, NOW(), ‘’, 29, 0);

Page ID 42 is not available.

Hope this explanation will help you.

1 Like

@bioz,

You are fantastic! I had to login 3 times, but it worked! Man 2 days of trying to track this down. How in the world did you figure that out? Also do you know why this seems to fix the problem of not finding the Xibo\Helper paths?

@Dan, I would be curious to know if you have any input on this? I know you are super busy and that the 1.8 Alpha is not really supported. But as we all try to learn about the new changes in 1.8, I for one was completely stumped by this problem.

actually, reading to understand this system took my almost time. Fixing the bug is not such difficult. To cover all of this system to make sure what we modify didn’t effect to the other is more important to me.

@Dan, I wonder about how to contribute more to your project, I am interested in this and surely as a developer I am not happy to just use and not do something back.

1 Like

I’ve just finished reading both of these threads and i’m really happy people are willing to try the development work we’ve done so far in 1.8.

There are a few things going on that will need to be tested on different platforms (I have them working on mine and Peters platform at the moment)… the key bit to getting the theme applied correctly is the mod_rewrite is enabled and working from the provided .htaccess files and/or that you manually type in index.php. The intention is that mod_rewrite will be a requirement.

Regarding the SQL - i’ve changed that in my data.sql although I will also change the UserFactory to LEFT OUTER JOIN pages as a precaution.

Regarding development - i’d be more than happy to accept contributions - we’d even be happy to put forward some funding for getting some development work done (we are particularly needing in front-end dev). We had hoped that 1.8 would move the code into a format most developers would understand (with a little documentation to come). If you’d like to explore this in more detail please PM me.

Dan,

I have the rewrite_module in WAMP for apache enabled and also have it enabled in the htacess file. I used the full URL path to the install index.php file. I still do not see the theme.

RewriteEngine On
RewriteBase /xibo18alpha/web/

# requests for api authorize
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^.*/authorize/.*$
RewriteRule ^ api/authorize/index.php [QSA,L]

# requests that start with api go down to api/index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^.*/api/.*$
RewriteRule ^ api/index.php [QSA,L]

# install
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^.*/install/.*$
RewriteRule ^ install/index.php [QSA,L]

# maintenance
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^.*/maint/.*$
RewriteRule ^ maint/index.php [QSA,L]

# vendor
RewriteCond %{REQUEST_URI} ^.*/vendor/.*$
RewriteRule ^ ../vendor/ [QSA,L]

# all others - i.e. web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

Am I missing/not understanding something? It seems to me that the problem I keep running into is that Xibo\Helper is not always defined when it should be. I ran into a couple of errors here and there that seems to point to the same thing I just didn’t want to overwhelm the site with them incase I just have something misconfigure.

You are correct - it doesn’t know where it needs to be - there are various entry points and url rewriting which means that means it is tricky to get a relative URL.

There are only so many configurations, so we will nail it eventually.

It looks to me from your URL that you have the entire folder in a web serviceable location which really isn’t a good idea. From that I am assuming you have:

htdocs which points to localhost, and everything after is folders (i.e. no VirtualHost, no alias, etc) ?

I’ll get an environment running with that exact same configuration and see what I can see.

Dan,

Yes I currently do have the entire folder thrown into a web accessible location. That was to cut out using aliases for now. In a production environment, obviously we would not do such.

Would this problem also explain our problem of not seeing the theme during installation?

Thank you for the reply.

Side Note: When did the Dev Category show up? I don’t remember seeing it before.

Its possible :smiley: i’ve only tested the “supported” installations at the moment, although I do intend to test every possibility.

I’ll give it a try when I can and see if I can work out what the issue is

I added the dev category yesterday as I felt there was a need for it now - great that more people are trying to cutting edge and experimenting more with Xibo code!

The installer theme has been fixed in the latest commit :smile:

2 Likes

I think it works now. I suggest another change for database create in helper/install.php.

Modify the Line 101 as below:

// Bioz
//$dbh->exec(sprintf('CREATE DATABASE %s', $this->new_db_name));
$dbh->exec(sprintf(‘CREATE DATABASE %s CHARACTER SET utf8 COLLATE utf8_general_ci’, $this->new_db_name));
// ~Bioz

I just want to make sure the database was created at install support the asian language well.

Thanks

That looks sensible - i’ve included that now.

I think all the table creates have the character set included, but at least this should catch those that don’t

Thanks!

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.