Images missing on Linux after Database upgrade

I have recently upgraed my Elgg site to 1.7.3 from 1.6.1. While it works perfectly on my WAMP server, images on my site go missing wheneve I upload it on my linux server. That includes profile photos as well as Tidypics. I have also tried runnin the upgrade.php on linux CentOS itself but the result was identical.

I have another Elgg site located at the root diretory of that very server and works perfectly. And the new site is located on /test3/ directory.

 

Could anyone please advise me what is going wrong with me?

  • Just a hunch, you might have a totally different issue, but still worth a shot:

    Try to run the following sql queries on your database:

    select * from elggdatalists where name = "dataroot";

    select distinct s1.string from elggmetastrings s1 join elggmetadata m on (s1.id = m.value_id) join elggmetastrings s2 on (s2.id = m.name_id and s2.string ="filestore::dir_root");

    The results of both queries should hold the path (with a trailing slash) of your data directory. I.e. something like "/var/www/your-elgg-site/data/". If any of those entries point to the wrong location, you'll have no images (or any uploaded files) on your site.

  • Dear Andras, thank you for your help.

    I have already changed the elggdatalists and sitesentities with the trailing slash. But, it doesn't work.

    select distinct s1.string from elggmetastrings s1 join elggmetadata m on (s1.id = m.value_id) join elggmetastrings s2 on (s2.id = m.name_id and s2.string ="filestore::dir_root");

    I didn't get this. Could you please explain a bit what exactly you mean by this? I don't know MySQL well. :p

  • Ok nevermind, I got it! :) Thanks anyway, people!

  • Hi Shouvik ,

    i have the same issues can you please let me know how to fix it.

    thanks in advance.

     

  • On the table elggmetastrings, find the row where the string is filestore::dir_root

    The table below should contain the path of your data directory and viola!

     

    That worked for me, by the way.