Ok I may understand your issue but it is still strange … Obviously, the plugin is not able to list the files in the /lang/ directory of the plugin…
Are you able to modify the rights on that folder to allow such listing ?
Normally, the mentioned line (ie. 998) should only be called when a admin or a logged user access an admin page …
You are really talking about millions entries ?
Thanks for your immediate response!
Yes, 3.3 million lines in the apache error.log generated in no time… (I used grep/wc -l to count).
I installed the plugin through the WP interface, so I would expect that the file rights are correct. I am root on the system, so I could check/modify knowing a bit better, what to try.
Could you give me the rights on the lang folder and what user is used to execute the php script (apache, etc.) ?
The user should have the right to read, write and execute on that folder to avoid any problem
I may have an idea regarding the number of entries … Is xx.yy.197.131 your IP address ?
I have a backup solution if you are not able to set the right correctly
Concering the permission:
ps -aef | grep apache
root 11472 1 0 15:28 ? 00:00:00 /usr/sbin/apache2 -k start
root 19676 11472 0 16:29 ? 00:00:00 /usr/sbin/apache2 -k start
Why are write permissions needed on the lang/ folder?
root@markus /var/lib/wordpress/wp-content/plugins/content-table # l lang/
total 100K
-rw-r–r– 1 www-data www-data 3.4K Dec 30 14:53 tableofcontent-de_DE.mo
-rw-r–r– 1 www-data www-data 4.1K Dec 30 14:53 tableofcontent-de_DE.po
-rw-r–r– 1 www-data www-data 2.9K Dec 30 14:53 tableofcontent-es_ES.mo
-rw-r–r– 1 www-data www-data 4.2K Dec 30 14:53 tableofcontent-es_ES.po
-rw-r–r– 1 www-data www-data 2.8K Dec 30 14:53 tableofcontent-es_MX.mo
-rw-r–r– 1 www-data www-data 4.1K Dec 30 14:53 tableofcontent-es_MX.po
-rw-r–r– 1 www-data www-data 2.6K Dec 30 14:53 tableofcontent-fi_FI.mo
-rw-r–r– 1 www-data www-data 3.9K Dec 30 14:53 tableofcontent-fi_FI.po
-rw-r–r– 1 www-data www-data 3.2K Dec 30 14:53 tableofcontent-fr_FR.mo
-rw-r–r– 1 www-data www-data 3.8K Dec 30 14:53 tableofcontent-fr_FR.po
-rw-r–r– 1 www-data www-data 3.8K Dec 30 14:53 tableofcontent-it_IT.mo
-rw-r–r– 1 www-data www-data 4.6K Dec 30 14:53 tableofcontent-it_IT.po
-rw-r–r– 1 www-data www-data 2.9K Dec 30 14:53 tableofcontent-nl_NL.mo
-rw-r–r– 1 www-data www-data 3.5K Dec 30 14:53 tableofcontent-nl_NL.po
-rw-r–r– 1 www-data www-data 4.1K Dec 30 14:53 tableofcontent.pot
-rw-r–r– 1 www-data www-data 1.1K Dec 30 14:53 tableofcontent-ro_RO.mo
-rw-r–r– 1 www-data www-data 1.8K Dec 30 14:53 tableofcontent-ro_RO.po
-rw-r–r– 1 www-data www-data 3.4K Dec 30 14:53 tableofcontent-ru_RU.mo
-rw-r–r– 1 www-data www-data 4.8K Dec 30 14:53 tableofcontent-ru_RU.po
Concerning the “error.log” entries:
– I install the plugin via WP, then activate,
– when going in “SL Plugins”, “Table of contents” the warning “pumping” starts:
head error.log
[Mon Dec 30 15:28:30 2013] [notice] Apache/2.2.22 (Debian) DAV/2 SVN/1.6.17 PHP/5.4.4-14+deb7u7 mod_ssl/2.2.22 OpenSSL/1.0.1e configured — resuming normal operations
[Mon Dec 30 17:36:58 2013] [error] [client xxx.62.11.251] PHP Warning: readdir() expects parameter 1 to be resource, boolean given in /var/lib/wordpress/wp-content/plugins/content-table/core/translation.class.php on line 998, referer: http://courses.neteler.org/wp-admin/plugins.php?activate=true&plugin_status=all&paged=1&s=
[Mon Dec 30 17:36:58 2013] [error] [client xxx.62.11.251] PHP Warning: readdir() expects parameter 1 to be resource, boolean given in /var/lib/wordpress/wp-content/plugins/content-table/core/translation.class.php on line 998, referer: http://courses.neteler.org/wp-admin/plugins.php?activate=true&plugin_status=all&paged=1&s=
[… cut …]
[Mon Dec 30 17:37:35 2013] [error] [client xxx.62.11.251] PHP Warning: readdir() expects parameter 1 to be resource, boolean given in /var/lib/wordpress/wp-content/plugins/content-table/core/translation.class.php on line 998, referer: http://courses.neteler.org/wp-admin/plugins.php?activate=true&plugin_status=all&paged=1&s=
–> in less than 1 minute I get almost 3 million errors:
grep ‘PHP Warning: readdir() expects parameter 1’ error.log | wc -l
2873977
… my server seems to be fairly fast 🙂 So, a loop somewhere?
The IP address is dynamic and the one from where I access right now.
It is not a loop but a “while” that normally does end … but not in this case : if the folder lang is not readable, the following line seems to be always true …
$dir = @opendir($path."/lang/");
while(false !== ($item = readdir($dir))) {
...
}
I will correct it in a next version… In the meanwhile, you have to set to the lang folder a x (execute rights) for the www-data users
The write in only optional if you decide to modify the translations
The current (yet unmodified) permissions are:
drwxr-xr-x 2 www-data www-data 4.0K Dec 30 17:36 lang
.. this does not suffice? (thanks again for your support)
I believe so … But you have to told me !
I will release a new version correcting this issue
Thanks a lot, looking forward to test it!
That will be corrected in the next version… which be release in minutes