diff options
author | M.Gergo | 2018-07-06 11:13:06 +0200 |
---|---|---|
committer | M.Gergo | 2018-07-06 11:13:06 +0200 |
commit | 50310b0e4513ee3fcce67351ae61e8fff851130e (patch) | |
tree | fd2e4a73f94a61cd5040f863579149ed97c701a3 /mayor-installer-mod | |
parent | 630f5353ed7a264b0fa17badd62f71a02265a4f7 (diff) | |
download | mayor-50310b0e4513ee3fcce67351ae61e8fff851130e.tar.gz mayor-50310b0e4513ee3fcce67351ae61e8fff851130e.zip |
Mappák átnevezve: mayor --> mayor-mod; mayor-installer --> mayor-installer-mod; mayor-installer-fcgi --> mayor-installer-fcgi-mod
Diffstat (limited to 'mayor-installer-mod')
-rwxr-xr-x | mayor-installer-mod/install.d/05checkdeb.sh | 106 | ||||
-rwxr-xr-x | mayor-installer-mod/install.d/10getsource.sh | 79 | ||||
-rwxr-xr-x | mayor-installer-mod/install.d/15createconfig.sh | 43 | ||||
-rwxr-xr-x | mayor-installer-mod/install.d/20mysql.sh | 28 | ||||
-rwxr-xr-x | mayor-installer-mod/install.d/25apache.sh | 67 | ||||
-rwxr-xr-x | mayor-installer-mod/install.d/30php.sh | 40 | ||||
-rwxr-xr-x | mayor-installer-mod/install.d/35createdatabases.sh | 132 | ||||
-rwxr-xr-x | mayor-installer-mod/install.d/40binary.sh | 49 | ||||
-rwxr-xr-x | mayor-installer-mod/install.d/45intezmeny.sh | 70 | ||||
-rwxr-xr-x | mayor-installer-mod/install.d/50linker.sh | 58 | ||||
-rwxr-xr-x | mayor-installer-mod/install.d/55tex.sh | 20 | ||||
-rwxr-xr-x | mayor-installer-mod/install.d/60portal.sh | 119 | ||||
-rw-r--r-- | mayor-installer-mod/log/mayor-installer.rev | 1 | ||||
-rwxr-xr-x | mayor-installer-mod/setup | 34 |
14 files changed, 846 insertions, 0 deletions
diff --git a/mayor-installer-mod/install.d/05checkdeb.sh b/mayor-installer-mod/install.d/05checkdeb.sh new file mode 100755 index 00000000..2488d60a --- /dev/null +++ b/mayor-installer-mod/install.d/05checkdeb.sh @@ -0,0 +1,106 @@ +#!/bin/bash +# +DEBIAN=false; +UBUNTU=false; +if [ $(which lsb_release || echo "notinstalled") == "notinstalled" ] +then + ISSUE=$(cat /etc/issue | cut -d " " -f 1) + if [ "x${ISSUE}" == "xDebian" ]; then + DEBIAN=true; + RELEASE=$(cat /etc/issue | cut -d " " -f 3) + elif [ "x${ISSUE}" == "xUbuntu" ]; then + UBUNTU=true; + RELEASE=$(cat /etc/issue | cut -d " " -f 2) + fi +else + DISTRIBUTOR=$(lsb_release -i -s) + RELEASE=$(lsb_release -r -s) + if [ "x${DISTRIBUTOR}" == "xDebian" ]; then + DEBIAN=true; + elif [ "x${DISTRIBUTOR}" == "xUbuntu" ]; then + UBUNTU=true; + fi +fi +echo "Debian:" ${DEBIAN} +echo "Ubuntu:" ${UBUNTU} +echo "Version:" ${RELEASE} + +TEST=$(grep contrib /etc/apt/sources.list) +if [ "$TEST" == "" ] +then + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + echo "Az apt sources.list módosítása szükséges!" + if [ DEBIAN ]; then + echo "Debian Jessie (8) esetén például: + deb http://ftp.hu.debian.org/debian/ jessie main contrib non-free + deb http://security.debian.org/ jessie/updates main contrib non-free + deb http://ftp.hu.debian.org/debian/ jessie-updates main contrib non-free + +Debian 9 esetén például: + deb http://ftp.hu.debian.org/debian/ stretch main contrib non-free + deb http://security.debian.org/debian-security stretch/updates main contrib non-free + deb http://ftp.hu.debian.org/debian/ stretch-updates main contrib non-free + \n" + + read -n 1 -p "Hozzáadhatom? (egyelőre csak Debian9 esetén működik) (i/N)" -s DO + if [ "$DO" != "i" ]; then echo -e "\nA hozzáadást kihagytam.\n"; exit 255; fi + + if [[ "x${RELEASE}" =~ ^x9.* ]]; then + echo -e "#mayor miatt is: +deb http://ftp.hu.debian.org/debian/ stretch contrib non-free +deb http://security.debian.org/debian-security stretch/updates contrib non-free +deb http://ftp.hu.debian.org/debian/ stretch-updates contrib non-free" >> /etc/apt/sources.list + + fi + echo -e "\n ---- csomaglista frissítése ---- \n" + apt update ## frisítés + echo -e "\n ------------- kész ------------- \n" + + fi +# exit 255; +fi + +if [[ "x${RELEASE}" =~ ^x9.* ]] +then + PKGS="apache2 php libapache2-mod-php php-json php-mysql php-ldap php-mbstring php-mcrypt php-curl mariadb-server recode texlive texlive-fonts-extra texlive-latex-extra texlive-binaries texlive-xetex ntp wget ssl-cert ssh pwgen texlive-lang-european" +else + PKGS="apache2 php5 libapache2-mod-php5 php5-json php5-mysqlnd php5-ldap php5-mcrypt php5-curl mysql-server recode texlive texlive-fonts-extra texlive-latex-extra texlive-binaries texlive-xetex ttf-mscorefonts-installer ntp wget ssl-cert ssh pwgen texlive-lang-european texlive-lang-hungarian" +fi + +if [ "$1" == "--no-deb" ]; then + exit 1 +fi + +cat <<EOF +A rendszer futásához szükséges csomagok ellenőrzése + +Ebben a lépésben ellenőrizheti és telepítheti a rendszer működéséhez +szükséges Debian/Ubuntu csomagokat: + +$PKGS + +EOF + +read -n 1 -p "Ellenőrizzem a deb csomagokat? (i/N)" -s DO +if [ "$DO" != "i" ]; then echo -e "\nA függőségek ellenőrzését kihagytam.\n"; exit 1; fi + +echo -e "\nFüggőségek ellenőrzése (dpkg): " +MISSING="" +for pkg in $PKGS +do + echo -n " $pkg ... " + STAT=$(dpkg -l $pkg | grep $pkg | cut -f 1 -d ' ') + if [ "$STAT" == "ii" ]; then + echo ok + else + echo "még nincs telepítve" + MISSING="$MISSING $pkg" + fi +done +if [ "$MISSING" != "" ]; then + echo Még nem telepített csomagok: $MISSING + read -n 1 -p "Telepítsem? (i/N)" -s DO + if [ "$DO" != "i" ]; then echo " ok, kiléptem..."; exit 1; fi + apt update + apt -m -f install $MISSING +fi diff --git a/mayor-installer-mod/install.d/10getsource.sh b/mayor-installer-mod/install.d/10getsource.sh new file mode 100755 index 00000000..19c186dc --- /dev/null +++ b/mayor-installer-mod/install.d/10getsource.sh @@ -0,0 +1,79 @@ +#!/bin/bash +# + +cat <<EOF +A forrás csomagok letöltése és kicsomagolása + +Most letöltheti és kicsomagolhatja a forrás állományokat. +A telepítendő rendszer gyökérkönyvtára: + $MAYORDIR +lesz. + +A telepítő mindig az aktuális legfrissebb változatot tölti le. + +Amennyiben egy korábbi változatot szeretne telepíteni (pl. korábbi +mentés helyreállításához), úgy töltse le a szükséges állományokat +(mayor-base-rev????.tgz, mayor-naplo-rev????.tgz) és helyezze el +őket a $TMPDIR könyvtárban. Ezek után folytassa a telepítést a +csomagok letöltésének kihagyásával. + +EOF + +#read -n 1 -p "Letöltsem a forrás csomagokat? (i/N)" -s DO + +if [ "$MAYORDIR" = "" ]; then echo "A MAYORDIR változó üres. Kilépek."; exit 1; fi +if [ "$TMPDIR" = "" ]; then echo "A TMPDIR változó üres. Kilépek."; exit 1; fi + + +MENU=$( /bin/ls -1 $TMPDIR/mayor-base-*.tgz 2>/dev/null | sed 's/.*-\([^-]*\)\.tgz$/\1/' ) + +DO=n +if [ "$MENU" == '' ]; then + DO=i +else + echo " 0 Letöltés mindenképpen" + echo "${MENU}" | sed 's/.*-\([^-]*\)\.tgz$/\1/' | nl + read -n1 -p 'Melyiket telepítsem? ' SEL; echo + + if [ "$SEL" == 0 ]; then + DO=i + else + SELECT=$( echo "${MENU}" | sed -n ${SEL}p ) + + MAYORBASE="$TMPDIR/mayor-base-$SELECT.tgz" + MAYORNAPLO="$TMPDIR/mayor-naplo-$SELECT.tgz" + fi +fi + +if [ "$DO" == "i" ]; then + MAYORBASE="$TMPDIR/mayor-base-current.tgz" + MAYORNAPLO="$TMPDIR/mayor-naplo-current.tgz" + + echo -e "\nForrások letöltése:" + cd $TMPDIR + rm -f mayor-base-current.tgz + rm -f mayor-naplo-current.tgz + wget "http://www.mayor.hu/download/$VERSION/mayor-base-current.tgz" + wget "http://www.mayor.hu/download/$VERSION/mayor-naplo-current.tgz" +else + echo -e "\nA forráscsomagok letöltését kihagytam.\n" +fi + +read -n 1 -p "Telepítsem a forrás csomagokat? (i/N)" -s DO +if [ "$DO" != "i" ]; then echo -e "\nA forráscsomagok telepítését kihagytam.\n"; exit 1; fi + +echo -n -e "\nRendszer könyvtár: " +if [ ! -e $MAYORDIR ]; then + mkdir -p $MAYORDIR +fi +if [ ! -e "/var/mayor" ]; then + ln -s $MAYORDIR /var/mayor +fi +echo $MAYORDIR + +echo -e -n "Források kicsomagolása... " +cd $MAYORDIR +tar xfz "$MAYORBASE" +tar xfz "$MAYORNAPLO" +echo "ok." + diff --git a/mayor-installer-mod/install.d/15createconfig.sh b/mayor-installer-mod/install.d/15createconfig.sh new file mode 100755 index 00000000..8d035fe1 --- /dev/null +++ b/mayor-installer-mod/install.d/15createconfig.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# + +cat <<EOF +A konfigurációs állományok létrehozása + +A MaYoR konfigurációs állományait a minták alapján készítheti el. +A konfigurációs állományok nélkül a telepítés nem fut le helyesen, ezért ezt +a lépést akkor hagyja csak ki, ha ezeket már sajátkezűleg elkészítette! + +EOF + +read -n 1 -p "Létrehozzam a minták alapján a konfigurációs állományokat? (i/N)" -s DO +if [ "$DO" != "i" ]; then echo -e "\nA konfigurációs állományokat nem hoztam létre.\n"; exit 1; fi + +if [ "$MAYORDIR" = "" ]; then echo "A MAYORDIR változó üres. Kilépek."; exit 1; fi +PWGEN=$(which pwgen) +if [ "${PWGEN}" = "" ]; then echo "A pwgen szoftver nincs telepítve."; exit 1; fi + +echo -e "\nKonfigurációs állományok létrehozása:" +for file in main-config.php parent-conf.php private-conf.php public-conf.php +do + if [ -e "${MAYORDIR}/config/${file}" ]; then echo " $file létezik."; else + echo -n " $file.example --> " + PW=(pwgen -s1 32) + cat "$MAYORDIR/config/$file.example" | sed s/%SQLPW%/$PW/ > "$MAYORDIR/config/$file" + echo $file + fi +done + +echo -n " module-naplo/config.php.example --> " +PW=$(pwgen -s1 32) +PWREAD=$(pwgen -s1 32) +if [ -e "$MAYORDIR/config/module-naplo/config.php" ]; then echo " module-naplo/config.php létezik."; else + cat "$MAYORDIR/config/module-naplo/config.php.example" | sed -e s/%SQLPW%/$PW/ -e s/%SQLPWREAD%/$PWREAD/ > "$MAYORDIR/config/module-naplo/config.php" + echo "module-naplo/config.php" +fi + +if [ -e "$MAYORDIR/config/skin-classic/naplo-config.php" ]; then echo " skin-classic/naplo-config.php létezik."; else + echo -n " skin-classic/naplo-config.php.example --> " + cp $MAYORDIR/config/skin-classic/naplo-config.php.example $MAYORDIR/config/skin-classic/naplo-config.php + echo "config/skin-classic/naplo-config.php" +fi diff --git a/mayor-installer-mod/install.d/20mysql.sh b/mayor-installer-mod/install.d/20mysql.sh new file mode 100755 index 00000000..2979f728 --- /dev/null +++ b/mayor-installer-mod/install.d/20mysql.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# + +cat <<EOF +MySQL szerver beállításai + +A rendszer adatbázisai UTF-8 kódolásúak, ennek megfelelően kell +beállítani a MySQL-t is. A beállításokat a /etc/mysql/conf.d +alá helyezi el a telepítő utf8.cnf néven, majd újraindítja az +adatbázis szervert. + +EOF + +read -n 1 -p "A MySQL szerver beállításait módosíthatom? (i/N)" -s DO +if [ "$DO" != "i" ]; then echo -e "\nA MySQL beállításait nem módosítottam.\n"; exit 1; fi + +echo -e "\nMySQL beállítások" +echo -n " utf8.cnf ... " +cp -f $MAYORDIR/install/base/mysql/utf8.cnf /etc/mysql/conf.d +echo ok +/etc/init.d/mysql restart + +if [ "x${RELEASE}" == "x9" ] +then + echo -e "\nMariaDB/MySQL beállítások" + echo -n " futtatom a mysql_Secure_installation scriptet: " + mysql_secure_installation +fi diff --git a/mayor-installer-mod/install.d/25apache.sh b/mayor-installer-mod/install.d/25apache.sh new file mode 100755 index 00000000..7019d608 --- /dev/null +++ b/mayor-installer-mod/install.d/25apache.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# + +cat <<EOF +Az Apache (2) webszerver beállítása + +Az elektronikus napló használata feltétlenül HTTPS protokollt igényel. +Ehhez engedélyeznie kell az ssl modul használatát, és tanusítványra is +szükség van. A telepítő "self-signed" tanusítványt generál (ehhez meg kell +adnia a szerver teljes domain nevét), valamint engedélyezi a rewrite modul +használatát is, végül létrehoz és engedélyez mayor néven egy site +konfigurációt is. + +EOF + +read -n 1 -p "Az Apache web-szerver módosítható? (i/N)" -s DO +if [ "$DO" != "i" ]; then echo -e "\nAz Apache web szerver beállításait nem módosítottam.\n"; exit 1; fi + +if [ "$MAYORDIR" = "" ]; then echo "A MAYORDIR változó üres. Kilépek."; exit 1; fi + +echo -e "\nApache beállítások" + + +echo " Tanusítvány generálás" +if [ ! -e /etc/apache2/ssl ]; then + mkdir /etc/apache2/ssl +fi +make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem + +echo " Szükséges modulok ellenőrzése:" +echo -n " - ModSSL engedélyezése ... " +if [ ! -e /etc/apache2/mods-enabled/ssl.load ]; then + a2enmod ssl > /dev/null + echo ok +else + echo "már engedélyezett" +fi + echo -n " - ModReWrite engedélyezése ... " +if [ ! -e /etc/apache2/mods-enabled/rewrite.load ]; then + a2enmod rewrite > /dev/null + echo ok +else + echo "már engedélyezett" +fi +echo "ok." + +SERVERNAME="" +while [ "$SERVERNAME" = "" ] +do + read -p " A web szerver teljes domain neve (pl: mayor.tesztsuli.hu): " SERVERNAME +done + +#cat $MAYORDIR/install/base/apache2/mayor.conf | sed "s/ServerName your.mayor.server.hu/ServerName $SERVERNAME/" > /etc/apache2/sites-available/mayor.conf + +# A 2.4-es apache esetén módosítani kell a konfig állományt! +APACHE_VERSION=$(dpkg -l apache2 | grep apache2 | tr -s ' ' | cut -d ' ' -f 3 | cut -d '-' -f 1 | sed 's/\..$//') +cat $MAYORDIR/install/base/apache2/mayor.conf | sed \ + -e "s/ServerName your.mayor.server.hu/ServerName $SERVERNAME/" > /etc/apache2/sites-available/mayor.conf + + +if [ ! -e /etc/apache2/sites-enabled/mayor.conf ]; then + echo " A mayor site engedélyezése" + a2ensite mayor.conf > /dev/null +fi + +echo " A web-szerver újraindítása" +/etc/init.d/apache2 restart diff --git a/mayor-installer-mod/install.d/30php.sh b/mayor-installer-mod/install.d/30php.sh new file mode 100755 index 00000000..5f751018 --- /dev/null +++ b/mayor-installer-mod/install.d/30php.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# + +cat <<EOF +A PHP memória limit beállítása + +Az alapértelmezett 16MB-os memória a rendszer futtatásához a +legtöbb esetben elég, de egyes esetekben (például a nyomtatványok +generálásakor) kevésnek bizonyul. Ezért a telepítő ezt a küszöböt +256MB-ra emeli. Az eredeti php.ini állományról másolat készül +php.ini.mayor néven. + +EOF + +read -n 1 -p "A php.ini-t módosíthatom? (i/N)" -s DO +if [ "$DO" != "i" ]; then echo -e "\nNem módosítom a php.ini-t.\n"; exit 1; fi + + +if [[ "x${RELEASE}" =~ ^x9.* ]]; then + + if [ ! -e /etc/php/7.0/apache2/php.ini.mayor ]; then + cp /etc/php/7.0/apache2/php.ini /etc/php/7.0/apache2/php.ini.mayor + fi + cat /etc/php/7.0/apache2/php.ini.mayor | sed "s/memory_limit/memory_limit = 256M ; old value: /" > /etc/php/7.0/apache2/php.ini + echo -e "256M" + +else + + echo -n " A PHP memória limit beállítása: " + if [ ! -e /etc/php5/apache2/php.ini.mayor ]; then + cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.mayor + fi + + cat /etc/php5/apache2/php.ini.mayor | sed "s/memory_limit/memory_limit = 256M ; old value: /" > /etc/php5/apache2/php.ini + echo -e "256M" +fi + +echo " Az web szerver újraindítása" +/etc/init.d/apache2 restart + diff --git a/mayor-installer-mod/install.d/35createdatabases.sh b/mayor-installer-mod/install.d/35createdatabases.sh new file mode 100755 index 00000000..718ca3c2 --- /dev/null +++ b/mayor-installer-mod/install.d/35createdatabases.sh @@ -0,0 +1,132 @@ +#!/bin/bash +# + +cat <<EOF +Adatbázisok létrehozása + +A felhasználói azonosítók és csoportok adatainak tárolásához, a +munkamenetek adminisztrálásához és a napló modul adatainak tárolásához +szükséges adatbázisok létrehozása következik. + +Ez a lépés csak a szükséges konfigurációs állományok megléte +esetén fut le helyesen! + +A telepítő először elkészíti a betöltendő SQL utasításokat tartalmazó +állományokat a $TMPDIR/mysql alá, majd - amennyiben engedélyezzük - +be is tölti az állományokat. + +EOF + +read -n 1 -p "A konfigurációs állományok alapján létrehozhatom az adatbázisokat? (i/N)" -s DO +if [ "$DO" != "i" ]; then echo -e "\nAz adatbázisok létrehozását kihagyjuk.\n"; exit 1; fi + +if [ "$MAYORDIR" = "" ]; then echo "MAYORDIR változó üres. Kilépek!"; exit 1; fi + +echo -n -e "\n Config fileok ellenőrzése..." + +if [ ! -e "$MAYORDIR/log" ]; then mkdir $MAYORDIR/log; fi +if [ ! -e /var/log/mayor ]; then ln -s $MAYORDIR/log /var/log/mayor; fi +if [ ! -e /etc/mayor ]; then ln -s $MAYORDIR/config /etc/mayor; fi +chmod +x $MAYORDIR/bin/mayor + +FILES="$MAYORDIR/config/parent-conf.php $MAYORDIR/config/private-conf.php $MAYORDIR/config/main-config.php $MAYORDIR/config/module-naplo/config.php $MAYORDIR/install/base/mysql/mayor-login.sql $MAYORDIR/install/base/mysql/mayor-auth.sql $MAYORDIR/install/base/mysql/private-users.sql $MAYORDIR/install/module-naplo/mysql/naplo-users.sql" +for f in $FILES +do + if [ ! -e $f ]; then echo -e "\n\r Nincs meg a szükséges ${f} config file!"; exit 1; else echo -n '.'; fi +done; +echo " kész."; + +if [ ! -e $MAYORDIR/log/mayor-base.rev ]; then + echo " Hiányzó mayor-base.rev file"; + if [ -e $MAYORDIR/log/revision ]; + then + IREV=$(cat $MAYORDIR/log/revision) + else + IREV=""; + fi +else + cp $MAYORDIR/log/mayor-base.rev $MAYORDIR/log/revision + IREV=$(cat $MAYORDIR/log/revision) +fi + +echo " Az aktuális revision: ${IREV}" + +if [ "$IREV" = "" ] +then + echo " Nincs revision file és helyreállítani sem tudom. Kilépek!" + exit 1; +fi + +echo " SQL fileok létrehozása... " +mkdir -p $TMPDIR/mysql +cd $TMPDIR/mysql +DB=$(grep db $MAYORDIR/config/main-config.php | sed -e "s/$.*=\ *['|\"]//g" -e "s/['|\"];//g") +USER=$(grep user $MAYORDIR/config/main-config.php | sed -e "s/$.*=\ *['|\"]//g" -e "s/['|\"];//g") +PW=$(grep pw $MAYORDIR/config/main-config.php | sed -e "s/$.*=\ *['|\"]//g" -e "s/['|\"];//g") +cat $MAYORDIR/install/base/mysql/mayor-login.sql | sed -e "s/%MYSQL_LOGIN_DB%/$DB/g" -e "s/%MYSQL_LOGIN_USER%/$USER/g" \ + -e "s/%MYSQL_LOGIN_PW%/$PW/g" > mayor-login.sql +DB=$(grep db $MAYORDIR/config/parent-conf.php | sed -e "s/^.*>\ *['|\"]//g" -e "s/['|\"],//g") +USER=$(grep user $MAYORDIR/config/parent-conf.php | sed -e "s/^.*>\ *['|\"]//g" -e "s/['|\"],//g") +PW=$(grep pw $MAYORDIR/config/parent-conf.php | sed -e "s/^.*>\ *['|\"]//g" -e "s/['|\"],//g") +cat $MAYORDIR/install/base/mysql/mayor-auth.sql | sed -e "s/%MYSQL_AUTH_DB%/$DB/g" -e "s/%MYSQL_AUTH_USER%/$USER/g" \ + -e "s/%MYSQL_AUTH_PW%/$PW/g" > mayor-parent.sql +DB=$(grep db $MAYORDIR/config/private-conf.php | sed -e "s/^.*>\ *['|\"]//g" -e "s/['|\"],//g") +USER=$(grep 'mysql user' $MAYORDIR/config/private-conf.php | sed -e "s/^.*>\ *['|\"]//g" -e "s/['|\"],//g") +PW=$(grep pw $MAYORDIR/config/private-conf.php | sed -e "s/^.*>\ *['|\"]//g" -e "s/['|\"],//g") +cat $MAYORDIR/install/base/mysql/mayor-auth.sql | sed -e "s/%MYSQL_AUTH_DB%/$DB/g" -e "s/%MYSQL_AUTH_USER%/$USER/g" \ + -e "s/%MYSQL_AUTH_PW%/$PW/g" > mayor-private.sql +DB=$(grep db $MAYORDIR/config/module-naplo/config.php | grep naplo_base | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g") +USER=$(egrep 'userWrite.*=' $MAYORDIR/config/module-naplo/config.php | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g") +USERREAD=$(egrep 'userRead.*=' $MAYORDIR/config/module-naplo/config.php | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g") +PW=$(egrep 'pwWrite.*=' $MAYORDIR/config/module-naplo/config.php | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g") +PWREAD=$(egrep 'pwRead.*=' $MAYORDIR/config/module-naplo/config.php | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g") +cat $MAYORDIR/install/module-naplo/mysql/base.sql | sed -e "s/%MYSQL_NAPLO_DB%/$DB/g" -e "s/%MYSQL_NAPLO_USER%/$USER/g" \ + -e "s/%MYSQL_NAPLO_PW%/$PW/g" -e "s/%MYSQL_NAPLO_USER_READ%/$USERREAD/g" \ + -e "s/%MYSQL_NAPLO_PW_READ%/$PWREAD/g" > base.sql +DB=$(grep db $MAYORDIR/config/private-conf.php | sed -e "s/^.*>\ *['|\"]//g" -e "s/['|\"],//g") + +cat $MAYORDIR/install/base/mysql/private-users.sql | sed -e "s/%MYSQL_PRIVATE_DB%/$DB/g" > private-users.sql +cat $MAYORDIR/install/module-naplo/mysql/naplo-users.sql | sed -e "s/%MYSQL_PRIVATE_DB%/$DB/g" > naplo-users.sql + +echo " A létrejött sql fileok:" +FILES=$(ls *.sql) +for f in $FILES +do + echo " * ${f}"; +done; +read -n 1 -p "Telepíthetem? (i/N)" -s DO +if [ "$DO" != "i" ]; then echo " ok, kiléptem..."; exit 1; fi +echo -e "\n" + +read -p " A mysql root jelszó (a begépelt szöveg nem látszik!): " -s MYSQLROOTPW + + +if [ ! -e $MAYORDIR/config/main.conf ]; then + cat $MAYORDIR/config/main.conf.example | sed s/%SQLPW%/$MYSQLROOTPW/ > $MAYORDIR/config/main.conf +# BDIR=$(echo $MAYORDIR | sed -e 's:\/:\\\/:g') +# sed -e "s/BASEDIR=\"\/var\/mayor\"/BASEDIR=\"$BDIR\"/g" -i $MAYORDIR/config/main.conf + chmod 600 $MAYORDIR/config/main.conf +fi + +if [ "$MYSQLROOTPW" = "" ]; +then + MYSQLROOTPWSTR=""; +else + MYSQLROOTPWSTR="-p$MYSQLROOTPW --user=root" +fi + +cat /tmp/mysql/mayor-login.sql | mysql $MYSQLROOTPWSTR --default-character-set=utf8 +cat /tmp/mysql/mayor-parent.sql | mysql $MYSQLROOTPWSTR --default-character-set=utf8 +cat /tmp/mysql/mayor-private.sql | mysql $MYSQLROOTPWSTR --default-character-set=utf8 +cat /tmp/mysql/base.sql | mysql $MYSQLROOTPWSTR --default-character-set=utf8 +cat /tmp/mysql/private-users.sql | mysql $MYSQLROOTPWSTR --default-character-set=utf8 +cat /tmp/mysql/naplo-users.sql | mysql $MYSQLROOTPWSTR --default-character-set=utf8 + +echo -e "\n" +echo "A telepítés végeztével beléphetsz a webes felületen! +========================================================= + user: mayoradmin +========================================================= + jelszó: jelszo +========================================================= +" diff --git a/mayor-installer-mod/install.d/40binary.sh b/mayor-installer-mod/install.d/40binary.sh new file mode 100755 index 00000000..e0f0598b --- /dev/null +++ b/mayor-installer-mod/install.d/40binary.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# + +cat <<EOF +Karbantartást segítő szkriptek + +A telepítő szimbolikus linket készít a /usr/local/sbin-be, hogy +a "mayor update" illettve "mayor backup" parancsokat bárhonnan +kiadhassuk, majd az /etc/cron.daily könyvtár alá is link készül, +hogy a mentések és frissítések rendszeresen lefuthassanak. + +EOF + +read -n 1 -p "Karbantartást segítő scriptek telepítése mehet? (i/N)" -s DO +if [ "$DO" != "i" ]; then echo -e "\nNem telepítjük a szkripteket.\n"; exit; fi + +if [ "$MAYORDIR" = "" ]; then echo -e "\nMAYORDIR változó üres. Kilépek!"; exit 1; fi +echo -e "\n * Webszerver userének ellenőrzése, beállítása" +if [ "$WEB_SERVER_USER" == "" ]; then + source /etc/apache2/envvars + WEB_SERVER_USER=$APACHE_RUN_GROUP +fi +if [ "$WEB_SERVER_USER" == "" ]; then + echo -e "!!! Fatális hiba !!! A WEB_SERVER_USER változó üres. Kilépek!"; exit 1; +else + echo -e " * WEB_SERVER_USER=" $WEB_SERVER_USER +fi + + # A karbantartást segítő scriptek: + if [ ! -e /usr/local/sbin/mayor ]; then + ln -s $MAYORDIR/bin/mayor /usr/local/sbin/mayor; + echo -e "\n Az /usr/local/sbin/ alá létrejött a mayor szimbolikus link."; + fi + if [ ! -e $MAYORDIR/config/main.conf ]; then cp $MAYORDIR/config/main.conf.example $MAYORDIR/config/main.conf; fi + # A BASEDIR változó pontosítása + BDIR=$(echo $MAYORDIR | sed -e 's:\/:\\\/:g') + sed -e "s/BASEDIR=\"\/var\/mayor\"/BASEDIR=\"$BDIR\"/g" -i $MAYORDIR/config/main.conf + # A webserver_user lecserélése, ha nem www-data lenne + sed -e "s/WEB_SERVER_USER=\"www-data\"/WEB_SERVER_USER=\"$WEB_SERVER_USER\"/g" -i $MAYORDIR/config/main.conf + # A konfig könyvtár védelme + chown -R $WEB_SERVER_USER $MAYORDIR/config/ + chmod 700 $MAYORDIR/config/ + # A main.conf védelme + chown root $MAYORDIR/config/main.conf + chmod 600 $MAYORDIR/config/main.conf + if [ ! -e /etc/cron.daily/mayor ]; then + ln -s $MAYORDIR/bin/etc/cron.daily/mayor /etc/cron.daily; + echo -e "\n Az /etc/cron.daily/ alá létrejött a mayor szimbolikus link."; + fi diff --git a/mayor-installer-mod/install.d/45intezmeny.sh b/mayor-installer-mod/install.d/45intezmeny.sh new file mode 100755 index 00000000..c41dda18 --- /dev/null +++ b/mayor-installer-mod/install.d/45intezmeny.sh @@ -0,0 +1,70 @@ +#!/bin/bash +# + +cat <<EOF +Intézmény létrehozása + +A telepítő segítségével létrehozhatjuk az intézmény adatbázisát. +(Ezt a lépést a webes felületen is végezhetnénk.) + +A telepítő létrehozza az + * intézmény konfigurációs állományát, + * az intézmény adatbázisát és + * bejegyzését a mayor_naplo.intezmeny táblába. + +Ehhez meg kell adnia az intézmény OM kódját, nevét és rövid nevét +(mint vmg, njszki, fasori, stb). + +EOF + +read -n 1 -p "Létrehozzam az intézményt? (i/N)" -s DO +if [ "$DO" != "i" ]; then echo -e "\nNem hoztam létre az intézményt.\n"; exit; fi + +if [ "$MAYORDIR" = "" ]; then echo "MAYORDIR változó üres. Kilépek!"; exit 1; fi + +echo -e "\n" +OMKOD="" +while [ "$OMKOD" = "" ]; do + read -p "Kérem az intézmény OM kódját: " OMKOD + OMKOD=$(echo ${OMKOD} | sed "s/[^[0-9]]*//g") +done +read -p "Kérem az intézmény nevét: " INTEZMENYNEV +ROVID="" +while [ "$ROVID" = "" ]; do + read -p "Kérem az intézmény rövid nevét (néhány karakteres rövidítés, mint \"vmg\", \"illyes\"...: " ROVID + ROVID=$(echo ${ROVID} | sed "s/[^[:alnum:]]*//g" | sed "y, űáéúőóüöíŰÁÉÚŐÓÜÖÍ,_uaeuoouoiUAEUOOUOI," | sed 's/\(.*\)/\L\1/') +done +echo -e "\nOM: ${OMKOD}; Rövidnév: ${ROVID}\n" + +echo -n " Az intézmény konfigurációs állománya: " +cp "$MAYORDIR/config/module-naplo/config-pl.php.example" "$MAYORDIR/config/module-naplo/config-$ROVID.php" +echo "$MAYORDIR/config/module-naplo/config-$ROVID.php" + +DB=$(grep db $MAYORDIR/config/module-naplo/config.php | grep naplo_base | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g") +USER=$(egrep 'userWrite.*=' $MAYORDIR/config/module-naplo/config.php | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g") +USERREAD=$(egrep 'userRead.*=' $MAYORDIR/config/module-naplo/config.php | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g") + +echo -e "\nAz adatbázis létrehozása\n" +cat <<EOF > $TMPDIR/mysql/intezmeny.sql + +insert into $DB.intezmeny (OMKod, rovidNev, nev, alapertelmezett) VALUES ('$OMKOD','$ROVID','$INTEZMENYNEV',1); +create database intezmeny_$ROVID character set utf8 collate utf8_hungarian_ci; +grant select,execute on intezmeny_$ROVID.* to '$USERREAD'@'localhost'; +grant all on intezmeny_$ROVID.* to '$USER'@'localhost'; +use intezmeny_$ROVID; + +EOF + +if [ "$MYSQLROOTPW" == "" ]; then + read -p " A mysql root jelszó -ha van!- (a begépelt szöveg nem látszik!): " -s MYSQLROOTPW +fi +#Ezt miért is akarom kiírni? +#echo $MYSQLROOTPW - a jelszó +if [ "$MYSQLROOTPW" = "" ]; +then + MYSQLROOTPWSTR=""; +else + MYSQLROOTPWSTR="-p$MYSQLROOTPW --user=root" +fi + +cat $TMPDIR/mysql/intezmeny.sql $MAYORDIR/install/module-naplo/mysql/intezmeny.sql | mysql $MYSQLROOTPWSTR --default-character-set=utf8 $INTEZMENYDB diff --git a/mayor-installer-mod/install.d/50linker.sh b/mayor-installer-mod/install.d/50linker.sh new file mode 100755 index 00000000..73887902 --- /dev/null +++ b/mayor-installer-mod/install.d/50linker.sh @@ -0,0 +1,58 @@ +#!/bin/bash +# +cat <<EOF +Linkek létrehozása a parent és public policyben + +EOF + +read -n 1 -p "Létrehozzam a linkeket? (i/N)" -s DO +if [ "$DO" != "i" ]; then echo -e "\nNem hoztam létre.\n"; exit; fi +source $MAYORDIR/config/main.conf +source $MAYORDIR/update/linkme.sh + +echo -e " * Webszerver userének ellenőrzése, beállítása" +if [ "$WEB_SERVER_USER" == "" ]; then + source /etc/apache2/envvars + WEB_SERVER_USER=$APACHE_RUN_GROUP +fi +if [ "$WEB_SERVER_USER" == "" ]; then + echo -e "!!! Fatális hiba !!! A WEB_SERVER_USER változó üres. Kilépek!"; exit 1; +else + echo -e " * WEB_SERVER_USER=" $WEB_SERVER_USER +fi +if [ "$MAYORDIR" == "" ]; then + echo "!!! MAYORDIR változó üres. Kilépek!"; exit 1; +else + echo -e "\n * A szükséges jogosultságok beállítása ($MAYORDIR/):" + if [ -e "$MAYORDIR/download" ]; then chown -R $WEB_SERVER_USER $MAYORDIR/download; fi + if [ -e "$MAYORDIR/www/wiki/conf" ]; then chown -R $WEB_SERVER_USER $MAYORDIR/www/wiki/conf; fi + if [ -e "$MAYORDIR/www/wiki/data" ]; then chown -R $WEB_SERVER_USER $MAYORDIR/www/wiki/data; fi +fi + +echo -e " * Szimbolikus linkek ellenőrzése/létrehozása" +POLICIES="parent public" +for POLICY in $POLICIES; do + eval "LIST=\$${POLICY}Link" + for f in $LIST; do + DIR=$(echo $f | cut -d / -f 1-2) + if [ ! -d $MAYORDIR/www/policy/$POLICY/$DIR ]; then + echo " Könyvtár: $MAYORDIR/www/policy/$POLICY/$DIR" + mkdir -p $MAYORDIR/www/policy/$POLICY/$DIR + else + echo " [OK] A könyvtár már létezik: $MAYORDIR/www/policy/$POLICY/$DIR" + fi + FILES="$f-pre.php $f.php" + for file in $FILES; do + if [ ! -e $MAYORDIR/www/policy/$POLICY/$file ]; then + if [ -f $MAYORDIR/www/policy/private/$file ]; then + echo " $MAYORDIR/www/policy/private/$file --> $MAYORDIR/www/policy/$POLICY/$file" + ln -s $MAYORDIR/www/policy/private/$file $MAYORDIR/www/policy/$POLICY/$file + else + echo " Hiányzó file: $MAYORDIR/www/policy/private/$file" + fi + else + echo " [OK] A file már létezik: " $file + fi + done + done +done diff --git a/mayor-installer-mod/install.d/55tex.sh b/mayor-installer-mod/install.d/55tex.sh new file mode 100755 index 00000000..87bcbc5f --- /dev/null +++ b/mayor-installer-mod/install.d/55tex.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# +cat <<EOF +A mayor.fmt előllítása... + +EOF + +cd $MAYORDIR/print/module-naplo/tex/ +fmtutil-sys --cnffile $MAYORDIR/print/module-naplo/tex/mayor.cnf --fmtdir $MAYORDIR/print/module-naplo/ --byfmt mayor + +# Ha az fmtutil nem a tex alkönyvtárba hozná létre a mayor.fmt-t, akkor áthelyezzük: +if [ -e "$MAYORDIR/print/module-naplo/mayor.fmt" ]; then + mv $MAYORDIR/print/module-naplo/mayor.fmt $MAYORDIR/print/module-naplo/tex/mayor.fmt +fi + +# Ha telepítve van a XeTeX csomag, akkor ahhoz is generálunk *.fmt-t +if [ -e /usr/bin/xetex ]; then + cd $MAYORDIR/print/module-naplo/xetex/ + fmtutil-sys --cnffile $MAYORDIR/print/module-naplo/xetex/mayor-xetex.cnf --fmtdir $MAYORDIR/print/module-naplo/ --byfmt mayor-xetex +fi diff --git a/mayor-installer-mod/install.d/60portal.sh b/mayor-installer-mod/install.d/60portal.sh new file mode 100755 index 00000000..62d5353e --- /dev/null +++ b/mayor-installer-mod/install.d/60portal.sh @@ -0,0 +1,119 @@ +#!/bin/bash +# + +cat <<EOF +A MaYoR Portal modul telepítése + +A keretrendszer és az elektronikus napló modul mellett +telepíthető a portál modul, ami egy egyszerű, testreszabható +nyitóoldalt ad az egyes hozzáférési szintekhez. A személyes +kezdőlapon megjeleníthető a napi órarend, a legutóbbi üzenetek, +az aktuális kérelmek listája, név- és születésnap információk, +illetve kiírhatunk híreket is. + +EOF + +read -n 1 -p "Telepítsem a portál modult? (i/N)" -s DO +if [ "$DO" != "i" ]; then echo -e "\nA portál modult nem telepítem.\n"; exit 1; fi + +echo -e "\nA main.conf módosítása ..." +if [ ! -e $MAYORDIR/config/main.conf ]; then + echo -e "\nHiányzó konfigurációs állomány: $MAYORDIR/config/main.conf" + exit 1; +fi + +sed -r -i.60portal \ + -e "s#mayor-naplo#mayor-naplo mayor-portal#" $MAYORDIR/config/main.conf + +echo -e "\nA telepítőcsomag letöltése ..." + +cd $TMPDIR +rm -f mayor-portal-current.tgz +wget "http://www.mayor.hu/download/$VERSION/mayor-portal-current.tgz" + +echo -e -n "Források kicsomagolása... " +cd $MAYORDIR +tar xfz "$TMPDIR/mayor-portal-current.tgz" +echo "ok." + +echo -e "\nA porál modul konfigurációs állományának létrehozása" +file="module-portal/config.php" +if [ -e "${MAYORDIR}/config/${file}" ]; then echo " $file létezik."; else + echo -n " $file.example --> " + PW=$(pwgen -s1 32) + if [ "$ROVID" = "" ]; then + ROVID="demo" + fi + cat "$MAYORDIR/config/$file.example" | sed -e "s/%SQLPW%/$PW/" -e "s/demo/${ROVID}/" > "$MAYORDIR/config/$file" + echo $file +fi + +echo -e "\n SQL file létrehozása... " +if [ ! -d $TMPDIR/mysql ]; then + mkdir -p $TMPDIR/mysql +fi +cd $TMPDIR/mysql +PDB=$(grep db $MAYORDIR/config/$file | sed -e "s/.*=\ *['\"]//g" -e "s/['\"];//g") +USER=$(grep user $MAYORDIR/config/$file | sed -e "s/.*=\ *['\"]//g" -e "s/['\"];//g") +PW=$(grep pw $MAYORDIR/config/$file | sed -e "s/.*=\ *['\"]//g" -e "s/['\"];//g") + +cat $MAYORDIR/install/mayor-portal/mysql/mayor-portal.sql | sed \ + -e "s/%MYSQL_PORTAL_DB%/$PDB/g" \ + -e "s/%MYSQL_PORTAL_USER%/$USER/g" \ + -e "s/%MYSQL_PORTAL_PW%/$PW/g" > mayor-portal.sql + +DB=$(grep db $MAYORDIR/config/private-conf.php | sed -e "s/^.*>\ *['|\"]//g" -e "s/['|\"],//g") +cat $MAYORDIR/install/mayor-portal/mysql/portal-init.sql | sed \ + -e "s/%MYSQL_PRIVATE_DB%/$DB/g" \ + -e "s/%MYSQL_PORTAL_DB%/$PDB/g" > portal-init.sql + +read -n 1 -p "Telepíthetem? (i/N)" -s DO +if [ "$DO" != "i" ]; then echo " ok, kiléptem..."; exit 1; fi +echo -e "\n" + +if [ "$MYSQLROOTPW" == "" ]; then + read -p " A mysql root jelszó -ha van- (a begépelt szöveg nem látszik!): " -s MYSQLROOTPW +fi + +if [ "$MYSQLROOTPW" = "" ]; +then + MYSQLROOTPWSTR=""; +else + MYSQLROOTPWSTR="-p$MYSQLROOTPW --user=root" +fi + + +cat /tmp/mysql/mayor-portal.sql /tmp/mysql/portal-init.sql | mysql $MYSQLROOTPWSTR --default-character-set=utf8 + +read -n 1 -p "Tegyük a portál oldalt a rendszer kezdőlapjává minden hozzáférési szinten? (i/N)" -s DO +if [ "$DO" != "i" ]; then + echo -e "\nA portál oldalt nem teszem kezdőlappá.\n"; + cat <<EOF + +Az egyes hozzáférési szintek konfigurációs állományaiban +(private-conf.php, parent-conf.php, public-conf.php) állítható +be, hogy mi legyen a kezdőlap a \$DEFAULT_PSF tömb módosításával. + +EOF + +else + echo "" + for file in private-conf.php parent-conf.php public-conf.php; do + echo -n " $file ... " + sed -i.60portal -e "s/^[ \t]*\$DEFAULT_PSF\[\(.*\)\]\(.*\)/\/\/\t\$DEFAULT_PSF\[\1\]\2\n\t\$DEFAULT_PSF\[\1\] = array('page'=>'portal', 'sub' => 'portal', 'f' => 'portal');/" $MAYORDIR/config/$file + echo ok + done +fi + +if [ "$ROVID" != "demo" ]; then + echo -e "\nEgyedi kezdőoldalak létrehozása:" + for policy in private public parent; do + echo -n " $policy " + for skin in classic pda; do + cp $MAYORDIR/www/policy/$policy/portal/portal/portal_demo.$skin.php $MAYORDIR/www/policy/$policy/portal/portal/portal_$ROVID.$skin.php + echo -n "... " + done + echo "ok" + done +fi + diff --git a/mayor-installer-mod/log/mayor-installer.rev b/mayor-installer-mod/log/mayor-installer.rev new file mode 100644 index 00000000..87ca4f07 --- /dev/null +++ b/mayor-installer-mod/log/mayor-installer.rev @@ -0,0 +1 @@ +4284 diff --git a/mayor-installer-mod/setup b/mayor-installer-mod/setup new file mode 100755 index 00000000..3c13a155 --- /dev/null +++ b/mayor-installer-mod/setup @@ -0,0 +1,34 @@ +#!/bin/bash +clear +echo "-------------------------------------------" +echo " MaYoR Setup " +echo "-------------------------------------------" + +MAYORDIR="/var/mayor" +TMPDIR="/tmp" +MYSQLROOTPW="" +VERSION="current" +export MAYORDIR +export TMPDIR +export MYSQLROOTPW +export VERSION + +echo -e "A MaYoR keretrendszer és elektronikus napló telepítője a továbbiakban +több lépésben, az egyes lépésekre jóváhagyást kérve fogja végrehajtani a +telepítés és konfigurálás lépéseit. + +A telepítő egy tipikus telepítés esetén alkalmazható, speciális igények esetén +célszerűbb az egyes lépéseket a telepítési útmutató alapján manuálisan végezni.\n" + +read -n 1 -p "Folytatja? (i/N)" -s DO +if [ "$DO" != "i" ]; then echo " ok, kiléptem..."; exit 1; fi +echo -e "\n" + +for f in install.d/* +do + echo -e "\n----------------------------------------------\n$f\n----------------------------------------------\n" + ./$f $@ + if [ "$?" == 255 ]; then echo "Fatális hiba! A telepítő kilép."; exit 255; fi; +done + +echo -e "MaYoR (c) setup\n" |