@lucanos opened this issue on April 28th 2008

Installed v0.1.5 on SunFire V240 running Solaris 10, Apache v2.2.6, MySQL v5.0.45 (Standard) & PHP v5.2.4 .

Initial visit returns message:

Piwik couldn't write to some directories.

Try to Execute the following commands on your Linux server:
chmod 777 /var/www/html/tools/piwik/config

If this doesn't work, you can try to create the directories with your FTP ...

Directory Listing within /var/www/html/tools/piwik/:

minerva:/var/www/html/tools/piwik# ls -lash
total 52
   2 drwxr-sr-x  10 root     root         512 Apr 23 14:02 .
   2 drwxr-xr-x   5 501      webservd     512 Apr 28 08:26 ..
   2 drwxr-sr-x   2 501      webservd     512 Apr 23 14:01 config
   4 -rwxr-xr-x   1 501      webservd    1.5K Apr  2 07:05 index.php
   2 drwxr-sr-x   2 501      webservd     512 Apr 23 14:01 lang
   2 drwxr-sr-x  12 501      webservd     512 Apr 23 14:02 libs
   2 -rw-r--r--   1 501      webservd      42 Mar 15 08:55 LICENSE
   2 drwxr-sr-x   5 501      webservd    1.0K Apr 23 14:01 misc
   2 drwxr-sr-x  13 501      webservd    1.0K Apr 23 14:01 modules
  14 -rw-r--r--   1 501      webservd    6.9K Mar 28 23:42 piwik.js
   6 -rw-r--r--   1 501      webservd    2.1K Apr 11 23:38 piwik.php
   2 drwxr-sr-x  23 501      webservd     512 Apr 23 14:01 plugins
   4 -rw-r--r--   1 501      webservd    1.2K Jan 14 15:40 README
   2 drwxr-sr-x   4 501      webservd     512 Apr 23 14:01 tests
   2 drwxr-sr-x   3 501      webservd     512 Apr 23 14:01 themes
   2 -rw-r--r--   1 501      webservd     806 Mar 28 12:12 TODO

Executed CHMOD as per instructions:

...
   2 drwxrwsrwx   2 501      webservd     512 Apr 23 14:01 config
...

Refreshed webpage:

Piwik couldn't write to some directories.

Try to Execute the following commands on your Linux server:

If this doesn't work, you can try to create the directories with your FTP ...

(NOTE: Line which detailed suggested CHMOD command now absent. All other details identical.)

I have also retested after removing the "Sticky" permission from the Group set, but with same results.

Keywords: install chmod config

@anonymous-piwik-user commented on May 1st 2008

Had the exact same issue. I think the problem was, that the piwik-directory itself had not the necessary rights.

try chmod 777 /var/www/html/tools/piwik

@anonymous-piwik-user commented on May 6th 2008

I am getting the same message after installing on Windows Server 2003 R2 with Apache 2.2 and PHP 5.2.5. There are NO directories displayed whose protection should be modified!

is there a list of directories and files which piwik is trying to create/read/update/delet?

@lucanos commented on May 8th 2008

Alright, having taken "freedimension"s advice, and chmodding the whole Piwik directory to 777 - NOT RECOMMENDED IN THE WILD, I now have a list of folders which Piwik wants to write to.

So, the folder list is:

/var/www/html/tools/piwik/config
/var/www/html/tools/piwik/tmp
/var/www/html/tools/piwik/tmp/templates_c
/var/www/html/tools/piwik/tmp/cache

And therefore the amended Unix CHMOD commands should be:

chmod 777 config
chmod -R 777 tmp

When both commands are run from within the PIWIK directory.

The installation script still needs to be fixed so that these commands are appropriately displayed to installing users.

@mattab commented on May 8th 2008

(In [467]) - fix #5622 it seems this fix does the trick or suggesting the right directories at installation. Please apply the diff and report any problem.

@anonymous-piwik-user commented on September 22nd 2008

I've still have this problem.

I've made some search about why it doesn't work. Here it is.

Piwik doesn't have the right to create directories inside it's installation dir. So Piwik::mkdir (in modules/Piwik.php:101) doesn't create any directory. Then, line 104,

$directory = realpath($directoryToCheck);

realpath return false since the directory doesn't exists, as the PHP doc say: realpath() returns FALSE on failure, e.g. if the file does not exist.

$directory``` is now false. So when trying to set true or false in the $resultCheck array, thing like

$resultCheck[$directory] = false;

is just doing something like

$resultCheck[0] = false;

@mattab commented on October 8th 2008

Thanks for your investigation! that's very helpful :) Check bug fix in [634]

This issue was closed on July 30th 2009
Powered by GitHub Issue Mirror