Fatal Error on Concrete 5.6.1

Permalink
Hi everybody,

I'm trying to move a Concrete 5.6.1 site from localhost on a remote server subdomain for testing purposes. I did everything to the letter - dumped the database tables, copied the files, changed the permissions on required files/folders, imported the sql into the new database, changed database & user settings in config/site.php.

When I try to visit the site I get "Fatal error: Exception thrown without a stack frame in Unknown on line 0".

The server has all the prerequisites for running Concrete 5.6.1, I've done a fresh installation and everything works fine.

The server is running CPanel 11. What am I doing wrong?

rainmanx
 
goutnet replied on at Permalink Reply
Did you clear the file cache before moving to the next server ?

Did you check the configuration (database access and co) for the new server ?
rainmanx replied on at Permalink Reply
rainmanx
Yeap, cache was cleared, I also checked the /files/cache/ folder. Database access should not be an issue. Not sure what you mean by "and co". Also tried a fresh installation, everything worked fine until I imported the database.

Could this be a collation issue? I'm using utf8_general_ci.
goutnet replied on at Permalink Reply
the and co. meant "server settings, MySQL user/pass etc that might be different from your localhost to this server"

Are you sure it can access the database, *and is properly configured to do so on the right database not your localhost install but the real one* ?
rainmanx replied on at Permalink Reply
rainmanx
Database configuration was done properly in config/site.php, I've double checked database name/user/pass.
jbx replied on at Permalink Reply
jbx
Shouldn't be db related. You would get a pretty C5 'Can't connect to db. if the connection was an issue.

Do you have access to the server error logs? It seems we need more information on the Fatal Error. There may well be stuff in the logs that isn't displayed on screen.

Are you using the same C5 core? Is it possible you are using a different version of C5 locally and remotely?

Jon
rainmanx replied on at Permalink Reply
rainmanx
It's not db related, I messed up things in config/site.php and I got that pretty error thing you said.

Error logs are either completely empty, or state "Fatal error: Exception thrown without a stack frame in Unknown on line 0" without any other info than the time it occurred.

I did this:

- installed a brand new fresh C5 on remote server, set all caches to off, cleared them just in case, exported the database into an sql
- copied all files on my localhost
- imported the database on my localhost
- edited site.php accordingly

Result: It worked on localhost!

- exported the database without doing any edits to the site, and simply imported it on the remote server

Result: The same ugly error.

I am this close to throwing my laptop out the window.
exchangecore replied on at Permalink Reply
exchangecore
Are you importing / exporting to and from the same versions of MySQL or different? Also, have you verified that the database is the same size before and after to make sure it's not dropping off halfhway through an import or something strange like that?
JohntheFish replied on at Permalink Best Answer Reply
JohntheFish
Just a stab in the dark - did you need to convert database tables from windows lowercase to Linux CamelCase?
rainmanx replied on at Permalink Reply
rainmanx
Victory.

If you run MySQL service on a Windows machine, by default all table names are converted to lowercase, while on a Unix machine table names are case sensitive.

I finally noticed that on my localhost all table names were in lowercase letters, while on the remote server they were not. I set the lower_case_table_names variable to 2 on my Windows machine, reinstalled C5 and bingo, table names were no longer in lowercase. I imported the database on the remote server and it worked like a charm. My laptop is safe.

I don't see this as a C5 issue, but more like a platform compatibility issue. For all others that have the same problem, if you are like me, you're building your site on localhost and then upload and test it on the remote server. Just make sure of the following:

- Default DB engine and collation on remote server and localhost are the same. I'm using MyISAM because that's the default on the remote server, otherwise I'd prefer InnoDB.
- Table names letters have the same case on the remote server and your localhost.

If you run Windows and the server is Unix, edit your my.ini file and modify or add the following lines under the [mysqld] group and then restart your MySQL service:

default-storage-engine = MyISAM
lower_case_table_names = 2


You can set the default-storage-engine variable to whatever engine you prefer. You can find out more about the case sensitivity issue here:http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity....

Cheers,
George