Php 7.1 / 7.2 update in Nextcloud Jail

Status
Not open for further replies.

555NASE

Patron
Joined
Mar 3, 2017
Messages
202
Hallo, ich habe auf meinem FreeNas in einer Sepperaten Jail die Nextcloud installiert.

Nextcloud Version 13.0.5
php-Version 7.0.31

ich möchte in Zukunft das Plugin "Passwords" nutzen hier ist aber php7.1 Voraussetzung.

Wie mache ich jetzt problemlos und einfach auf php 7.1 oder 7.2 updaten. Denn mit dem Befehl pkg update und upgrade bin ich aktuell nur auf die Version 7.0.31.

Es gibt doch bestimmt hier den einen oder anderen der das ganze schon mal gemacht hat oder?
 

roki100

Dabbler
Joined
Nov 4, 2017
Messages
31
Problemlos?

iocage einsetzen. Die wichtigen Daten (inkl. Nextcloud Datenbank) lassen sich dann einfach im iocage übertragen. Du musst also nicht alles neu einrichten.

Es gibt doch bestimmt hier den einen oder anderen der das ganze schon mal gemacht hat oder?

Türlich! :)

Ich habe mir die Schritte vermerkt, vielleicht hilft es dir. Keine Garantie ob es bei dir klappt. Bei mir hat es auf allen FreeNAS Server funktioniert.

JAILNAME und ALTEJAILNAME beachten und anpassen

1. iocage Jail erstellen

iocage create -n "JAILNAME" -r 11.1-RELEASE ip4_addr="vnet0|192.168.0.100" defaultrouter="192.168.0.1" vnet="on" allow_raw_sockets="1" boot="on"

2. vorhandene nextclod files und nextclod_db für iocage vorbereiten bzw. exakt so mounten wie in das alte jail!

z.B.:

iocage fstab -a JAILNAME "/mnt/DATEN/NEXTCLOUD_FILES /mnt/files nullfs rw 0 0"
iocage fstab -a JAILNAME "/mnt/DATEN/NEXTCLOD_DATENBANK /var/db/mysql nullfs rw 0 0"


3. Problem&Lösung

-kein Internet im iocage-Jail.

Lösung: einfach im FreeNAS (und nicht im iocage-Jail) bridge0 mit Interface verknüpfen (siehe ifconfig und das interface was mit dem Router-LAN verbunden ist). Ist es re0, dann folgendes ausführen:

ifconfig bridge0 addm re0 up

danach mit:
iocage restart JAILNAME #jail neu starten

und mit:
iocage console JAILNAME #ins jail wechseln und mit ping google.de auf Online checken....

######################
Nextcloud Installation:
######################

portsnap fetch extract
pkg update
pkg upgrade
pkg install nano wget sudo
pkg install apache24 mariadb102-server
sysrc apache24_enable=YES
sysrc mysql_enable=YES
service apache24 start
service mysql-server start

WebBrowser starten und die https://192.168.0.100 schauen ob "It Works!" angezeigt wird.

WICHTIG: Da die Datenbank aus dem alten Jail konfiguriert übernommen wurde, muss MYSQL nicht neu konfiguriert werden.

mysql -u root -p

klappt der Login mit dem alten Passwort, dann ist alles gut... weitermachen:

pkg install redis php72-ctype php72-dom php72-gd php72-iconv php72-json php72-mbstring php72-posix php72-simplexml php72-xmlreader php72-xmlwriter php72-zip php72-zlib php72-pdo_mysql php72-hash php72-xml php72-session php72-mysqli php72-wddx php72-xsl php72-filter php72-curl php72-fileinfo php72-bz2 php72-intl php72-openssl php72-ldap php72-ftp php72-imap php72-exif php72-gmp php72-memcache php72-opcache php72-pcntl php72 mod_php72

sysrc redis_enable=YES

nano /usr/local/etc/apache24/httpd.conf
############################################################################

folgene Zeilen auskommentieren:

LoadModule ssl_module libexec/apache24/mod_ssl.so
LoadModule rewrite_module libexec/apache24/mod_rewrite.so

im nano (mit STRG+W) diese Zeile suchen:
LoadModule php7_module libexec/apache24/libphp7.so
(oder einfach nach "php7_module" suchen)

falls gefunden, dann gleich nach der Zeile folgendes hinzufügen:

<IfModule php7_module>
<FilesMatch "\.(php|phps|php7|phtml)$">
SetHandler php7-script
</FilesMatch>
DirectoryIndex index.php
</IfModule>

diese Zeile suchen:

<IFModule mime_module>

und das gleich drunter hinzufügen:

AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php

nano beenden und speichern

############################################################################

ls -la /usr/local/libexec/apache24/libphp7.so
wenn die datei existiert, weiter machen:

cd /usr/local/etc/apache24/modules.d
############################################################################
touch 001_mod_php.conf
nano 001_mod_php.conf

das hier hinzufügen:

<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>

nano beenden und speichern
############################################################################

cd /usr/local/etc
############################################################################
cp php.ini-production php.ini
nano /usr/local/etc/php.ini

folgende Zeilen finden und auskommentieren/anpassen:

cgi.fix_pathinfo=1
date.timezone = Europe/Berlin
post_max_size= 1999M
upload_max_filesize = 1999M

opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1 # hier steht eventuell "2" nicht irritieren, einfach auf 1 ändern!

nano beenden und speichern

service apache24 restart

############################################################################

cd /usr/local/www/apache24/data
############################################################################
touch info.php
nano info.php

<?php
phpinfo();
?>

nano beenden und speichern

Im WebBrowser testen ob alles ok ist: http://192.168.0.100/info.php

############################################################################
nano /usr/local/etc/redis.conf

Anpassen:

port 0
unixsocket /tmp/redis.sock
unixsocketperm 777

nano beenden und speichern

service redis start

ls -la /tmp
wenn redis.sock (und mysql.sock) existiert dann weitermachen...


NextCloud kann nun aus dem alten Jail übernommen werden

Mit exit aus iocage-jail raus gehen und im FreeNAS folgendes:


cd /mnt/DATEN/jails/ALTEJAILNAME/usr/local/www/apache24/
cp -r data/* /mnt/iocage/jails/JAILNAME/root/usr/local/www/apache24/data/

cd /mnt/DATEN/jails/ALTEJAILNAME/usr/local/etc/apache24/Includes
cp JAILNAME.DEINDOMAIN.conf /mnt/iocage/jails/JAILNAME/root/usr/local/etc/apache24/Includes/

cd /mnt/DATEN/jails/ALTEJAILNAME/usr/local/etc/
cp -R letsencrypt /mnt/iocage/jails/JAILNAME/root/usr/local/etc/

iocage console JAILNAME

nano /usr/local/www/apache24/data/nextcloud/config/config.php
und bei trusted_domain anpassen (ip ändern, in diesem Fall: 192.168.0.100)

chown -R www:www /usr/local/www/apache24/data/nextcloud

pkg install p5-Locale-gettext help2man texinfo m4 autoconf
make config-recursive install -C /usr/ports/databases/pecl-redis
make config-recursive install -C /usr/ports/devel/pecl-APCu

nano /usr/local/etc/apache24/httpd.conf
nach ServerName suchen und so ändern:
ServerName DEINDOMAINNAME:80

Unter Listen 80
Listen 443 hinzufügen

speichern und nano beenden

service apache24 restart

pkg install py27-certbot

/usr/local/bin/certbot renew # schauen ob alles ok ist!

setenv VISUAL /usr/local/bin/nano
setenv EDITOR /usr/local/bin/nano

crontab -u www -e
*/15 * * * * /usr/local/bin/php -f /usr/local/www/apache24/data/nextcloud/cron.php
nano beenden und speichern


crontab -e
* 1 * * 1 /usr/local/bin/certbot renew --quiet
nano beenden und speichern

############################################################################
############################################################################
############################################################################

nano /usr/local/www/apache24/data/nextcloud/.htaccess

das hier unter der Zeile mit dem Text "#### DO NOT CHANGE ANYTHING ABOVE THIS LINE ####" hinzufügen:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

nano beenden und speichern

exit UND FERTIG ist es! ;)

Falls du noch clamav einsetzen möchtest, dann weitermachen:

#### ANTIVIRUS / CLAMAV ####
iocage console JAILNAME

pkg install git

cd /usr/local/www/apache24/data/nextcloud/apps/
git clone https://github.com/nextcloud/files_antivirus.git
chown -R www:www files_antivirus

cd /usr/ports/security/clamav
make install clean

sysrc clamav_clamd_enable=YES
freshclam
service clamav-clamd restart

# Fals die meldung erscheint: "WARNING: Your ClamAV installation is OUTDATED!"

portsnap fetch update
service clamav-clamd stop

cd /usr/ports/security/clamav
make deinstall
make clean
make install

############################

Fertig aus die Maus! :)
 
Last edited:

jensensen

Cadet
Joined
Aug 20, 2018
Messages
4
Wow! Vielen Dank für diese Anleitung. Das wird in Kürze auch in anderen Fällen sehr hilfreich sein.
 

555NASE

Patron
Joined
Mar 3, 2017
Messages
202
@roki100
Ist ja eine klasse Anleitung. Wenn ich das mache, läuft das ganze dann Parallel, oder deaktiviere ich mit dem um-mounten die alten Pfade zur Cloud.

Welche vorsichtsmaßnahmen muss ich bzgl. Backup treffen, fall das ganze schief geht.

@jensensen

Hast du es schon probiert ?
 

roki100

Dabbler
Joined
Nov 4, 2017
Messages
31
@roki100
Ist ja eine klasse Anleitung. Wenn ich das mache, läuft das ganze dann Parallel, oder deaktiviere ich mit dem um-mounten die alten Pfade zur Cloud.

ob das Parallel dann läuft, habe ich nicht getestet. Ich habe bei der Einrichtung nur drauf geachtet, dass im iocage alles funktioniert. Ich habe für das alte jail Autoboot deaktiviert. Nachdem ich alle nötige Daten (nextcloud Files und DB) übertragen habe und nach ein paar Tagen Tests, habe ich das alte Jail einfach gelöscht.

Welche vorsichtsmaßnahmen muss ich bzgl. Backup treffen, fall das ganze schief geht.

ich würde einen zweiten FreeNAS Server (muss keine große Maschine sein) vorbereiten und Replikation anwenden. Das ist m.M. so oder so ein muss. Wenn irgendetwas schief geht, kann man ja zurück replizieren.

Ich kann dir nicht garantieren, aber aus Erfahrung berichten. Wenn Du dich exakt an die Anleitung hältst, wird es funktionieren.
 

555NASE

Patron
Joined
Mar 3, 2017
Messages
202
In der Anleitung wird das ganze mit dem apache gemacht. Wie mache ich das mit Nginx?
 
Status
Not open for further replies.
Top