517 Posts in 279 Topics by 221 members
| Go to End | Next > | |
| Author | Topic: | 2433 Views |
-
Host-Europe SSS 2.4.0 and sqlite fails

10 June 2010 at 10:09pm
Salut,
I just tried to install SS 2.4.0 with sqlite on host-europe and it fails when creating the database file.
In the initial check, it tries to write to /is/<account-subdir>/www/CMS/assets/DB successfully, but in the installation phase it fails on line 620 on the DB creation
Using .DB is not permitted at host-europe.
Using another location under the tree above (i.e. /is/<account-subdir>/DB) is not accepted by the install routine as well as any other subdirectory other than under /is/<account-subdir>/www/CMS/assets.
I have tried all with chmod 777 without success
Looks to me like an internal php code errorCiao, Mathias
PS: Switching to MySQL works, so it is an issue with the write access for the sqlite db file -
Re: Host-Europe SSS 2.4.0 and sqlite fails

11 June 2010 at 11:36am
Salut gaston,
if you can't move the db file out of reach for browsers and you are not allowed to use foldernames preceeded by dots you might want use a regular foldername and put an .htaccess file into it containing:
<code>
deny from all
</code>to protect your database file from unauthorised access. however read/write access to the location of the db file as well as to the file itself must be granted to the the webserver.
line 620 of Database.php is just the command to trigger the error. can you give me the whole backtrace that comes with the error?
Cheers
Andy
-
Re: Host-Europe SSS 2.4.0 and sqlite fails

12 June 2010 at 9:49pm
Salut Andy,
here the complete protocol of my actions. I removed site specific information anreplaced them with xxxx. This should not have an impact on the errorSilverStripe: 2.4.0
sqlite: sqlite3-trunk-r106099.tar.gz
sqlite renamed to sqlite only (removing the trunk information)
upload to host-europe into directory SStest using filezilla 3.3.2.1, transfertyp automatic
calling http://www.<domain>.de/SStest
chmod 777 .htaccess in SStest
chmod 777 assets
chmod 777 mysite/_config.php
selecting sqlite database
absolute path:
/is/htdocs/wpxxxxxxx_LAX2FF6GKA/www/SStest/assets/.db
mkdir .db
error message in install.php:
That username/password doesn't work: Cannot secure path through .htaccess: "/is/htdocs/wp1137769_LAX2FF6GKA/www/SStest/assets/.db"
copying silverstripe root .htaccess file into .db folder
chmod 777 assets/.db/.htaccess
chmod 777 assets/.db
install.php now free of error or warning
starting installation
-----------------------------
# Setting up 'mysite/_config.php'...
# Setting up /is/htdocs/wpxxxxxxx_LAX2FF6GKA/www/SStest/mysite/_config.php
# Setting up '.htaccess' file...
# Setting up /is/htdocs/wpxxxxxxx_LAX2FF6GKA/www/SStest/.htaccess
# Building database schema...
[User Error] Couldn't run query: PRAGMA integrity_check | unable to open a temporary database file for storing temporary tables
POST /SStest/install.phpLine 620 in /is/htdocs/wpxxxxxxx_LAX2FF6GKA/www/SStest/sapphire/core/model/Database.php
Trace* Couldn't run query: PRAGMA integrity_check | unable to open a temporary database file for storing temporary tables
Line 620 of Database.php
* SS_Database->databaseError(Couldn't run query: PRAGMA integrity_check | unable to open a temporary database file for storing temporary tables,256)
Line 88 of SQLitePDODatabase.php
* SQLitePDODatabase->query(PRAGMA integrity_check)
Line 362 of SQLite3Database.php
* SQLite3Database->checkAndRepairTable()
Line 279 of SQLite3Database.php
* SQLite3Database->beginSchemaUpdate()
Line 185 of DatabaseAdmin.php
* DatabaseAdmin->doBuild(1)
Line 1028 of install.php
* Installer->install(Array)
Line 193 of install.php==== phpinfo() output (extract, if you need details, let me know) =====
PHP Version 5.2.12
System Linux wp102 2.6.30.2-he-xeon-64gb+4 #1 SMP Sat Aug 15 15:25:21 CEST 2009 i686
Build Date Feb 9 2010 13:02:09
Server API Apache 2.0 Handler
Virtual Directory Support disabled
Configuration File (php.ini) Path /etc/php5
Loaded Configuration File /etc/php5/php.ini
Scan this dir for additional .ini files /etc/php5/conf.d
additional .ini files parsed /etc/php5/conf.d/extensions.ini, /etc/php5/conf.d/extensions_plus.ini, /etc/php5/conf.d/fopen.ini, /etc/php5/conf.d/ioncube.ini, /etc/php5/conf.d/limits.ini, /etc/php5/conf.d/mysql.ini, /etc/php5/conf.d/mysqli.ini, /etc/php5/conf.d/paths.ini, /etc/php5/conf.d/pdflib.ini, /etc/php5/conf.d/session.ini, /etc/php5/conf.d/suhosin.ini, /etc/php5/conf.d/uploads.ini, /etc/php5/conf.d/zend.ini
PHP API 20041225
PHP Extension 20060613
Zend Extension 220060519
Debug Build no
Thread Safety disabled
Zend Memory Manager enabled
IPv6 Support enabled
Registered PHP Streams https, ftps, compress.zlib, compress.bzip2, php, file, data, http, ftp, zip
Registered Stream Socket Transports tcp, udp, unix, udg, ssl, sslv3, sslv2, tls
Registered Stream Filters zlib.*, bzip2.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, convert.iconv.*Suhosin logo This server is protected with the Suhosin Patch 0.9.7
Copyright (c) 2006 Hardened-PHP Project
allow_call_time_pass_reference Off Off
allow_url_fopen On On
allow_url_include On On
always_populate_raw_post_data Off Off
arg_separator.input & &
arg_separator.output & &
asp_tags Off Off
auto_append_file no value no value
auto_globals_jit On On
auto_prepend_file no value no value
browscap no value no value
default_charset no value no value
default_mimetype text/html text/html
define_syslog_variables Off Off
disable_classes no value no value
disable_functions no value no value
display_errors On On
display_startup_errors Off Off
doc_root no value no value
docref_ext no value no value
docref_root no value no value
enable_dl Off Off
error_append_string no value no value
error_log no value no value
error_prepend_string no value no value
error_reporting 6135 6135
expose_php On On
extension_dir /usr/lib/apache2/modules/php5/ /usr/lib/apache2/modules/php5/
file_uploads On On
highlight.bg #FFFFFF #FFFFFF
highlight.comment #FF9900 #FF9900
highlight.default #0000BB #0000BB
highlight.html #000000 #000000
highlight.keyword #007700 #007700
highlight.string #DD0000 #DD0000
html_errors On On
ignore_repeated_errors Off Off
ignore_repeated_source Off Off
ignore_user_abort Off Off
implicit_flush Off Off
include_path .:/usr/share/pear/php5 .:/usr/share/pear/php5
log_errors Off Off
log_errors_max_len 1024 1024
magic_quotes_gpc Off Off
magic_quotes_runtime Off Off
magic_quotes_sybase Off Off
mail.force_extra_parameters no value no value
max_execution_time 30 30
max_file_uploads 20 20
max_input_nesting_level 64 64
max_input_time 60 60
memory_limit 128M 128M
open_basedir /is/htdocs/user_tmp/wp1137769_LAX2FF6GKA:/tmp:/dev/null:/dev/urandom:/bin:/usr:/is/default.errors:/is/htdocs/wp1137769_LAX2FF6GKA no value
output_buffering no value no value
output_handler no value no value
post_max_size 8M 8M
precision 14 14
realpath_cache_size 1M 1M
realpath_cache_ttl 300 300
register_argc_argv On On
register_globals Off Off
register_long_arrays Off Off
report_memleaks On On
report_zend_debug On On
safe_mode Off Off
safe_mode_exec_dir no value no value
safe_mode_gid Off Off
safe_mode_include_dir no value no value
sendmail_from no value no value
sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i
serialize_precision 100 100
short_open_tag On On
SMTP localhost localhost
smtp_port 25 25
sql.safe_mode Off Off
suhosin.log.phpscript.is_safe Off Off
track_errors Off Off
unserialize_callback_func no value no value
upload_max_filesize 8M 8M
upload_tmp_dir /is/htdocs/user_tmp/wp1137769_LAX2FF6GKA /tmp
user_dir no value no value
variables_order EGPCS EGPCS
xmlrpc_error_number 0 0
xmlrpc_errors Off Off
y2k_compliance On On
zend.ze1_compatibility_mode Off Off -
Re: Host-Europe SSS 2.4.0 and sqlite fails

14 June 2010 at 10:31am
Moin Mathias,
some sqlite versions attempt to create a temporary file to store data. What version are you using? The sqlite section of your phpinfo() is missing.
On the command line type "sqlite3" to enter sqlite cli, then try "PRAGMA temp_store;". If it is not set to 2 add the following to your mysite/_config.php
<code>
SQLite3Database::$default_pragma['temp_store'] = "MEMORY";
</code>I had to tweak the sqlite3/_config.php for this to work so you have to update your sqlite3 module. http://open.silverstripe.org/changeset/106420/modules/sqlite3/trunk/_config.php
BTW by convention module folders in Silverstripe should be exactly like the module name. For sqlite3 this is "sqlite3" and not "sqlite".
Good luck
Andy
-
Re: Host-Europe SSS 2.4.0 and sqlite fails

15 June 2010 at 6:28pm
Moin, moin, (aus dem Badischen)
I tried the changes but came to the same error, identical messages.
However, after uploading the two _config.php files, I called the site URL http://www.<domain>.de/SStest and got the full working CMS. The sqlite db is created and available and works (I can create pages and change content)
An attempt to rebuild the DB fails: calling http://www.<domain>.de/SStest/dev/build returnsBuilding Database SS_mysite
Creating database tables
# SQLitePDO Version 3.3.8
# Checking database integrity
Website Error
There has been an errorThe website server has not been able to respond to your request.
phpinfo.php info on sqlite:
pdo_sqlite
PDO Driver for SQLite 3.x enabled
PECL Module version 1.0.1 $Id: pdo_sqlite.c 272374 2008-12-31 11:17:49Z sebastian $
SQLite Library 3.3.8SQLite
SQLite support enabled
PECL Module version 2.0-dev $Id: sqlite.c 289587 2009-10-12 19:04:00Z felipe $
SQLite Library 2.8.17
SQLite Encoding UTF-8Directive Local Value Master Value
sqlite.assoc_case 0 0I assume, the error may lie within the SQLite Library version 2.8.17. If that is the case, I have the problem, that this is something I cannot change
Ciao, Mathias
-
Re: Host-Europe SSS 2.4.0 and sqlite fails

16 June 2010 at 1:22pm Last edited: 16 June 2010 1:25pm
Moin Mathias (sacht man im Badischen auch moin? ;-)
you got the discrete error msg. Can you try http://www.<domain>.de/SStest/dev/build?isDev=1 ? That should give you the chatty version.
The Silverstripe SQLite adapter uses SQLite version 3 only, namely the native PHP SQLite3 class and as a failsafe - like in your case - the PDO implementation in case SQLite3 is not available (commonly PHP versions prior to 5.3).
It looks like your SQLite just doesn't like the integrity check since everything else seems to work. You're almost there, so don't give up. Try the sledgehammer: open the sqlite3/code/SQLite3Database.php, search for the checkAndRepairTable function and add
return true;
as the first line of the function in order to pretend checks have been performed and everything is alright. This is for debugging only. If it fixes the issue I have to find a permanent solution.
Forgive my guessing. Although the SQLite adapter is behaving decently and is passing all UNITtests it is quite new and has not been used in production here at SilverStripe due to the size of projects. So I'm happy to trade my support for your feedback.
Cheers
Andy
-
Re: Host-Europe SSS 2.4.0 and sqlite fails

16 June 2010 at 8:36pm
Salut Andy,
I recognized that the web server package I use on host-europe is Webpack 2.0 and that 3.0 is avaiolable. So I upgraded to the new package (which is free of charge with host-europe and took 1 hour to complete). I then gave it a fresh try to run Silverstripe on host-europe using the latest sqlite trunk 106420. Now the error is slightly different:
[User Error] Couldn't run query: VACUUM | authorization denied
POST /SStest/install.phpLine 620 in /is/htdocs/wp1137769_LAX2FF6GKA/www/SStest/sapphire/core/model/Database.php
Source611 /**
612 * Error handler for database errors.
613 * All database errors will call this function to report the error. It isn't a static function;
614 * it will be called on the object itself and as such can be overridden in a subclass.
615 * @todo hook this into a more well-structured error handling system.
616 * @param string $msg The error message.
617 * @param int $errorLevel The level of the error to throw.
618 */
619 function databaseError($msg, $errorLevel = E_USER_ERROR) {
620 user_error($msg, $errorLevel);
621 }
622
623 /**
624 * Enable supression of database messages.
625 */
626 function quiet() {Trace
* Couldn't run query: VACUUM | authorization denied
Line 620 of Database.php
* SS_Database->databaseError(Couldn't run query: VACUUM | authorization denied,256)
Line 88 of SQLitePDODatabase.php
* SQLitePDODatabase->query(VACUUM)
Line 364 of SQLite3Database.php
* SQLite3Database->checkAndRepairTable()
Line 279 of SQLite3Database.php
* SQLite3Database->beginSchemaUpdate()
Line 185 of DatabaseAdmin.php
* DatabaseAdmin->doBuild(1)
Line 1028 of install.php
* Installer->install(Array)
Line 193 of install.php
looking at /assets/.db/SS_mysite, the file has size 0, permission 644 and owner is nobody/nobodyI am very interested in getting this to work, so if you contact me directly, I can grant you access to the site so that you have a better view. We can then post the solution later on this threat
Ciao, Mathias
-
Re: Host-Europe SSS 2.4.0 and sqlite fails

17 June 2010 at 9:43am
Hi Mathias,
this last one is easy as. Your hoster doesn't allow for vacuuming. Just add:
SQLite3Database::$vacuum = false;
to your mysite/_config.php. That should be it.
Cheers
Andy
| 2433 Views | ||
| Go to Top | Next > |

