Installation von Tiny Tiny RSS/Installationsskript

Aus Synology Wiki
Version vom 31. März 2014, 13:35 Uhr von EL Duderino (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Installationsskript für Tiny Tiny RSS. Bezieht sich auf eine ältere Version und wird nicht mehr gepflegt.

This script is deprecated!

#!/bin/sh
#
#ttrss - post-install

# switch to directory
read -p "Give the directory of ttrss (enter '.' for current directory): " dir
if [ -z "$dir" ]; then
	echo "no dir given"
	exit 1
fi
cd "$dir"
# Safety check
if [ ! -e config.php*   ]; then
	echo "This does not look like a ttrss directory"
	echo "Exiting..."
	exit 1
fi

# check config_version
ConVer=26
CONFIG_VERSION=`awk -F ' |)' '/CONFIG_VERSION/{print $2}' config.php-dist`
if [ "$ConVer" -ne "$CONFIG_VERSION" ]; then
	echo "This script is written for a different CONFIG_VERSION of ttrss"
	exit 1
fi

#mysql
echo "Configuring mysql"

read -p "Enter the database name (will be 'ttrss_db' if you leave it empty): " db
read -p "Enter the MySQL user accessing ttRSSes database (will be 'ttrss_user' if you leave it empty): " db_user
read -p "Enter this users password (will be the users name if you leave it empty): " db_pass
read -p "Enter the full URL to TT RSSes directory (a la http://yourserver/tt-rss/): " ttrss_url

# set default names
if [ -z "$db" ]; then
	db=ttrss_db
fi
if [ -z "$db_user" ]; then
	db_user=ttrss_user
fi
if [ -z "$db_pass" ]; then
	db_pass="$db_user"
fi

# get MySQLs root passwd (refactored)
got_root=0
root_pass=""
get_MySQL_root (){
	if [ "$got_root" -ne 0 ]; then
		return 0
	fi
	read -p "Enter MySQL's root password: " root_pass
	
	/usr/syno/mysql/bin/mysql -u root -p"$root_pass" -e quit 2> /dev/null
	if [ $? -ne 0 ]; then
		echo "mysql's root password is wrong"
		get_MySQL_root
	fi
	got_root=1
	return 0
}

# create database
read -p "Should I create the MySQL database '$db'? (y/n): " input
if [ "$input" = "yes" -o "$input" = "y" ]; then
	echo "Creating database '$db'."
	
	get_MySQL_root
	/usr/syno/mysql/bin/mysql -u root -p"$root_pass" -e "CREATE DATABASE $db;"
	
	if [ $? -ne 0 ]; then
		echo "There were problems with the creation of database '$db'."
		echo "Exiting"
		exit 1
	else
		echo "Created database '$db'."
	fi
fi

#create user
read -p "Should I create the MySQL user '$db_user' and give him priviliges on '$db'? (y/n): " input
if [ "$input" = "yes" -o "$input" = "y" ]; then
	echo "Creating MySQL user '$db_user' and granting him privileges on database '$db'."
	
	get_MySQL_root
	
	#Creating the user and granting privileges.
	/usr/syno/mysql/bin/mysql -u root -p"$root_pass" -e "CREATE USER '$db_user'@'localhost' IDENTIFIED BY '$db_pass'; GRANT USAGE ON *.* TO '$db_user'@'localhost' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; GRANT ALL PRIVILEGES ON \`$db\`.* TO '$db_user'@'localhost'; FLUSH PRIVILEGES;"
	
	if [ $? -ne 0 ]; then
		echo "There were problems with the creation of user '$db_user'."
		echo "Exiting"
		exit 1
	else
		echo "Created user '$db_user'."
	fi
fi

#install schema
echo "Installing schema."
/usr/syno/mysql/bin/mysql -u "$db_user" -D "$db" -p"$db_pass" < schema/ttrss_schema_mysql.sql
if [ $? -ne 0 ]; then
	echo "There were problems installing the schema."
	echo "Exiting"
	exit 1
else
	echo "Schema installed."
fi
echo "Finished mysql configuration."

#give nobody ownership of some directories.
for dir in "lock" "cache" "feed-icons"; do
	chown -R nobody:nobody "$dir"
done

#create config file
echo "Creating config.php"
cp -p config.php-dist config.php

sed -i -e "s#[ 	]*define('DB_TYPE',[ 	]*\".*\");.*#	define('DB_TYPE', \"mysql\");#" config.php
sed -i -e "s#[ 	]*define('DB_USER',[ 	]*\".*\");.*#	define('DB_USER', \"$db_user\");#" config.php
sed -i -e "s#[ 	]*define('DB_NAME',[ 	]*\".*\");.*#	define('DB_NAME', \"$db\");#" config.php
sed -i -e "s#[ 	]*define('DB_PASS',[ 	]*\".*\");.*#	define('DB_PASS', \"$db_pass\");#" config.php
sed -i -e "s#[ 	]*define('SELF_URL_PATH',[ 	]*'.*');.*#	define('SELF_URL_PATH', '$ttrss_url');#" config.php

echo "Finished!"