Trouble with step 3 of mysource matrix install


#6

Thanks Bart and mfong for your replies. On Bart’s suggestion I tried to install Squiz 5.3 on a more compatible system. The closest I found to RHEL that was supported on my cloud server was CentOS, but the end results was nonetheless same.

Installing core .. +---------------------------------------------+
| Matrix Warning                              |
|---------------------------------------------|
| Asset #12 does not exist [SYS0087]          |
+---------------------------------------------+
+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| PHP Error                                                                                                                                                    |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Argument 1 passed to MySource::setCurrentUser() must be an instance of User, null given, called in [SYSTEM_ROOT]/install/install.inc on line 585 and defined |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------+

So here is the new configuration I tried.

Server : CentOS 6.8
Squiz: 5.3
Postgre: 9.4
PHP: 5.6.28 (cli)
Apache: 2.2.15 (prefork module)

Output of php install/check_requirements.php pwd

[root@centos-1gb-sgp1-01 matrix]# php install/check_requirements.php /var/www/html/matrix
The following requirements or suggestions are made:

These php extensions are suggested by the core package
--------------------
        oci8 - you only need to install this module if you are going to use an Oracle database.
        pdo_dblib - you only need to install this module if DB datasource asset will connect to MS SQL Server
        pdo_mysql - you only need to install this module if DB datasource asset will connect to mysql DB
        redis - you only need to install this module if you plan on using redis for caching.

These pecl packages are suggested by the web_services/rest package
--------------------
        v8js - you only need to install this module if Rest Resource JS asset is used and V8 JS engine selected.

These external programs are required by the funnelback package
--------------------
        padre-iw - Missing funnelback binaries

These external programs are required by the squiz_suite package
--------------------
        padre-iw - Missing funnelback binaries

These external programs are required by the squid package
--------------------
        squidclient

These external programs are suggested by the web_services/rest package
--------------------
        js - This is used by Page REST Resource JS Asset to perform JS operations on the Response Body. Will use SpiderMonkey or Rhino Package.

These external programs are suggested by the core package
--------------------
        clamscan - check file uploads for viruses before they are saved to your system.
        closure-compiler - Google Closure Compiler, used for minifying the contents of JS File Folder assets.
        exiftool - this is used to extract image metadata from jpeg and other image types.
        fpscan - check file uploads for viruses before they are saved to your system. Please note that f-prot is a commercial product.
        java - used for running of Apache Tika (for text extraction) and Google Closure Compiler (for JS File Folder minification).
        tidy - this is used to check html content meets XHTML standards.
        tika-app - Apache Tika, used for extracting searchable text from certain File assets, including PDF Files and MS Word Documents. Deprecates both Antiword AND pdftohtml.

These external php scripts are suggested by the core package
--------------------
        getid3.php - used to extract metadata from mp3 and other music files. This is provided by http://www.getid3.org/. (only the php include_path was checked, if it is not in one of those paths the file has not been found)
        markdown.php - allows users to use a simplified mark up language instead of needing to know HTML. This is provided by http://michelf.com/projects/php-markdown/. (only the php include_path was checked, if it is not in one of those paths the file has not been found)
        markdownify.php - allows users to use a simplified mark up language instead of needing to know HTML. This is provided by http://sourceforge.net/projects/markdownify/. (only the php include_path was checked, if it is not in one of those paths the file has not been found)
        ogg.class.php - provides OGG Metadata extraction for Video File assets. This is provided by http://opensource.grisambre.net/ogg/. (only the php include_path was checked, if it is not in one of those paths the file has not been found)

mfong, here is the dump of /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#	enforcing - SELinux security policy is enforced.
#	permissive - SELinux prints warnings instead of enforcing.
#	disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
#	targeted - Only targeted network daemons are protected.
#	strict - Full SELinux protection.
SELINUXTYPE=targeted

#7

Can anyone please reply ? I see lots of posts from people facing the same error, yet hardly any answers …!


(Marcus Fong) #8

It’s true that it’s one of the most common installation errors (if not the most common), but it can happen for many different reasons.

Essentially, what “Asset #12 does not exist” means is that the install process didn’t finish creating all of the Matrix system assets because of some kind of problem (#12 is the Matrix root user on a newly installed system). The real question is what specific problem caused the error.

The SELinux and check_requirements output you posted look fine to me. Assuming you followed the installation guide at https://matrix.squiz.net/resources/installation-guides/manual-installation-guide:

  • What did you add to data/private/conf/main.inc and data/private/conf/db.inc?
  • Are there any errors reported in data/private/logs/error.log?
  • What’s the output of “pear list”?
  • What RPMs did you install on CentOS before starting the Matrix installation?

#9

Thanks Fong, I deleted the last installation. I will try a new one shortly and document all the info you have requested. Quick question, I see you recommend these 2 OS

  • Red Hat Enterprise Linux 6
  • Scientific Linux 6

I am planning on using CentOS 7.2 next time, which is based on RHEL 7.2 core. Will it work or I’ll be just wasting time ?


(Marcus Fong) #10

We recommend RHEL 6 / SL 6 because that’s what we currently run on and test on. I don’t see any compelling reason you couldn’t get RHEL 7 or CentOS 7 to work, it’s more a question of how much effort it would need.

It would, however, be hard for us to help you if you had questions about it, or if you had further problems with the Matrix installation process while running CentOS 7.


#11

So here is my 4th failed attempt.

Same result as previous…

Configuration Used:

Server : CentOS 7.2
Squiz: 5.3
Postgre: 9.2
PHP: 5.4.16 (cli)
Apache: 2.4.6-45.el7.centos

@ mfong, Here are the answers to your questions

Q: What did you add to data/private/conf/main.inc and data/private/conf/db.inc?

data/private/conf/main.inc

I only changed these 3 values

define('SQ_CONF_SYSTEM_ROOT_URLS', 'www.XXXXX.com');
define('SQ_CONF_DEFAULT_EMAIL', 'root@XXXXX.com');
define('SQ_CONF_TECH_EMAIL', 'root@XXXXX.com');

I didn’t setup the email server. So the emails DOES NOT work. Not sure if this has caused the error.

data/private/conf/db.inc

<?php
$db_conf = array (
       'db' => array (
          'DSN' => 'pgsql:dbname=squiz_matrix',
          'user' => 'matrix',
          'password' => '',
          'type' => 'pgsql',
          ),
       'db2' => array (
          'DSN' => 'pgsql:dbname=squiz_matrix',
          'user' => 'matrix',
          'password' => '',
          'type' => 'pgsql',
          ),
       'db3' => array (
          'DSN' => 'pgsql:dbname=squiz_matrix',
          'user' => 'matrix_secondary',
          'password' => '',
          'type' => 'pgsql',
          ),
        'dbcache' => NULL,
        'dbsearch' => NULL,
        );

return $db_conf;

Are there any errors reported in data/private/logs/error.log?

Yes …

[2016-12-17 00:55:53][0:Matrix System][512:matrix warning][R] (/core/include/asset.inc:724) - Asset #12 does not exist [SYS0087]
[2016-12-17 00:55:53][0:Matrix System][4096:php error][R] (/core/include/mysource.inc:2591) - Argument 1 passed to MySource::setCurrentUser() must be an instance of User, null given, called in /install/install.inc on line 585 and defined

What’s the output of “pear list”?

[root@centos-1gb-sgp1-01 /]# pear list
    Installed packages, channel pear.php.net:
    =========================================
    Package                Version State
    Archive_Tar            1.3.11  stable
    Auth_SASL              1.0.6   stable
    Console_Getopt         1.3.1   stable
    HTTP_Client            1.2.1   stable
    HTTP_Request           1.4.4   stable
    I18N_UnicodeNormalizer 1.0.0   stable
    Image_Canvas           0.3.4   alpha
    Image_Color            1.0.4   stable
    Image_Graph            0.8.0   alpha
    MDB                    1.3.0   stable
    MDB2                   2.4.1   stable
    MDB2_Driver_pgsql      1.4.1   stable
    Mail                   1.3.0   stable
    Mail_Mime              1.10.0  stable
    Mail_Queue             1.2.7   stable
    Mail_mimeDecode        1.5.6   stable
    Math_BigInteger        1.0.3   stable
    Net_SMTP               1.7.2   stable
    Net_Socket             1.0.14  stable
    Net_URL                1.0.15  stable
    Numbers_Roman          1.0.2   stable
    Numbers_Words          0.16.4  beta
    PEAR                   1.9.4   stable
    Structures_Graph       1.0.4   stable
    Text_Diff              1.2.1   stable
    XML_HTMLSax            2.1.2   stable
    XML_Parser             1.3.7   stable
    XML_Util               1.2.1   stable

What RPMs did you install on CentOS before starting the Matrix installation?

I think none. I started off with a blank slate. My host is Digital Ocean. I used their 1 click install to install CentOS 7.2. Then the first thing I installed was Apache after doing a “sudo yum update”.

Not sure if this has any effect … but I received these warnings when installing pear packages …

WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-update pear.php.net" to update
WARNING: "pear/XML_Parser" is deprecated in favor of "pear/XML_Parser2"
WARNING: "pear/Text_Diff" is deprecated in favor of "channel://pear.horde.org/Horde_Text_Diff"
WARNING: "pear/HTTP_Client" is deprecated in favor of "pear/HTTP_Request2"
WARNING: "pear/HTTP_Request" is deprecated in favor of "pear/HTTP_Request2"
WARNING: "pear/Net_URL" is deprecated in favor of "pear/Net_URL2"
WARNING: "pear/Image_Color" is deprecated in favor of "pear/Image_Color2"
Unknown remote channel: pear.phpdb.org
WARNING: "pear/DB" is deprecated in favor of "pear/MDB2"
Unknown remote channel: pear.phpdb.org
WARNING: "pear/MDB" is deprecated in favor of "pear/MDB2"
WARNING: "pear/Auth_SASL" is deprecated in favor of "pear/Auth_SASL2"

Do I need to use the new pear packages? Though check_requirments script didn’t complained about Pear … !

Output of check_requirments.php

[root@centos-1gb-sgp1-01 matrix]# php install/check_requirements.php /var/www/html/matrix
The following requirements or suggestions are made:

These php extensions are suggested by the core package
--------------------
        memcache - you only need to install this module if you plan on using memcache for caching or locking.
        oci8 - you only need to install this module if you are going to use an Oracle database.
        pdo_dblib - you only need to install this module if DB datasource asset will connect to MS SQL Server
        pdo_mysql - you only need to install this module if DB datasource asset will connect to mysql DB
        redis - you only need to install this module if you plan on using redis for caching.

These pecl packages are suggested by the web_services/rest package
--------------------
        v8js - you only need to install this module if Rest Resource JS asset is used and V8 JS engine selected.

These external programs are required by the funnelback package
--------------------
        padre-iw - Missing funnelback binaries

These external programs are required by the squiz_suite package
--------------------
        padre-iw - Missing funnelback binaries

These external programs are required by the squid package
--------------------
        squidclient

These external programs are suggested by the web_services/rest package
--------------------
        js - This is used by Page REST Resource JS Asset to perform JS operations on the Response Body. Will use SpiderMonkey or Rhino Package.

These external programs are suggested by the core package
--------------------
        clamscan - check file uploads for viruses before they are saved to your system.
        closure-compiler - Google Closure Compiler, used for minifying the contents of JS File Folder assets.
        exiftool - this is used to extract image metadata from jpeg and other image types.
        fpscan - check file uploads for viruses before they are saved to your system. Please note that f-prot is a commercial product.
        java - used for running of Apache Tika (for text extraction) and Google Closure Compiler (for JS File Folder minification).
        tidy - this is used to check html content meets XHTML standards.
        tika-app - Apache Tika, used for extracting searchable text from certain File assets, including PDF Files and MS Word Documents. Deprecates both Antiword AND pdftohtml.

These external php scripts are suggested by the core package
--------------------
        getid3.php - used to extract metadata from mp3 and other music files. This is provided by http://www.getid3.org/. (only the php include_path was checked, if it is not in one of those paths the file has not been found)
        markdown.php - allows users to use a simplified mark up language instead of needing to know HTML. This is provided by http://michelf.com/projects/php-markdown/. (only the php include_path was checked, if it is not in one of those paths the file has not been found)
        markdownify.php - allows users to use a simplified mark up language instead of needing to know HTML. This is provided by http://sourceforge.net/projects/markdownify/. (only the php include_path was checked, if it is not in one of those paths the file has not been found)
        ogg.class.php - provides OGG Metadata extraction for Video File assets. This is provided by http://opensource.grisambre.net/ogg/. (only the php include_path was checked, if it is not in one of those paths the file has not been found)

Thanks


(Marcus Fong) #12

Hmm. Nothing looks particularly unusual there (although I don’t know what Digital Ocean’s 1-click install actually installs in terms of RPMs). The errors in the log are the same ones you posted earlier, symptoms rather than causes.

One further question that comes to mind… did you take the Matrix code from the downloadable VM at https://matrix.squiz.net/releases/vm? If so, in what way did you do it? Did you copy the entire /var/www/matrix directory over to your Digital Ocean system? If so, did you do anything else before attempting the Matrix installation process?


#13

Yes, I extracted the Matrix code from VM using FTP. And then uploaded the entire matrix folder over to Digital Ocean. As I said before I started the installation by installing Apache first, then PHP & Pear then Postgre and then ran check_requirments script and so on … Nowhere in the process in encountered any errors. Step1 was ok, Step2 was ok… It’s just in the Step3 I keep getting this nasty surprise … I will try again today … Not sure which OS to try with, Debian failed, Ubuntu failed, failed with CentOS twice. :frowning2:


(Marcus Fong) #14

You uploaded the entire Matrix directory?

That would probably explain it, then - if you uploaded the entire data directory from the VM’s already-installed copy of Matrix along with the code, Matrix will think it’s fully installed and expect everything to be completely set up. Which it isn’t, so when you run step_03 you’ll get those errors about missing system assets.

Is the installation process itself something you particularly want to get working, or is your end goal just to have a running Matrix instance? If it’s the latter, then I think it would be easier for you just to use the normal backup and restore process, which is described at:

https://matrix.squiz.net/manuals/server-administrator/chapters/backup-script

Then add your new domain name to SQ_CONF_SYSTEM_ROOT_URLS in main.inc, log into _admin with it and delete the existing content.


#15

ok, So I uploaded the “Matrix” folder which looks like this if you open it up …

If this is incorrect, then what exactly do I need to upload to successfully install matrix ? I will also try the script you mentioned.


#16

Hi Marcus, I tried this script https://matrix.squiz.net/manuals/server-administrator/chapters/backup-script

After having some issues with the dumpfile.dump file, I was able to complete the setup.

But when I tried to access the site, I got this ERROR …

Matrix Error
[ASSERT EXCEPTION] Asset “session_handler_default” is not installed on the system, unable to include its source file [SYS0320]

Then I saw this thread and ran the Step3 script again and I am back to square one …

Installing core … ±--------------------------------------------+

Matrix Warning
Asset #12 does not exist [SYS0087]

±--------------------------------------------+
±-------------------------------------------------------------------------------------------------------------------------------------------------------------+

PHP Error
Argument 1 passed to MySource::setCurrentUser() must be an instance of User, null given, called in [SYSTEM_ROOT]/install/install.inc on line 585 and defined

±-------------------------------------------------------------------------------------------------------------------------------------------------------------+


(Marcus Fong) #17

It still seems like something’s not right with the database after the restore. You followed the steps under “Restoring the File System” and “Restoring the Database”?

Also note that the .dump file will be in the data directory after you restore the file system, and will not actually be called dumpfile.dump - that’s just an example filename. The real filename would be made up of the PostgreSQL database name, the date and time with a “.dump” extension.


#18

Yes, the dumpfile name was different, I searched with .dump extension so I was able to find it. Anyway, never mind, I am doing a fresh install again. What specifically do I need to upload from that “Matrix” folder if not the whole folder ?


(Marcus Fong) #19

The issue is really with the “data” folder. To my knowledge, for a fresh install it should contain only the following subfolders, all empty:

private
private/Oven
private/QueryStore
private/asset_map
private/asset_types
private/assets
private/conf
private/db
private/events
private/logs
private/packages
private/system
public
public/asset_types
public/assets
public/system
public/temp
temp


#20

Thanks. Tried again with all the folders you mentioned… Brand new error this time …

[root@centos-1gb-sgp1-01 matrix]# php install/check_requirements.php /var/www/html/matrix
ERROR: Path provided doesn’t point to a Matrix installation’s System Root. Please provide correct path and try again.


(Marcus Fong) #21

That’s odd, there are only two possible reasons why check_requirements.php would throw that error.

Either /var/www/html/matrix doesn’t exist (which we know it does, because you’re already in it when running install/check_requirements.php) or /var/www/html/matrix/core/include/init.inc isn’t readable.


#22

That’s becuase there is no “core” folder. I only created the folders that you listed above. Is the “core” folder created by the install script or do I need t upload it as well ?


#23

I uploaded this file /var/www/html/matrix/core/include/init.inc as you mentioned above …

check-requirments script worked … and complained about the following file missing

File ‘/var/www/html/matrix/core/assets/requirements.xml’ doesn’t exist

Uploaded this file and same error again …

[root@centos-1gb-sgp1-01 matrix]# php install/step_01.php /home/websites/matrix
ERROR: Path provided doesn’t point to a Matrix installation’s System Root. Please provide correct path and try again.
Usage: php install/step_01.php <PATH_TO_MATRIX>


(Marcus Fong) #24

Sorry, Paul, I think there’s been a misunderstanding.

Upload all the Matrix directories as you did before with the exception of “data”. Then create the “data” directory with the subdirectories I listed above.


#25

Sweet … Success at last Fong … Really appreciate all your help … This was my 7th attempt, it was so frustating, but the good thing is that I have learned so many new Linux commands along the way :slight_smile:

Installing cms … Done.
Installing bulkmail … Done.
Installing trim … Done.
Installing news … Done.
Installing ecommerce … Done.
Installing ldap … Done.
Installing funnelback … Done.
Installing ipb … Done.
Installing saml … Done.
Installing web_services … Done.
Installing sugar … Done.
Installing data … Done.
Installing squiz_suite … Done.
Installing marketo … Done.
Installing sharepoint … Done.
Installing search … Done.
Installing google_analytics … Done.
Installing google_maps … Done.
Installing oauth2 … Done.
Installing calendar … Done.

Asset types have been cached.
JS Files have been minified successfully.

Step 3 completed successfully.

I will check the frontend later, but hope it should be ok …