• If you are still using CentOS 7.9, it's time to convert to Alma 8 with the free centos2alma tool by Plesk or Plesk Migrator. Please let us know your experiences or concerns in this thread:
    CentOS2Alma discussion

sqlite again

B

bartje3

Guest
Hi,

Since a few moths I've tried frequently to upgrade PHP, but every time I do that, the modules data cannot be updated with publishing.
Then I compiled (also a few times) Sqlite2 with UTF-8 as described in many threads and also in KB: http://kb.odin.com/en/5460.
Also the websites which were made by sitebuilder are shown a server error 500. The server error.log showing nothing, but the error logs from these domains show:

PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 142401972731904 bytes) in /var/www/vhosts/mydomain.com/httpdocs/include/SB/Modules/Storage/Db/Adapter/Sqlite.php on line 765

Sitebuilder check.php shows everything GREEN, SQLITE2 = OK, UTF-8 SUPPORT= OK ...

But again and again I'll have to downgrade PHP to 5.1.6, my customers are complaining why we can't upgrade PHP to 5.2.x
After every hotfix, SB upgrade I've tried it again, without any success.
So please, could you give me a DATE when SB will support SQLITE3 ?

system Centos5_x64 / Plesk newest / PHP 5.2.6-1 / Mod_security = disabled

Regards,

Bart
 
> PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 142401972731904 bytes) in /var/www/vhosts/mydomain.com/httpdocs/include/SB/Modules/Storage/Db/Adapter/Sqlite.php on line 765

The error above is caused by lack of PHP memory but not inappropriate SQLite configuration. Try increasing memory_limit in Sitebuilder PHP configuration files.

/path/to/php.ini
===>%===
memory_limit = 1024M
===%<===

Use sb_config to get location of Sitebuilder PHP configuration files.

~# sb_config --help | grep php
--phpcli_path PHP CLI executable [/opt/php52/bin/php5]
--phpcgi_path PHP CGI executable [/opt/php52/cgi-bin/php5]
~#

For RedHat-like systems:

~# find /opt/php52 -name 'php.ini'
/opt/php52/etc/php.ini
~#

and /usr/local/sitebuilder/etc/php.ini

For Debian:

~# find /opt/php52 -name 'php.ini'
/opt/php52/etc/php5/cli/php.ini
/opt/php52/etc/php5/cgi/php.ini
~#

and /opt/sitebuilder/etc/php.ini.

Support if SQLite3 is not planed to be implemented in Sitebuilder in the nearest future.
 
Hi,

Orginal from /opt/php52/etc/php.ini:

memory_limit = 128M ; Maximum amount of memory a script may consume (16MB)

but the error shows that the memory limit of the users webspace was used (32M from main php installation).

my path config in /usr/local/sitebuilder/config:

phpcgi_path = /opt/php52/cgi-bin/php5
phpcli_path = /opt/php52/bin/php5

If you meant to set the mem limit in /etc/php.ini to 1GB, I won't do that ! But the error shows that the script asks for 140 Terrabyte.

Regards,
Bart
 
The notification does not indicate exact memory required, just try increasing memory_limit at least twice in /opt/php52/etc/php.ini and /usr/local/sitebuilder/etc/php.ini.
 
Thanks,

but it stays the same:

[Tue Jul 29 03:43:04 2008] [error] [client 85.25.145.75] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 142401972731904 bytes) in /var/www/vhosts/mydomain.com/httpdocs/include/SB/Modules/Storage/Db/Adapter/Sqlite.php on line 765

I also tried set the mem_limit in both ini to 1024MB (opt/php52/etc and /usr/local/sitebuilder/etc/) and even increased it in /etc/php.ini (for a test). Restarted httpd.
The apache error log doesn't show any problem, except te error log of the website, like above.
In Sitebuilder I have the error: cannot update modules date

php5.2.6-1 with sqlite2 (utf8) compiled.

Regards,
Bart
 
One of possible reasons of errors with Sqlite.php is empty or not consistent SQLite database. It stores configuration of site's modules, is located in directory /data/storage on the publishing location and should have permissions 777.

Also it is useful to keep you server up-to-date, it may happen that there was an issue that was fixed in the latest Sitebuilder version.
 
No Sqlite.php has 644, like any other php in the dir /var/www/vhosts/domain.com/httpdocs/include/SB/Modules/Storage/Db/Adapter

I have updated SB tot the latest revision, I thought it would correct some issues or wrong permissions.

I have downgraded again to PHP 5.1.6, everything's working normal again.

I guess it is something stupid that can be wrong, something I haven't thought about or overseen. What if the issue is something related to ioncube or installed zend ? For me it seems like a "translation" error (remember the 140TB space request).
PHP 5.2.6 is OK and everything else works on the server.
Sqlite2 works, test connection shows OK

Other errors I get after the php upgrade or with different sites publishing are:
[Tue Jul 29 03:39:02 2008] [alert] [client 85.25.145.75] /var/www/vhosts/domain.com/httpdocs/.htaccess: php_value not allowed here
[Tue Jul 29 03:09:52 2008] [error] [client 81.82.201.73] PHP Fatal error: Class base_modules_session: Cannot inherit from undefined class http_session in /var/www/vhosts/domain.com/httpdocs/include/Base/Modules/Session.php on line 17

This because SB adds an .htaccess to the dir. When I disable the file, the errors are gone, except the one with the requested TB.

Thanks for your help anyway,

Bart
 
Information related to SQLite memory issue with publication on x86_64 platform with PHP 5.2 installed on the server. During investigation it was figured out that this is actually SQLite issue and one of similar case was resolved by compiling sqlite.so extension for PHP from the source files. To get it work SQLite library 2.8.17 version required. Source files for this version can be found here, for example, http://cvs.php.net/viewvc.cgi/pecl/sqlite/?pathrev=PHP_5_2
 
Hello, I can't compile the CVS version.

I'm receiving several error messages:

/downloads/sqlite/sqlite.c:654: warning: initialization discards qualifiers from pointer target type
/downloads/sqlite/sqlite.c:659: warning: initialization discards qualifiers from pointer target type
/downloads/sqlite/sqlite.c: In function 'php_sqlite_generic_function_callback':
/downloads/sqlite/sqlite.c:828: warning: passing argument 2 of 'zend_make_callable' from incompatible pointer type
/downloads/sqlite/sqlite.c:843: error: 'utf8_conv' undeclared (first use in this function)
....

Dmitry, don't you have the binary file?
 
Hello Dmitry,

The compiled sqlite.so worked just fine, thank you!

I have tried to compile the CVS version according to instructions provided in that KB, but it didn't work.
There was several error messages.
I have managed to compile the previous versions, but not the CVS one.
I also have tried to compile other CVS versions, but with the same problem.

Thank you again!
Alexandre

Error messages:

[root@linux1 SQLite-1.0.3]# make
/bin/sh /downloads/SQLite-1.0.3/libtool --mode=compile gcc -I/downloads/SQLite-1.0.3/libsqlite/src -I./libsqlite/src -I/usr/include/php/ext -I. -I/downloads/SQLite-1.0.3 -DPHP_ATOM_INC -I/downloads/SQLite-1.0.3/include -I/downloads/SQLite-1.0.3/main -I/downloads/SQLite-1.0.3 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /downloads/SQLite-1.0.3/sqlite.c -o sqlite.lo
gcc -I/downloads/SQLite-1.0.3/libsqlite/src -I./libsqlite/src -I/usr/include/php/ext -I. -I/downloads/SQLite-1.0.3 -DPHP_ATOM_INC -I/downloads/SQLite-1.0.3/include -I/downloads/SQLite-1.0.3/main -I/downloads/SQLite-1.0.3 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /downloads/SQLite-1.0.3/sqlite.c -fPIC -DPIC -o .libs/sqlite.o
/downloads/SQLite-1.0.3/sqlite.c:658: warning: initialization discards qualifiers from pointer target type
/downloads/SQLite-1.0.3/sqlite.c:663: warning: initialization discards qualifiers from pointer target type
/downloads/SQLite-1.0.3/sqlite.c: In function 'php_sqlite_generic_function_callback':
/downloads/SQLite-1.0.3/sqlite.c:832: warning: passing argument 2 of 'zend_make_callable' from incompatible pointer type
...
make: *** [sqlite.lo] Error 1

Ps: don't mind the directory name, the version inside it was the CVS one.
 
Back
Top