aboutsummaryrefslogtreecommitdiffhomepage
path: root/install
diff options
context:
space:
mode:
Diffstat (limited to 'install')
-rwxr-xr-x[-rw-r--r--]install/index.php81
-rw-r--r--[-rwxr-xr-x]install/poche.sqlitebin393216 -> 393216 bytes
-rw-r--r--install/postgres.sql14
3 files changed, 72 insertions, 23 deletions
diff --git a/install/index.php b/install/index.php
index 975b997f..e702891b 100644..100755
--- a/install/index.php
+++ b/install/index.php
@@ -1,9 +1,30 @@
1<?php 1<?php
2$errors = array(); 2$errors = array();
3$successes = array(); 3$successes = array();
4if ($_POST['download']) { 4
5/* Function taken from at http://php.net/manual/en/function.rmdir.php#110489
6 * Idea : nbari at dalmp dot com
7 * Rights unknown
8 * Here in case of .gitignore files
9 */
10function delTree($dir) {
11 $files = array_diff(scandir($dir), array('.','..'));
12 foreach ($files as $file) {
13 (is_dir("$dir/$file")) ? delTree("$dir/$file") : unlink("$dir/$file");
14 }
15 return rmdir($dir);
16 }
17
18if (isset($_GET['clean'])) {
19 if (is_dir('install')){
20 delTree('install');
21 header('Location: index.php');
22 }
23}
24
25if (isset($_POST['download'])) {
5 if (!file_put_contents("cache/vendor.zip", fopen("http://static.wallabag.org/files/vendor.zip", 'r'))) { 26 if (!file_put_contents("cache/vendor.zip", fopen("http://static.wallabag.org/files/vendor.zip", 'r'))) {
6 $errors[] = 'Impossible to download vendor.zip. Please <a href="http://wllbg.org/vendor">download it manually<∕a> and unzip it in your wallabag folder.'; 27 $errors[] = 'Impossible to download vendor.zip. Please <a href="http://wllbg.org/vendor">download it manually</a> and unzip it in your wallabag folder.';
7 } 28 }
8 else { 29 else {
9 if (extension_loaded('zip')) { 30 if (extension_loaded('zip')) {
@@ -25,14 +46,14 @@ if ($_POST['download']) {
25 } 46 }
26 } 47 }
27} 48}
28else if ($_POST['install']) { 49else if (isset($_POST['install'])) {
29 if (!is_dir('vendor')) { 50 if (!is_dir('vendor')) {
30 $errors[] = 'You must install twig before.'; 51 $errors[] = 'You must install twig before.';
31 } 52 }
32 else { 53 else {
33 $continue = true; 54 $continue = true;
34 // Create config.inc.php 55 // Create config.inc.php
35 if (!copy('inc/poche/config.inc.php.new', 'inc/poche/config.inc.php')) { 56 if (!copy('inc/poche/config.inc.default.php', 'inc/poche/config.inc.php')) {
36 $errors[] = 'Installation aborted, impossible to create inc/poche/config.inc.php file. Maybe you don\'t have write access to create it.'; 57 $errors[] = 'Installation aborted, impossible to create inc/poche/config.inc.php file. Maybe you don\'t have write access to create it.';
37 $continue = false; 58 $continue = false;
38 } 59 }
@@ -64,6 +85,7 @@ else if ($_POST['install']) {
64 else { 85 else {
65 $db_path = 'sqlite:' . realpath('') . '/db/poche.sqlite'; 86 $db_path = 'sqlite:' . realpath('') . '/db/poche.sqlite';
66 $handle = new PDO($db_path); 87 $handle = new PDO($db_path);
88 $sql_structure = "";
67 } 89 }
68 } 90 }
69 else { 91 else {
@@ -79,7 +101,7 @@ else if ($_POST['install']) {
79 101
80 $sql_structure = file_get_contents('install/mysql.sql'); 102 $sql_structure = file_get_contents('install/mysql.sql');
81 } 103 }
82 else if ($_POST['db_engine'] == 'postgresql') { 104 else if ($_POST['db_engine'] == 'postgres') {
83 $db_path = 'pgsql:host=' . $_POST['pg_server'] . ';dbname=' . $_POST['pg_database']; 105 $db_path = 'pgsql:host=' . $_POST['pg_server'] . ';dbname=' . $_POST['pg_database'];
84 $content = str_replace("define ('STORAGE_SERVER', 'localhost');", "define ('STORAGE_SERVER', '".$_POST['pg_server']."');", $content); 106 $content = str_replace("define ('STORAGE_SERVER', 'localhost');", "define ('STORAGE_SERVER', '".$_POST['pg_server']."');", $content);
85 $content = str_replace("define ('STORAGE_DB', 'poche');", "define ('STORAGE_DB', '".$_POST['pg_database']."');", $content); 107 $content = str_replace("define ('STORAGE_DB', 'poche');", "define ('STORAGE_DB', '".$_POST['pg_database']."');", $content);
@@ -129,7 +151,7 @@ else if ($_POST['install']) {
129 $params = array($id_user, 'language', 'en_EN.UTF8'); 151 $params = array($id_user, 'language', 'en_EN.UTF8');
130 $query = executeQuery($handle, $sql, $params); 152 $query = executeQuery($handle, $sql, $params);
131 153
132 $successes[] = 'wallabag is now installed. Don\'t forget to delete install folder. Then, <a href="index.php">reload this page</a>.'; 154 $successes[] = 'wallabag is now installed. You can now <a href="index.php?clean=0">access it !</a>';
133 } 155 }
134 } 156 }
135 } 157 }
@@ -143,7 +165,7 @@ else if ($_POST['install']) {
143 <!--[if IE]> 165 <!--[if IE]>
144 <meta http-equiv="X-UA-Compatible" content="IE=10"> 166 <meta http-equiv="X-UA-Compatible" content="IE=10">
145 <![endif]--> 167 <![endif]-->
146 <title>wallabag installation</title> 168 <title>wallabag - installation</title>
147 <link rel="shortcut icon" type="image/x-icon" href="themes/baggy/img/favicon.ico" /> 169 <link rel="shortcut icon" type="image/x-icon" href="themes/baggy/img/favicon.ico" />
148 <link rel="apple-touch-icon-precomposed" sizes="144x144" href="themes/baggy/img/apple-touch-icon-144x144-precomposed.png"> 170 <link rel="apple-touch-icon-precomposed" sizes="144x144" href="themes/baggy/img/apple-touch-icon-144x144-precomposed.png">
149 <link rel="apple-touch-icon-precomposed" sizes="72x72" href="themes/baggy/img/apple-touch-icon-72x72-precomposed.png"> 171 <link rel="apple-touch-icon-precomposed" sizes="72x72" href="themes/baggy/img/apple-touch-icon-72x72-precomposed.png">
@@ -154,7 +176,7 @@ else if ($_POST['install']) {
154 <link rel="stylesheet" href="themes/baggy/css/main.css" media="all"> 176 <link rel="stylesheet" href="themes/baggy/css/main.css" media="all">
155 <link rel="stylesheet" href="themes/baggy/css/messages.css" media="all"> 177 <link rel="stylesheet" href="themes/baggy/css/messages.css" media="all">
156 <link rel="stylesheet" href="themes/baggy/css/print.css" media="print"> 178 <link rel="stylesheet" href="themes/baggy/css/print.css" media="print">
157 <script src="themes/baggy/js/jquery-2.0.3.min.js"></script> 179 <script src="themes/default/js/jquery-2.0.3.min.js"></script>
158 <script src="themes/baggy/js/init.js"></script> 180 <script src="themes/baggy/js/init.js"></script>
159 </head> 181 </head>
160 <body> 182 <body>
@@ -198,18 +220,18 @@ else if ($_POST['install']) {
198 <?php if (file_exists('inc/poche/config.inc.php') && is_dir('vendor')) : ?> 220 <?php if (file_exists('inc/poche/config.inc.php') && is_dir('vendor')) : ?>
199 <div class='messages success install'> 221 <div class='messages success install'>
200 <p> 222 <p>
201 wallabag seems already installed. If you want to update it, you only have to delete install folder. 223 wallabag seems already installed. If you want to update it, you only have to delete install folder, then <a href="index.php">reload this page</a>.
202 </p> 224 </p>
203 </div> 225 </div>
204 <?php endif; ?> 226 <?php endif; ?>
205 <?php endif; ?> 227 <?php endif; ?>
206 <p>To install wallabag, you just have to fill the following fields. That's all.</p> 228 <p>To install wallabag, you just have to fill the following fields. That's all.</p>
207 <p>Don't forget to check your server compatibility <a href="wallabag_compatibility_test.php">here</a>.</p> 229 <p>Don't forget to check your server compatibility <a href="wallabag_compatibility_test.php?from=install">here</a>.</p>
208 <form method="post"> 230 <form method="post">
209 <fieldset> 231 <fieldset>
210 <legend><strong>Technical settings</strong></legend> 232 <legend><strong>Technical settings</strong></legend>
211 <?php if (!is_dir('vendor')) : ?> 233 <?php if (!is_dir('vendor')) : ?>
212 <div class='messages notice install'>wallabag needs twig, a template engine (<a href="http://twig.sensiolabs.org/">?</a>). Two ways to install it: 234 <div class='messages notice install'>wallabag needs twig, a template engine (<a href="http://twig.sensiolabs.org/">?</a>). Two ways to install it:<br />
213 <ul> 235 <ul>
214 <li>automatically download and extract vendor.zip into your wallabag folder. 236 <li>automatically download and extract vendor.zip into your wallabag folder.
215 <p><input type="submit" name="download" value="Download vendor.zip" /></p> 237 <p><input type="submit" name="download" value="Download vendor.zip" /></p>
@@ -225,7 +247,11 @@ php composer.phar install</code></pre></li>
225 <p> 247 <p>
226 Database engine: 248 Database engine:
227 <ul> 249 <ul>
228 <li><label for="sqlite">SQLite</label> <input name="db_engine" type="radio" checked="" id="sqlite" value="sqlite" /></li> 250 <li><label for="sqlite">SQLite</label> <input name="db_engine" type="radio" checked="" id="sqlite" value="sqlite" />
251 <div id="pdo_sqlite" class='messages error install'>
252 <p>You have to enable <a href="http://php.net/manual/ref.pdo-sqlite.php">pdo_sqlite extension</a>.</p>
253 </div>
254 </li>
229 <li> 255 <li>
230 <label for="mysql">MySQL</label> <input name="db_engine" type="radio" id="mysql" value="mysql" /> 256 <label for="mysql">MySQL</label> <input name="db_engine" type="radio" id="mysql" value="mysql" />
231 <ul id="mysql_infos"> 257 <ul id="mysql_infos">
@@ -236,12 +262,12 @@ php composer.phar install</code></pre></li>
236 </ul> 262 </ul>
237 </li> 263 </li>
238 <li> 264 <li>
239 <label for="postgresql">PostgreSQL</label> <input name="db_engine" type="radio" id="postgresql" value="postgresql" /> 265 <label for="postgres">PostgreSQL</label> <input name="db_engine" type="radio" id="postgres" value="postgres" />
240 <ul id="pg_infos"> 266 <ul id="pg_infos">
241 <li><label for="pg_server">Server</label> <input type="text" placeholder="localhost" id="pg_server" name="pg_server" /></li> 267 <li><label for="pg_server">Server</label> <input type="text" placeholder="localhost" id="pg_server" name="pg_server" /></li>
242 <li><label for="pg_database">Database</label> <input type="text" placeholder="wallabag" id="pg_database" name="pg_database" /></li> 268 <li><label for="pg_database">Database</label> <input type="text" placeholder="wallabag" id="pg_database" name="pg_database" /></li>
243 <li><label for="pg_user">User</label> <input type="text" placeholder="user" id="pg_user" name="pg_user" /></li> 269 <li><label for="pg_user">User</label> <input type="text" placeholder="user" id="pg_user" name="pg_user" /></li>
244 id <li><label for="pg_password">Password</label> <input type="text" placeholder="p4ssw0rd" id="pg_password" name="pg_password" /></li> 270 <li><label for="pg_password">Password</label> <input type="text" placeholder="p4ssw0rd" id="pg_password" name="pg_password" /></li>
245 </ul> 271 </ul>
246 </li> 272 </li>
247 </ul> 273 </ul>
@@ -263,26 +289,49 @@ php composer.phar install</code></pre></li>
263 </p> 289 </p>
264 </fieldset> 290 </fieldset>
265 291
266 <input type="submit" value="Install wallabag" name="install" /> 292 <input type="submit" id="install_button" value="Install wallabag" name="install" />
267 </form> 293 </form>
268 </div> 294 </div>
269 <script> 295 <script>
270 $("#mysql_infos").hide(); 296 $("#mysql_infos").hide();
271 $("#pg_infos").hide(); 297 $("#pg_infos").hide();
298
299 <?php
300 if (!extension_loaded('pdo_sqlite')) : ?>
301 $("#install_button").hide();
302 <?php
303 else :
304 ?>
305 $("#pdo_sqlite").hide();
306 <?php
307 endif;
308 ?>
309
272 $("input[name=db_engine]").click(function() 310 $("input[name=db_engine]").click(function()
273 { 311 {
274 if ( $("#mysql").prop('checked')) { 312 if ( $("#mysql").prop('checked')) {
275 $("#mysql_infos").show(); 313 $("#mysql_infos").show();
276 $("#pg_infos").hide(); 314 $("#pg_infos").hide();
315 $("#pdo_sqlite").hide();
316 $("#install_button").show();
277 } 317 }
278 else { 318 else {
279 if ( $("#postgresql").prop('checked')) { 319 if ( $("#postgres").prop('checked')) {
280 $("#mysql_infos").hide(); 320 $("#mysql_infos").hide();
281 $("#pg_infos").show(); 321 $("#pg_infos").show();
322 $("#pdo_sqlite").hide();
323 $("#install_button").show();
282 } 324 }
283 else { 325 else {
284 $("#mysql_infos").hide(); 326 $("#mysql_infos").hide();
285 $("#pg_infos").hide(); 327 $("#pg_infos").hide();
328 <?php
329 if (!extension_loaded('pdo_sqlite')) : ?>
330 $("#pdo_sqlite").show();
331 $("#install_button").hide();
332 <?php
333 endif;
334 ?>
286 } 335 }
287 } 336 }
288 }); 337 });
diff --git a/install/poche.sqlite b/install/poche.sqlite
index f2b79b68..f2b79b68 100755..100644
--- a/install/poche.sqlite
+++ b/install/poche.sqlite
Binary files differ
diff --git a/install/postgres.sql b/install/postgres.sql
index fe8f559c..1d73dfcb 100644
--- a/install/postgres.sql
+++ b/install/postgres.sql
@@ -1,10 +1,10 @@
1CREATE TABLE config ( 1CREATE TABLE IF NOT EXISTS config (
2 id bigserial primary key, 2 id bigserial primary key,
3 name varchar(255) NOT NULL, 3 name varchar(255) NOT NULL,
4 value varchar(255) NOT NULL 4 value varchar(255) NOT NULL
5); 5);
6 6
7CREATE TABLE entries ( 7CREATE TABLE IF NOT EXISTS entries (
8 id bigserial primary key, 8 id bigserial primary key,
9 title varchar(255) NOT NULL, 9 title varchar(255) NOT NULL,
10 url varchar(255) NOT NULL, 10 url varchar(255) NOT NULL,
@@ -14,7 +14,7 @@ CREATE TABLE entries (
14 user_id integer NOT NULL 14 user_id integer NOT NULL
15); 15);
16 16
17CREATE TABLE users ( 17CREATE TABLE IF NOT EXISTS users (
18 id bigserial primary key, 18 id bigserial primary key,
19 username varchar(255) NOT NULL, 19 username varchar(255) NOT NULL,
20 password varchar(255) NOT NULL, 20 password varchar(255) NOT NULL,
@@ -22,20 +22,20 @@ CREATE TABLE users (
22 email varchar(255) NOT NULL 22 email varchar(255) NOT NULL
23); 23);
24 24
25CREATE TABLE users_config ( 25CREATE TABLE IF NOT EXISTS users_config (
26 id bigserial primary key, 26 id bigserial primary key,
27 user_id integer NOT NULL, 27 user_id integer NOT NULL,
28 name varchar(255) NOT NULL, 28 name varchar(255) NOT NULL,
29 value varchar(255) NOT NULL 29 value varchar(255) NOT NULL
30); 30);
31 31
32CREATE TABLE tags ( 32CREATE TABLE IF NOT EXISTS tags (
33 id bigserial primary key, 33 id bigserial primary key,
34 value varchar(255) NOT NULL 34 value varchar(255) NOT NULL
35); 35);
36 36
37CREATE TABLE tags_entries ( 37CREATE TABLE IF NOT EXISTS tags_entries (
38 id bigserial primary key, 38 id bigserial primary key,
39 entry_id integer NOT NULL, 39 entry_id integer NOT NULL,
40 tag_id integer NOT NULL 40 tag_id integer NOT NULL
41) \ No newline at end of file 41)