diff --git a/.htaccess b/.htaccess index d6a43797..3050e2e7 100644 --- a/.htaccess +++ b/.htaccess @@ -17,8 +17,8 @@ # rather than link to images/ha/hash and have an ugly filename, # we link to images/hash/tags.ext; mod_rewrite splits things so # that shimmie sees hash and the user sees tags.ext - RewriteRule ^_images/([0-9a-f]{2})([0-9a-f]{30}).*$ images/$1/$1$2 [L] - RewriteRule ^_thumbs/([0-9a-f]{2})([0-9a-f]{30}).*$ thumbs/$1/$1$2 [L] + RewriteRule ^_images/([0-9a-f]{2})([0-9a-f]{30}).*$ data/images/$1/$1$2 [L] + RewriteRule ^_thumbs/([0-9a-f]{2})([0-9a-f]{30}).*$ data/thumbs/$1/$1$2 [L] # any requests for files which don't physically exist should be handled by index.php RewriteCond %{REQUEST_FILENAME} !-f diff --git a/.travis.yml b/.travis.yml index db087aa9..4d7dea99 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ language: php php: - - 7.1 - - 7.2 + - 7.0 sudo: false diff --git a/README.markdown b/README.markdown index 4b60f8ad..e8271f0f 100644 --- a/README.markdown +++ b/README.markdown @@ -29,7 +29,7 @@ check out one of the versioned branches. # Requirements - MySQL/MariaDB 5.1+ (with experimental support for PostgreSQL 9+ and SQLite 3) -- [Stable PHP](https://en.wikipedia.org/wiki/PHP#Release_history) (7.1+ as of writing) +- [Stable PHP](https://en.wikipedia.org/wiki/PHP#Release_history) (7.0+ as of writing) - GD or ImageMagick # Installation @@ -50,6 +50,24 @@ check out one of the versioned branches. 4. Run `composer install` in the shimmie folder. 5. Follow instructions noted in "Installation" starting from step 3. +# Docker + +Useful for testing in a known-good environment, this command will build a simple debian image and run all the unit tests inside it: + +``` +docker build -t shimmie . +``` + +Once you have an image which has passed all tests, you can then run it to get a live system: + +``` +docker run -p 0.0.0.0:8123:8000 shimmie +``` + +Then you can visit your server on port 8123 to see the site. + +Note that the docker image is entirely self-contained and has no persistence (assuming you use the sqlite database); each `docker run` will give a clean un-installed image. + ### Upgrade from earlier versions I very much recommend going via each major release in turn (eg, 2.0.6 diff --git a/composer.json b/composer.json index 509164c6..5b91691f 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ ], "require" : { - "php" : ">=7.1", + "php" : ">=7.0", "ext-pdo": "*", "flexihash/flexihash" : "^2.0.0", diff --git a/core/_install.php b/core/_install.php index d8971fc0..2b0a4eb3 100644 --- a/core/_install.php +++ b/core/_install.php @@ -108,8 +108,9 @@ function do_install() { // {{{ if(file_exists("data/config/auto_install.conf.php")) { require_once "data/config/auto_install.conf.php"; } - else if(@$_POST["database_type"] == "sqlite" && isset($_POST["database_name"])) { - define('DATABASE_DSN', "sqlite:{$_POST["database_name"]}"); + else if(@$_POST["database_type"] == "sqlite") { + $id = bin2hex(random_bytes(5)); + define('DATABASE_DSN', "sqlite:data/shimmie.{$id}.sqlite"); } else if(isset($_POST['database_type']) && isset($_POST['database_host']) && isset($_POST['database_user']) && isset($_POST['database_name'])) { define('DATABASE_DSN', "{$_POST['database_type']}:user={$_POST['database_user']};password={$_POST['database_password']};host={$_POST['database_host']};dbname={$_POST['database_name']}"); @@ -153,7 +154,6 @@ function ask_questions() { // {{{ if( !in_array("mysql", $drivers) && !in_array("pgsql", $drivers) && - !in_array("sqlite", $drivers) ) { $errors[] = " @@ -201,7 +201,7 @@ function ask_questions() { // {{{
Shimmie needs to make three folders in it's directory, 'images', 'thumbs', and 'data', and they need to be writable by the PHP user.
-If you see this error, if probably means the folders are owned by you, and they need to be writable by the web server.
+Shimmie needs to have a 'data' folder in its directory, writable by the PHP user.
+If you see this error, if probably means the folder is owned by you, and it needs to be writable by the web server.
PHP reports that it is currently running as user: ".$_ENV["USER"]." (". $_SERVER["USER"] .")
-Once you have created these folders and / or changed the ownership of the shimmie folder, hit 'refresh' to continue.
+Once you have created this folder and / or changed the ownership of the shimmie folder, hit 'refresh' to continue.