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-fcgi-mod/fcgi_install.d | |
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-fcgi-mod/fcgi_install.d')
-rwxr-xr-x | mayor-installer-fcgi-mod/fcgi_install.d/01createhome.sh | 73 | ||||
-rwxr-xr-x | mayor-installer-fcgi-mod/fcgi_install.d/05checkdeb.sh | 106 | ||||
-rwxr-xr-x | mayor-installer-fcgi-mod/fcgi_install.d/10getsource.sh | 79 | ||||
-rwxr-xr-x | mayor-installer-fcgi-mod/fcgi_install.d/15createconfig.sh | 46 | ||||
-rwxr-xr-x | mayor-installer-fcgi-mod/fcgi_install.d/20mysql.sh | 34 | ||||
-rwxr-xr-x | mayor-installer-fcgi-mod/fcgi_install.d/25apache.sh | 254 | ||||
-rwxr-xr-x | mayor-installer-fcgi-mod/fcgi_install.d/30php.sh | 35 | ||||
-rwxr-xr-x | mayor-installer-fcgi-mod/fcgi_install.d/35createdatabases.sh | 129 | ||||
-rwxr-xr-x | mayor-installer-fcgi-mod/fcgi_install.d/40binary.sh | 52 | ||||
-rwxr-xr-x | mayor-installer-fcgi-mod/fcgi_install.d/45intezmeny.sh | 70 | ||||
-rwxr-xr-x | mayor-installer-fcgi-mod/fcgi_install.d/50linker.sh | 59 | ||||
-rwxr-xr-x | mayor-installer-fcgi-mod/fcgi_install.d/55tex.sh | 20 | ||||
-rwxr-xr-x | mayor-installer-fcgi-mod/fcgi_install.d/60portal.sh | 119 | ||||
-rwxr-xr-x | mayor-installer-fcgi-mod/fcgi_install.d/90chown.sh | 30 | ||||
-rwxr-xr-x | mayor-installer-fcgi-mod/fcgi_install.d/99end.sh | 7 |
15 files changed, 1113 insertions, 0 deletions
diff --git a/mayor-installer-fcgi-mod/fcgi_install.d/01createhome.sh b/mayor-installer-fcgi-mod/fcgi_install.d/01createhome.sh new file mode 100755 index 00000000..bdb7398a --- /dev/null +++ b/mayor-installer-fcgi-mod/fcgi_install.d/01createhome.sh @@ -0,0 +1,73 @@ +#!/bin/bash +# + +cat <<EOF + MAYOR telepítése Apache2 alá + mod_suexec/mod_fastcgi beállításásval + +Ez a telepítési eljárás akkor hasznos, ha a webszerverünkön +gazdaságossági okokból több weboldalt szeretnénk egyszerre futtatni, köztük a mayort. + +Az alapvető cél, hogy a különböző (php-t futtató) weboldalak jogosultságaikban, +biztonsági okokból, el legyenek szeparálva. Ehhez az kell, hogy a különböző +php értelmezők, külön felhasználónév alatt, és külön 'docroot' könyvtárból legyenek futtatva. + +Az apache2, a mod_suexec modulja segítségével végzi a felhasználónév-váltást, és +a mod_fcgid segítségével a php értelmezők (php-modulok) elérését. + +Ez a felhsználó tulajdonképpen olyan, mint a www-data rendszerfelhasználó, +de a jogosultstságait külön tudjuk szabályozni, hiszen az a cél, +hogy ne mindent a www-data "futtasson". (Ha minden a www-data alól futna, +akkor például a különböző weboldalak látnák, és elérnék egymás fájljait.) + +Ez a gyakorlatban valahogy így néz(ne) ki: +Van 3 weboldalunk: mayor(napló), webmail, iskolai honlap +A "mayor-web" nevében fut a napló, +a "mail-web" nevében a webmail, +a "honlap-web" nevében pedig az iskolai honlap. + +Első lépésként, létre kell hoszni egy felhasználót, akinek a neve alatt, +és akinek a könyvtárából fut a php értelmező. +Ez általában "rendszer" felhasználót jelent, vagyis bejelentkezni vele nem lehetséges. +Az utolsó lépésben pedig módosítani kell az apache beállításokat a fentieknek megfelelően. + +Az elrendezés valahogy így néz ki: + +böngésző <---hálózat---> (apache2=fcgid): <==IPC==> :php-értelmező_apache_gyermekprocesszként_külön_userként + + +FONTOS!! +A napló is ebből a könyvtárból fog futni, a /var/mayor/ egy symlink lesz +erre a könyvtárra. de ugyanúgy használható továbbra is, mint eddig. + +Például: + A felhasználó neve: mayor-web + A home könyvtára : /home/mayor-web/ + A mayor könyvtára : /home/mayor-web/mayor/ + A mayor mantés(pl): /home/mayor-web/mayor_backup/ + (Megj: a /var/mayor/ továbbra is használható.) + (/var/mayor/ --> /home/mayor-web/mayor/) + +A telepítés végén pedig mindez a >> ps auxf parancs kiadásával személetesebben is látszódik. +EOF + + +echo -e "A php értelmező felhasználója: $MAYORUSER" +read -n 1 -p "Létrehozhatom? (i/N) " -s DO +if [ "$DO" != "i" ]; then echo -e "\nA $MAYORUSER létrehozását kihagytam.\n"; exit 1; fi + +useradd -p "*" -m --home "/home/$MAYORUSER" --shell "/bin/false" --system "$MAYORUSER" +chage --mindays 0 --maxdays 99999 --warndays 7 "$MAYORUSER" +chfn --full-name "$MAYORUSER" "$MAYORUSER" +echo -e "A $MAYORUSER (rendszer)felhasználó hozzáadva.\n" + +echo -e "/home/$MAYORUSER/mayor és mayor_backup mappák létrehozása.\n" +mkdir -p "/home/$MAYORUSER/mayor_backup" +mkdir -p "/home/$MAYORUSER/mayor" + +echo -e "linkelés a /var/mayor könyvtárra.\n" +ln -s "/home/$MAYORUSER/mayor" "/var/mayor" + +echo -e "kész.\n\n" + + diff --git a/mayor-installer-fcgi-mod/fcgi_install.d/05checkdeb.sh b/mayor-installer-fcgi-mod/fcgi_install.d/05checkdeb.sh new file mode 100755 index 00000000..5b5e1828 --- /dev/null +++ b/mayor-installer-fcgi-mod/fcgi_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 apache2-suexec-custom libapache2-mod-fcgid php-cgi 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 apache2-suexec-custom libapache2-mod-fcgid php5-cgi 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-fcgi-mod/fcgi_install.d/10getsource.sh b/mayor-installer-fcgi-mod/fcgi_install.d/10getsource.sh new file mode 100755 index 00000000..4aeab546 --- /dev/null +++ b/mayor-installer-fcgi-mod/fcgi_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-fcgi-mod/fcgi_install.d/15createconfig.sh b/mayor-installer-fcgi-mod/fcgi_install.d/15createconfig.sh new file mode 100755 index 00000000..74156932 --- /dev/null +++ b/mayor-installer-fcgi-mod/fcgi_install.d/15createconfig.sh @@ -0,0 +1,46 @@ +#!/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 + + +sed -e "s/\/var\/mayor/\/home\/$MAYORUSER\/mayor/g" -i "$MAYORDIR/config/main-config.php" diff --git a/mayor-installer-fcgi-mod/fcgi_install.d/20mysql.sh b/mayor-installer-fcgi-mod/fcgi_install.d/20mysql.sh new file mode 100755 index 00000000..7ae70bfb --- /dev/null +++ b/mayor-installer-fcgi-mod/fcgi_install.d/20mysql.sh @@ -0,0 +1,34 @@ +#!/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 ... " + +echo "[mysqld] + character-set-server = utf8 + collation-server = utf8_hungarian_ci + " > /etc/mysql/conf.d/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-fcgi-mod/fcgi_install.d/25apache.sh b/mayor-installer-fcgi-mod/fcgi_install.d/25apache.sh new file mode 100755 index 00000000..d2aa12c7 --- /dev/null +++ b/mayor-installer-fcgi-mod/fcgi_install.d/25apache.sh @@ -0,0 +1,254 @@ +#!/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. + +Valamint itt történik a mod_suexec és a mod_fcgid konfigurálása 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_mayor.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 -n " - mod_suexec engedélyezése ... " +if [ ! -e /etc/apache2/mods-enabled/suexec.load ]; then + a2enmod suexec > /dev/null + echo ok +else + echo "már engedélyezett" +fi + +echo -n " - mod_fcgid engedélyezése ... " +if [ ! -e /etc/apache2/mods-enabled/fcgid.load ]; then + a2enmod fcgid > /dev/null + echo ok +else + echo "már engedélyezett" +fi + +echo -n " - mod_actions engedélyezése ... " +if [ ! -e /etc/apache2/mods-enabled/actions.load ]; then + a2enmod actions > /dev/null + echo ok +else + echo "már engedélyezett" +fi + + +echo -n " - mod_php kikapcsolása (a www-data php értelmezője)" +if [ -e /etc/apache2/mods-enabled/php7.0.load ]; then + a2dismod php7.0 > /dev/null + echo ok +else + echo "nincs bekapcsolava" +fi + +echo -n " - mod_headers engedélyezése" +if [ ! -e /etc/apache2/mods-enabled/headers.load ]; then + a2enmod headers > /dev/null + echo ok +else + echo "nincs bekapcsolava" +fi + + +echo -n " - Apache2 mod_worker és mod_event, amíg a php nem lesz thread-safe. " +if [ -e /etc/apache2/mods-enabled/mpm_event.load ] || [ -e /etc/apache2/mods-enabled/mpm_worker.load ]; then + a2dismod mpm_event > /dev/null + a2dismod mpm_worker > /dev/null + a2enmod mpm_prefork > /dev/null + echo ok +else + echo "nincs bekapcsolava" +fi + +echo "ok." + + +echo -e " Apache2 konfiguráció létrehozása\n" +cat > /etc/apache2/sites-available/mayor_naplo.conf <<EOT +<VirtualHost *:443> + ServerName your.mayor.server.hu +# ServerAlias your.mayor.server.hu your.mayor.server.iskola.sulinet.hu + + + ServerAdmin webmaster@localhost + + SuexecUserGroup mayor-user mayor-user + DocumentRoot mayor-docroot + ScriptAlias /wbin/ mayor-web-bin + + AddHandler php-fcgi .php + Action php-fcgi /wbin/php7.fcgi + AddType application/x-httpd-php .php + + <IfModule mod_fcgid.c> + FcgidProcessLifeTime 3600 + FcgidIOTimeout 320 + FcgidMaxRequestInMem 16777216 + FcgidMaxRequestLen 33554432 + FcgidBusyTimeout 600 +## FcgidOutputBufferSize 0 + FcgidIdleTimeout 400 + </IfModule> + +# Részletesebben: +# FcgidProcessLifeTime 3600 ##(seconds) A php max futási ideje (a (hagyományos) mod_php-nál is ennyi) +# FcgidIOTimeout 320 ##(seconds) A php generál valamit, elkldi a böngészőnek, vagy a böngésző küld adatot a php-nak, ennyi ideig tarthat. (pl: 120sec) +# FcgidMaxRequestInMem 16777216 ##(bytes) Amikor a böngésző küld adatokat a php-nak, ennyi megy a pufferbe. (16MB elég) +# FcgidMaxRequestLen 33554432 ##(bytes) Amikor a böngésző küld adatot a php-nak, az adat max hossza bájtokabn. (32MB elég) +# FcgidBusyTimeout 600 ##(seconds) A php max ennyi ideig gondolkozhat egy futáson/kérésen, ha túllépi, ki lesz lőve. +# FcgidOutputBufferSize 0 ##(bytes) Pufer, amikor a php generál valami adatot, és azt elküldené a böngészőnek. {ezt még át kéne nézni} +# FcgidIdleTimeout 400 ##(seconds) A php-értelmező ennyi pihenés után le lesz állítva.(**) +# ##(**) Figyelem! Itt a "php-értelmező" külön gyermekprocesszként fut, ami az oldal meglátogatásakor indul automatikusan, +# ## és FcgidIdleTimeout-nyi pihenés után magától leáll. + <IfModule autoindex> + IndexIgnore * + </IfModule> + + ## A php-csomagoló, és php.ini fájlok közvetlen elérésének tiltása + <Directory mayor-web-bin > + Require all granted + <Files "php7.fcgi"> + Require env REDIRECT_STATUS + </Files> + <Files "php.ini"> + Require all denied + </Files> + <Files "php.ini.mayor"> + Require all denied + </Files> + </Directory> + + DirectoryIndex index.php index.html index.htm + + <Directory /> + Options FollowSymLinks + AllowOverride None + </Directory> + + <Directory /var/mayor/www/> + Options -Indexes +FollowSymLinks +MultiViews + AllowOverride None + # Apache 2.2 # Order allow,deny + # Apache 2.2 # allow from all + # Apache 2.4 # Require all granted + <IfVersion >= 2.3> + Require all granted + </IfVersion> + <IfVersion < 2.3> + order allow,deny + allow from all + </IfVersion> + RewriteEngine on + RewriteBase / + RewriteCond %{SERVER_PORT} ^80$ + RewriteCond %{THE_REQUEST} .*(policy=private|page=auth|page=password).* + RewriteRule (.*)$ https://%{HTTP_HOST}/$1 [L] + </Directory> + + + SSLEngine On +# ## A gyenge titkosítások tiltása + SSLProtocol all -SSLv2 -SSLv3 -TLSv1 + SSLCertificateFile /etc/apache2/ssl/apache_mayor.pem +# # SSLCertificateFile /etc/apache2/ssl/crt/name-cert.pem +# # SSLCertificateKeyFile /etc/apache2/ssl/key/name-key.pem + + + <IfModule mod_headers.c> + Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains" + </IfModule> + + + ErrorLog \${APACHE_LOG_DIR}/mayor_error.log + + # Possible values include: debug, info, notice, warn, error, crit, + # alert, emerg. + LogLevel info ssl:warn fcgid:debug + + CustomLog \${APACHE_LOG_DIR}/mayor_access.log combined + ServerSignature On + +</VirtualHost> +EOT + + + +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/\..$//') + +echo -e " Apache2 finomhangolása\n" + +sed -e "s/ServerName your.mayor.server.hu/ServerName $SERVERNAME/g" -i /etc/apache2/sites-available/mayor_naplo.conf +sed -e "s/SuexecUserGroup mayor-user mayor-user/SuexecUserGroup $MAYORUSER $MAYORUSER/g" -i /etc/apache2/sites-available/mayor_naplo.conf +sed -e "s/DocumentRoot mayor-docroot/DocumentRoot \/home\/$MAYORUSER\/mayor\/www\/ /g" -i /etc/apache2/sites-available/mayor_naplo.conf +sed -e "s/ScriptAlias \/wbin\/ mayor-web-bin/ScriptAlias \/wbin\/ \/home\/$MAYORUSER\/mayor\/www-bin\/ /g" -i /etc/apache2/sites-available/mayor_naplo.conf +sed -e "s/<Directory mayor-web-bin >/<Directory \/home\/$MAYORUSER\/mayor\/www-bin\/ > /g" -i /etc/apache2/sites-available/mayor_naplo.conf +sed -e "s/<Directory \/var\/mayor\/www\/>/<Directory \/home\/$MAYORUSER\/mayor\/www\/> /g" -i /etc/apache2/sites-available/mayor_naplo.conf + +echo -e " a suexec beállítása\n" +sed -e 's/\/var\/www/\/home\n\/var\/www/g' -i /etc/apache2/suexec/www-data + +echo " A php-csomagoló elkészítése" +mkdir -p "/home/$MAYORUSER/mayor/www-bin/" + +csomagolo="#!/bin/sh \n exec /usr/bin/php-cgi7.0 " +echo -e $csomagolo > "/home/$MAYORUSER/mayor/www-bin/php7.fcgi" +chmod +x "/home/$MAYORUSER/mayor/www-bin/php7.fcgi" + +echo " A php.ini beszerzése" +cp "/etc/php/7.0/cgi/php.ini" "/home/$MAYORUSER/mayor/www-bin/php.ini" +chown -R "$MAYORUSER:$MAYORUSER" "/home/$MAYORUSER/mayor/www-bin" + + +if [ ! -e /etc/apache2/sites-enabled/mayor_naplo.conf ]; then + echo " A mayor site engedélyezése" + a2ensite mayor_naplo.conf > /dev/null +fi + +echo " A web-szerver újraindítása" +/etc/init.d/apache2 restart diff --git a/mayor-installer-fcgi-mod/fcgi_install.d/30php.sh b/mayor-installer-fcgi-mod/fcgi_install.d/30php.sh new file mode 100755 index 00000000..3e4545a2 --- /dev/null +++ b/mayor-installer-fcgi-mod/fcgi_install.d/30php.sh @@ -0,0 +1,35 @@ +#!/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. + +Figyelem!! +A mod_fcgid miatt a mayor php.ini -je nem a /etc/php5/apache2 mappában, +hanem a php-csomagoló mellett a /home/$MAYORUSER/mayor/www-bin/ mappában kell legyen!! + +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 + +echo -n " A PHP memória limit beállítása: " +if [ ! -e "/home/$MAYORUSER/mayor/www-bin/php.ini.mayor" ]; then + cp "/home/$MAYORUSER/mayor/www-bin/php.ini" "/home/$MAYORUSER/mayor/www-bin/php.ini.mayor" +fi + +sed -e "s/memory_limit.*/memory_limit = 256M/g" -i "/home/$MAYORUSER/mayor/www-bin/php.ini" +echo "256M" +sed -e "s/;cgi.force_redirect.*/cgi.force_redirect = 1/g" -i "/home/$MAYORUSER/mayor/www-bin/php.ini" +sed -e "s/;cgi.fix_pathinfo.*/cgi.fix_pathinfo = 1/g" -i "/home/$MAYORUSER/mayor/www-bin/php.ini" +sed -e "s/;date.timezone.*/date.timezone = Europe/Budapest/g" -i "/home/$MAYORUSER/mayor/www-bin/php.ini" + +echo " Az web szerver újraindítása" +/etc/init.d/apache2 restart + diff --git a/mayor-installer-fcgi-mod/fcgi_install.d/35createdatabases.sh b/mayor-installer-fcgi-mod/fcgi_install.d/35createdatabases.sh new file mode 100755 index 00000000..5f4d8d9c --- /dev/null +++ b/mayor-installer-fcgi-mod/fcgi_install.d/35createdatabases.sh @@ -0,0 +1,129 @@ +#!/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 + 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-fcgi-mod/fcgi_install.d/40binary.sh b/mayor-installer-fcgi-mod/fcgi_install.d/40binary.sh new file mode 100755 index 00000000..33acc60d --- /dev/null +++ b/mayor-installer-fcgi-mod/fcgi_install.d/40binary.sh @@ -0,0 +1,52 @@ +#!/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 + WEB_SERVER_USER=$MAYORUSER ### hiszen pont ezért csináltuk :) +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 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 + +# BASEDIR és és BACKUPDIR javítása a main.conf-ban +sed -e "s/BASEDIR=\"\/var\/mayor\"/BASEDIR=\"\/home\/$MAYORUSER\/mayor\"/g" -i $MAYORDIR/config/main.conf +sed -e "s/BACKUPDIR=\/home\/backup/BACKUPDIR=\/home\/$MAYORUSER\/mayor_backup/g" -i $MAYORDIR/config/main.conf + diff --git a/mayor-installer-fcgi-mod/fcgi_install.d/45intezmeny.sh b/mayor-installer-fcgi-mod/fcgi_install.d/45intezmeny.sh new file mode 100755 index 00000000..c41dda18 --- /dev/null +++ b/mayor-installer-fcgi-mod/fcgi_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-fcgi-mod/fcgi_install.d/50linker.sh b/mayor-installer-fcgi-mod/fcgi_install.d/50linker.sh new file mode 100755 index 00000000..bd4910a9 --- /dev/null +++ b/mayor-installer-fcgi-mod/fcgi_install.d/50linker.sh @@ -0,0 +1,59 @@ +#!/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 + WEB_SERVER_USER=$MAYORUSER +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-fcgi-mod/fcgi_install.d/55tex.sh b/mayor-installer-fcgi-mod/fcgi_install.d/55tex.sh new file mode 100755 index 00000000..87bcbc5f --- /dev/null +++ b/mayor-installer-fcgi-mod/fcgi_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-fcgi-mod/fcgi_install.d/60portal.sh b/mayor-installer-fcgi-mod/fcgi_install.d/60portal.sh new file mode 100755 index 00000000..62d5353e --- /dev/null +++ b/mayor-installer-fcgi-mod/fcgi_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-fcgi-mod/fcgi_install.d/90chown.sh b/mayor-installer-fcgi-mod/fcgi_install.d/90chown.sh new file mode 100755 index 00000000..1e090128 --- /dev/null +++ b/mayor-installer-fcgi-mod/fcgi_install.d/90chown.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +echo -e "A könyvtárak jogosultságainak beállítása\n\n" +read -n 1 -p "beállíthatom? (i/N)" -s DO +if [ "$DO" != "i" ]; then echo -e "\nNem.\n"; exit 1; fi + + +if [ $MAYORUSER == "" ] || [ $MAYORDIR == "" ]; then echo -e "A MAYOR(DIR/USER) változó üres! .....kilépek\n" ; exit 1 ; fi + +chown -R "$MAYORUSER:$MAYORUSER" /home/$MAYORUSER/ ## Ez esetben a MAYORDIR a /home/xxx/mayor-ra mutat + +find /home/$MAYORUSER/ -type f -print0 | xargs -0 chmod 0644 +find /home/$MAYORUSER/ -type d -print0 | xargs -0 chmod 0751 +find /home/$MAYORUSER/ -name '*.php' -print0 | xargs -0 chmod 0640 +find /home/$MAYORUSER/mayor/ -name '*.sh' -print0 | xargs -0 chmod 0600 +find /home/$MAYORUSER/mayor/bin/ -name '*.sh' -print0 | xargs -0 chown root:root +find /home/$MAYORUSER/mayor/ -name '*.conf' -print0 | xargs -0 chmod 0600 + +# a csomagoló jogainak visszaállítása +chmod -R 600 "/home/$MAYORUSER/mayor/www-bin/" +chmod +x "/home/$MAYORUSER/mayor/www-bin/php7.fcgi" + +## de azért idemásolom az eredetit is, biztos-ami-biztos +chmod 700 $MAYORDIR/config/ +# A main.conf védelme +chown root:root $MAYORDIR/config/main.conf +chmod 600 $MAYORDIR/config/main.conf + + +echo -e "...kész.\n"
\ No newline at end of file diff --git a/mayor-installer-fcgi-mod/fcgi_install.d/99end.sh b/mayor-installer-fcgi-mod/fcgi_install.d/99end.sh new file mode 100755 index 00000000..fab52dc8 --- /dev/null +++ b/mayor-installer-fcgi-mod/fcgi_install.d/99end.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +echo -e "-------------------------------------------------\n" +echo -e "Telepítés vége. \n\n" + + + |