Explorar o código

Merge pull request #1363 from Alkarex/install-fixes

Fix small bugs in install
Alexandre Alapetite %!s(int64=9) %!d(string=hai) anos
pai
achega
1a4fdfb1be
Modificáronse 8 ficheiros con 20 adicións e 13 borrados
  1. 1 0
      CHANGELOG.md
  2. 0 1
      app/Models/UserDAO.php
  3. 2 2
      app/install.php
  4. 2 2
      cli/README.md
  5. 3 0
      cli/create-user.php
  6. 6 6
      cli/do-install.php
  7. 1 1
      data/config.default.php
  8. 5 1
      lib/lib_install.php

+ 1 - 0
CHANGELOG.md

@@ -7,6 +7,7 @@
 * Bug fixing
 	* Fix bug in estimating last user activity [#1358](https://github.com/FreshRSS/FreshRSS/issues/1358)
 	* PostgreSQL: fix bug when updating cached values [#1360](https://github.com/FreshRSS/FreshRSS/issues/1360)
+	* Fix small bugs in installer [#1363](https://github.com/FreshRSS/FreshRSS/pull/1363)
 
 
 ## 2016-11-02 FreshRSS 1.6.1

+ 0 - 1
app/Models/UserDAO.php

@@ -88,7 +88,6 @@ class FreshRSS_UserDAO extends Minz_ModelPdo {
 		if (($username == '') || (!ctype_alnum($username))) {
 			$username = Minz_Session::param('currentUser', '_');
 		}
-		Minz_Log::debug('touch ' . $username);
 		return touch(join_path(DATA_PATH , 'users', $username, 'config.php'));
 	}
 

+ 2 - 2
app/install.php

@@ -230,7 +230,7 @@ function saveStep3() {
 			$_SESSION['bd_error'] = '';
 			header('Location: index.php?step=4');
 		} else {
-			$_SESSION['bd_error'] = empty($config_array['db']['bd_error']) ? 'Unknown error!' : $config_array['db']['bd_error'];
+			$_SESSION['bd_error'] = empty($config_array['db']['error']) ? 'Unknown error!' : $config_array['db']['error'];
 		}
 	}
 	invalidateHttpCache();
@@ -375,7 +375,7 @@ function checkDbUser(&$dbOptions) {
 		}
 	} catch (PDOException $e) {
 		$ok = false;
-		$dbOptions['bd_error'] = $e->getMessage();
+		$dbOptions['error'] = $e->getMessage();
 	}
 	return $ok;
 }

+ 2 - 2
cli/README.md

@@ -32,8 +32,8 @@ Options in parenthesis are optional.
 ```sh
 cd /usr/share/FreshRSS
 
-./cli/do-install.php --default_user admin --auth_type form  ( --environment production --base_url https://rss.example.net/ --title FreshRSS --allow_anonymous --api_enabled --db-type mysql --db-host localhost:3306 --db-user freshrss --db-password dbPassword123 --db-base freshrss --db-prefix freshrss )
-# --auth_type can be: 'form' (recommended), 'http_auth' (using the Web server access control), 'none' (dangerous)
+./cli/do-install.php --default_user admin ( --auth_type form --environment production --base_url https://rss.example.net/ --title FreshRSS --allow_anonymous --api_enabled --db-type mysql --db-host localhost:3306 --db-user freshrss --db-password dbPassword123 --db-base freshrss --db-prefix freshrss )
+# --auth_type can be: 'form' (default), 'http_auth' (using the Web server access control), 'none' (dangerous)
 # --db-type can be: 'sqlite' (default), 'mysql' (MySQL or MariaDB), 'pgsql' (PostgreSQL)
 # --environment can be: 'production' (default), 'development' (for additional log messages)
 # --db-prefix is an optional prefix in front of the names of the tables

+ 3 - 0
cli/create-user.php

@@ -43,6 +43,9 @@ if (!$ok) {
 
 invalidateHttpCache(FreshRSS_Context::$system_conf->default_user);
 
+echo '• Remember to refresh the feeds of the user: ', $username , "\n",
+	"\t", './cli/actualize-user.php --user ', $username, "\n";
+
 accessRights();
 
 done($ok);

+ 6 - 6
cli/do-install.php

@@ -26,9 +26,9 @@ $dBparams = array(
 
 $options = getopt('', array_merge($params, $dBparams));
 
-if (empty($options['default_user']) || empty($options['auth_type'])) {
-	fail('Usage: ' . basename(__FILE__) . " --default_user admin --auth_type form" .
-		" ( --environment production --base_url https://rss.example.net/" .
+if (empty($options['default_user'])) {
+	fail('Usage: ' . basename(__FILE__) . " --default_user admin ( --auth_type form" .
+		" --environment production --base_url https://rss.example.net/" .
 		" --title FreshRSS --allow_anonymous --api_enabled" .
 		" --db-type mysql --db-host localhost:3306 --db-user freshrss --db-password dbPassword123" .
 		" --db-base freshrss --db-prefix freshrss )");
@@ -51,7 +51,7 @@ if (!ctype_alnum($options['default_user'])) {
 	fail('FreshRSS invalid default username (must be ASCII alphanumeric): ' . $options['default_user']);
 }
 
-if (!in_array($options['auth_type'], array('form', 'http_auth', 'none'))) {
+if (isset($options['auth_type']) && !in_array($options['auth_type'], array('form', 'http_auth', 'none'))) {
 	fail('FreshRSS invalid authentication method (auth_type must be one of { form, http_auth, none }: ' . $options['auth_type']);
 }
 
@@ -86,11 +86,11 @@ if (file_put_contents(join_path(DATA_PATH, 'config.php'), "<?php\n return " . va
 $config['db']['default_user'] = $config['default_user'];
 if (!checkDb($config['db'])) {
 	@unlink(join_path(DATA_PATH, 'config.php'));
-	fail('FreshRSS database error: ' . (empty($config['db']['bd_error']) ? 'Unknown error' : $config['db']['bd_error']));
+	fail('FreshRSS database error: ' . (empty($config['db']['error']) ? 'Unknown error' : $config['db']['error']));
 }
 
 echo '• Remember to create the default user: ', $config['default_user'] , "\n",
-	"\t", './cli/create-user.php --user ', $config['default_user'] , " --password 'password' --more-options\n";
+	"\t", './cli/create-user.php --user ', $config['default_user'], " --password 'password' --more-options\n";
 
 accessRights();
 

+ 1 - 1
data/config.default.php

@@ -46,7 +46,7 @@ return array(
 	#	`http_auth` is an access controled by the HTTP Web server (e.g. `/FreshRSS/p/i/.htaccess` for Apache)
 	#		if you use `http_auth`, remember to protect only `/FreshRSS/p/i/`,
 	#		and in particular not protect `/FreshRSS/p/api/` if you would like to use the API (different login system).
-	'auth_type' => 'none',
+	'auth_type' => 'form',
 
 	# Allow or not the use of the API, used for mobile apps.
 	#	End-point is http://example.net/FreshRSS/p/api/greader.php

+ 5 - 1
lib/lib_install.php

@@ -54,8 +54,8 @@ function generateSalt() {
 
 function checkDb(&$dbOptions) {
 	$dsn = '';
+	$driver_options = null;
 	try {
-		$driver_options = null;
 		switch ($dbOptions['type']) {
 		case 'mysql':
 			include_once(APP_PATH . '/SQL/install.sql.mysql.php');
@@ -99,8 +99,12 @@ function checkDb(&$dbOptions) {
 		default:
 			return false;
 		}
+
+		$c = new PDO($dsn, $dbOptions['user'], $dbOptions['password'], $driver_options);
+		$res = $c->query('SELECT 1');
 	} catch (PDOException $e) {
 		$dsn = '';
+		syslog(LOG_DEBUG, 'FreshRSS SQL warning: ' . $e->getMessage());
 		$dbOptions['error'] = $e->getMessage();
 	}
 	$dbOptions['dsn'] = $dsn;