aboutsummaryrefslogtreecommitdiffhomepage
path: root/install
diff options
context:
space:
mode:
Diffstat (limited to 'install')
-rwxr-xr-xinstall/index.php124
-rw-r--r--install/install_functions.php22
2 files changed, 93 insertions, 53 deletions
diff --git a/install/index.php b/install/index.php
index 30bc2f6b..bd9e502d 100755
--- a/install/index.php
+++ b/install/index.php
@@ -49,6 +49,7 @@ else if (isset($_POST['install'])) {
49 $errors[] = 'You must install twig before.'; 49 $errors[] = 'You must install twig before.';
50 } else { 50 } else {
51 $continue = true; 51 $continue = true;
52 $final = false;
52 $salt = generate_salt(); 53 $salt = generate_salt();
53 $content = file_get_contents('inc/poche/config.inc.default.php'); 54 $content = file_get_contents('inc/poche/config.inc.default.php');
54 55
@@ -142,7 +143,7 @@ else if (isset($_POST['install'])) {
142 foreach ($moreQueries as $query) { 143 foreach ($moreQueries as $query) {
143 executeQuery($handle, $query, array()); 144 executeQuery($handle, $query, array());
144 } 145 }
145 $successes[] = 'wallabag is now installed. You can now <a href="index.php?clean=0">access it !</a>'; 146
146 147
147 if (!copy('inc/poche/config.inc.default.php', 'inc/poche/config.inc.php')) { 148 if (!copy('inc/poche/config.inc.default.php', 'inc/poche/config.inc.php')) {
148 $errors[] = 'Installation aborted, impossible to create inc/poche/config.inc.php file. Maybe you don\'t have write access to create it.'; 149 $errors[] = 'Installation aborted, impossible to create inc/poche/config.inc.php file. Maybe you don\'t have write access to create it.';
@@ -153,6 +154,7 @@ else if (isset($_POST['install'])) {
153 } 154 }
154 $content = str_replace("define ('SALT', '');", "define ('SALT', '".$salt."');", $content); 155 $content = str_replace("define ('SALT', '');", "define ('SALT', '".$salt."');", $content);
155 file_put_contents('inc/poche/config.inc.php', $content); 156 file_put_contents('inc/poche/config.inc.php', $content);
157 $final = true;
156 } 158 }
157} 159}
158} 160}
@@ -296,12 +298,12 @@ cursor: pointer;
296} 298}
297.compatibity_result { 299.compatibity_result {
298 margin: auto; 300 margin: auto;
299 max-width: 300px; 301 max-width: 350px;
300 min-height: 50px; 302 min-height: 50px;
301 line-height: 50px; 303 line-height: 50px;
302 text-align: center; 304 text-align: center;
303 margin-bottom: 30px; 305 margin-bottom: 30px;
304 border-radius: 3px; 306 border-radius: 3px;
305} 307}
306 308
307h2, legend { 309h2, legend {
@@ -329,6 +331,21 @@ border: 1px solid #000;
329 background-color: #FFF; 331 background-color: #FFF;
330 color: #000; 332 color: #000;
331} 333}
334.final {
335 margin-top: 10%;
336 margin-left: 30%;
337 max-width: 400px;
338 text-align: center;
339 border-radius: 6px;
340}
341.final h1 {
342 line-height: 50px;
343}
344
345.final em {
346 margin-top: 40px;
347 font-size: 12px;
348}
332 349
333</style> 350</style>
334 351
@@ -346,7 +363,8 @@ border: 1px solid #000;
346 <li><a href="http://doc.wallabag.org/" target="_blank">Online doc</a></li> 363 <li><a href="http://doc.wallabag.org/" target="_blank">Online doc</a></li>
347 <li><a href="http://support.wallabag.org/" target="_blank">help</a></li> 364 <li><a href="http://support.wallabag.org/" target="_blank">help</a></li>
348 <li><a href="http://www.wallabag.org/" target="_blank">wallabag.org</a></li> 365 <li><a href="http://www.wallabag.org/" target="_blank">wallabag.org</a></li>
349 </ul> 366 </ul>
367 <?php if (!$final) : ?>
350 <?php if (!empty($errors)) : ?> 368 <?php if (!empty($errors)) : ?>
351 <div class='messages error install'> 369 <div class='messages error install'>
352 <p>Errors during installation:</p> 370 <p>Errors during installation:</p>
@@ -386,10 +404,10 @@ border: 1px solid #000;
386 <?php if (isOkay()) { ?> 404 <?php if (isOkay()) { ?>
387 <div class="compatibity_result detail good">All good</div> 405 <div class="compatibity_result detail good">All good</div>
388 <?php } elseif (isPassing()) { ?> 406 <?php } elseif (isPassing()) { ?>
389 <div class="compatibity_result detail pass">Some problems, but it's OK !</div> 407 <div class="compatibity_result detail pass">Some warnings, but the minimum is here !</div>
390 <?php } else { ?> 408 <?php } else { ?>
391 <div class="compatibity_result detail bad">Bad news : you can't run wallabag</div> 409 <div class="compatibity_result detail bad">Bad news : you can't run wallabag</div>
392 <?php } $status = status(); ?> 410 <?php } $status = status(); $pdo_drivers = pdoDrivers(); ?>
393 </div> 411 </div>
394 412
395 <div class="details"> 413 <div class="details">
@@ -569,38 +587,54 @@ php composer.phar install</code></pre>
569 <p> 587 <p>
570 Database engine: 588 Database engine:
571 <ul> 589 <ul>
572 <li><label for="sqlite">SQLite</label> <input name="db_engine" type="radio" checked="" id="sqlite" value="sqlite" /> 590 <li>
573 <div id="pdo_sqlite" class='messages error install'> 591 <?php if ($pdo_drivers['sqlite']) { ?>
574 <p>You have to enable <a href="http://php.net/manual/ref.pdo-sqlite.php">pdo_sqlite extension</a>.</p> 592 <label for="sqlite">SQLite</label> <input name="db_engine" type="radio" checked="" id="sqlite" value="sqlite" />
575 </div> 593 <?php } else { ?>
576 </li> 594 <div class="messages notice">
577 <li> 595 <p>You have to enable <a href="http://php.net/manual/ref.pdo-sqlite.php">pdo_sqlite extension</a> to use SQLite.</p>
578 <label for="mysql">MySQL</label> <input name="db_engine" type="radio" id="mysql" value="mysql" /> 596 </div>
579 <div id="pdo_mysql" class='messages notice install'> 597 <?php } ?>
580 <p>All fields have to be filled.</p> 598 </li>
581 </div> 599 <li>
582 <ul id="mysql_infos"> 600 <?php if ($pdo_drivers['mysql']) { ?>
583 <li><label for="mysql_server">Server</label> <input type="text" placeholder="localhost" id="mysql_server" name="mysql_server" /></li> 601 <label for="mysql">MySQL</label> <input name="db_engine" type="radio" id="mysql" value="mysql" />
584 <li><label for="mysql_database">Database</label> <input type="text" placeholder="wallabag" id="mysql_database" name="mysql_database" /></li> 602 <div id="pdo_mysql" class='messages notice install'>
585 <li><label for="mysql_user">User</label> <input type="text" placeholder="user" id="mysql_user" name="mysql_user" /></li> 603 <p>All fields have to be filled.</p>
586 <li><label for="mysql_password">Password</label> <input type="password" placeholder="p4ssw0rd" id="mysql_password" name="mysql_password" /></li> 604 </div>
587 <li><label for="mysql_utf8_mb4">Use UTF-8 MB4</label> <input id="mysql_utf8_mb4" type="checkbox" name="mysql_utf8_mb4"> 605 <ul id="mysql_infos">
588 <div id="utf8_mb4_infos"><em>Warning :</em> UTF-8 MB4 is used to fully support unicode characters. It is available only with MySQL starting with version 5.5.3. 606 <li><label for="mysql_server">Server</label> <input type="text" placeholder="localhost" id="mysql_server" name="mysql_server" /></li>
607 <li><label for="mysql_database">Database</label> <input type="text" placeholder="wallabag" id="mysql_database" name="mysql_database" /></li>
608 <li><label for="mysql_user">User</label> <input type="text" placeholder="user" id="mysql_user" name="mysql_user" /></li>
609 <li><label for="mysql_password">Password</label> <input type="password" placeholder="p4ssw0rd" id="mysql_password" name="mysql_password" /></li>
610 <li><label for="mysql_utf8_mb4">Use UTF-8 MB4</label> <input id="mysql_utf8_mb4" type="checkbox" name="mysql_utf8_mb4">
611 <div id="utf8_mb4_infos"><em>Warning :</em> UTF-8 MB4 is used to fully support unicode characters. It is available only with MySQL starting with version 5.5.3.
589 Install will failed if you check this while using an older MySQL server.</div></li> 612 Install will failed if you check this while using an older MySQL server.</div></li>
590 </ul> 613 </ul>
591 </li> 614 <?php } else { ?>
592 <li> 615 <div class="messages notice">
593 <label for="postgres">PostgreSQL</label> <input name="db_engine" type="radio" id="postgres" value="postgres" /> 616 <p>You have to enable <a href="http://php.net/manual/ref.pdo-mysql.php">pdo_mysql extension</a> to use MySQL.</p>
594 <div id="pdo_postgres" class='messages notice install'> 617 </div>
618 <?php } ?>
619 </li>
620 <li>
621 <?php if ($pdo_drivers['postgres']) { ?>
622 <label for="postgres">PostgreSQL</label> <input name="db_engine" type="radio" id="postgres" value="postgres" />
623 <div id="pdo_postgres" class='messages notice install'>
595 <p>All fields have to be filled.</p> 624 <p>All fields have to be filled.</p>
596 </div> 625 </div>
597 <ul id="pg_infos"> 626 <ul id="pg_infos">
598 <li><label for="pg_server">Server</label> <input type="text" placeholder="localhost" id="pg_server" name="pg_server" /></li> 627 <li><label for="pg_server">Server</label> <input type="text" placeholder="localhost" id="pg_server" name="pg_server" /></li>
599 <li><label for="pg_database">Database</label> <input type="text" placeholder="wallabag" id="pg_database" name="pg_database" /></li> 628 <li><label for="pg_database">Database</label> <input type="text" placeholder="wallabag" id="pg_database" name="pg_database" /></li>
600 <li><label for="pg_user">User</label> <input type="text" placeholder="user" id="pg_user" name="pg_user" /></li> 629 <li><label for="pg_user">User</label> <input type="text" placeholder="user" id="pg_user" name="pg_user" /></li>
601 <li><label for="pg_password">Password</label> <input type="password" placeholder="p4ssw0rd" id="pg_password" name="pg_password" /></li> 630 <li><label for="pg_password">Password</label> <input type="password" placeholder="p4ssw0rd" id="pg_password" name="pg_password" /></li>
602 </ul> 631 </ul>
603 </li> 632 <?php } else { ?>
633 <div class="messages notice">
634 <p>You have to enable <a href="https://php.net/manual/ref.pdo-pgsql.php">pdo_pgsql extension</a> to use PostgreSQL.</p>
635 </div>
636 <?php } ?>
637 </li>
604 </ul> 638 </ul>
605 </p> 639 </p>
606 </fieldset> 640 </fieldset>
@@ -638,6 +672,12 @@ php composer.phar install</code></pre>
638 </div> 672 </div>
639 </form> 673 </form>
640 </div> 674 </div>
675 <?php else : ?>
676 <div class="final good">
677 <h1>wallabag is now installed ! :-) </h1>
678 <a href="index.php?clean=0">Click here to access the login form</a><br />
679 <em>The installation will now try to delete the install directory. If this fails, delete it manually.</em></div>
680 <?php endif; ?>
641 <script> 681 <script>
642 <?php if (!is_dir('vendor')) : ?> 682 <?php if (!is_dir('vendor')) : ?>
643 $(".database_info").hide(); 683 $(".database_info").hide();
@@ -672,17 +712,6 @@ php composer.phar install</code></pre>
672 endif; 712 endif;
673 ?> 713 ?>
674 714
675 <?php
676 if (!extension_loaded('pdo_sqlite')) : ?>
677 $("#install_button").hide();
678 <?php
679 else :
680 ?>
681 $("#pdo_sqlite").hide();
682 <?php
683 endif;
684 ?>
685
686 $("#mysql_utf8_mb4").click(function() { 715 $("#mysql_utf8_mb4").click(function() {
687 $("#utf8_mb4_infos").toggle(); 716 $("#utf8_mb4_infos").toggle();
688 }); 717 });
@@ -720,13 +749,6 @@ php composer.phar install</code></pre>
720 $("#sqlite_description").show(); 749 $("#sqlite_description").show();
721 $("#mysql_description").hide(); 750 $("#mysql_description").hide();
722 $("#postgres_description").hide(); 751 $("#postgres_description").hide();
723 <?php
724 if (!extension_loaded('pdo_sqlite')) : ?>
725 $("#pdo_sqlite").show();
726 $("#install_button").hide();
727 <?php
728 endif;
729 ?>
730 } 752 }
731 } 753 }
732 }); 754 });
diff --git a/install/install_functions.php b/install/install_functions.php
index 3b465851..4a18d7d8 100644
--- a/install/install_functions.php
+++ b/install/install_functions.php
@@ -26,7 +26,10 @@ $allow_url_fopen_ok = (bool)ini_get('allow_url_fopen');
26$filter_ok = extension_loaded('filter'); 26$filter_ok = extension_loaded('filter');
27$gettext_ok = function_exists("gettext"); 27$gettext_ok = function_exists("gettext");
28$gd_ok = extension_loaded('gd'); 28$gd_ok = extension_loaded('gd');
29$pdo_drivers_passing = extension_loaded('pdo_sqlite') || extension_loaded('pdo_mysql') || extension_loaded('pdo_pgsql'); 29$pdo_drivers = pdoDrivers();
30$pdo_drivers_passing = $pdo_drivers['sqlite'] || $pdo_drivers['mysql'] || $pdo_drivers['postgres'];
31
32
30 33
31if (extension_loaded('xmlreader')) { 34if (extension_loaded('xmlreader')) {
32 $xml_ok = true; 35 $xml_ok = true;
@@ -39,7 +42,11 @@ if (extension_loaded('xmlreader')) {
39 $xml_ok = false; 42 $xml_ok = false;
40} 43}
41 44
42$status = array('app_name' => $app_name, 'php' => $php_ok, 'pdo' => $pdo_ok, 'pdo_drivers_passing' => $pdo_drivers_passing, 'xml' => $xml_ok, 'pcre' => $pcre_ok, 'zlib' => $zlib_ok, 'mbstring' => $mbstring_ok, 'dom' => $dom_ok, 'iconv' => $iconv_ok, 'tidy' => $tidy_ok, 'curl' => $curl_ok, 'parse_ini' => $parse_ini_ok, 'parallel' => $parallel_ok, 'allow_url_fopen' => $allow_url_fopen_ok, 'filter' => $filter_ok, 'gettext' => $gettext_ok, 'gd' => $gd_ok); 45$status = array('app_name' => $app_name, 'php' => $php_ok, 'pdo' => $pdo_ok,
46 'pdo_drivers_passing' => $pdo_drivers_passing, 'xml' => $xml_ok, 'pcre' => $pcre_ok,
47 'zlib' => $zlib_ok, 'mbstring' => $mbstring_ok, 'dom' => $dom_ok, 'iconv' => $iconv_ok, 'tidy' => $tidy_ok, 'curl' => $curl_ok,
48 'parse_ini' => $parse_ini_ok, 'parallel' => $parallel_ok, 'allow_url_fopen' => $allow_url_fopen_ok, 'filter' => $filter_ok,
49 'gettext' => $gettext_ok, 'gd' => $gd_ok);
43 50
44return $status; 51return $status;
45} 52}
@@ -53,6 +60,17 @@ function isPassing() {
53 return !in_array(false, $status); 60 return !in_array(false, $status);
54} 61}
55 62
63function pdoDrivers() {
64 $pdo_driver_sqlite = extension_loaded('pdo_sqlite');
65 $pdo_driver_mysql = extension_loaded('pdo_mysql');
66 $pdo_driver_postgres = extension_loaded('pdo_pgsql');
67
68 $pdo_drivers = array('sqlite' => $pdo_driver_sqlite, 'mysql' => $pdo_driver_mysql,
69 'postgres' => $pdo_driver_postgres);
70
71 return $pdo_drivers;
72}
73
56/* Function taken from at http://php.net/manual/en/function.rmdir.php#110489 74/* Function taken from at http://php.net/manual/en/function.rmdir.php#110489
57 * Idea : nbari at dalmp dot com 75 * Idea : nbari at dalmp dot com
58 * Rights unknown 76 * Rights unknown