Update von v2.3 auf v2.4
unterstützt jetzt php 7.4 !!! (im WCP php auf v7.4 umstellen)
+ OTP als 2FA statt nur Mail
So habe ich wallabag v2.3 auf v2.4 aktualisiert:
Backup
- eine Kopie der Dateien .htaccess und app/config/parameters.yml sichern
- Backup der aktuellen Datenbank erstellen. Angaben im Beispiel durch eure ersetzen: mysqldump -h 10.11.12.133 -u k12345_BENUTZERNAME --password='Datenbank-BenutzerPasswort' k12345_DATENBANKNAME > pfadzurdatei/wallabag-datenbank-pre2.4update.sql
- Ordner mit wallabag umbenennen (z.B. wallabag.domain.tld -> wallabag.domain.tld_ALT )
- Ordner für wallabag 2.4 erstellen + in neuen Ordner wechslen: mkdir wallabag.domain.tld && cd wallabag.domain.tld
- wallabag 2.4 herunterladen und entpacken: wget https://static.wallabag.org/releases/wallabag-release-2.4.0.tar.gz && tar xvf wallabag-release-2.4.0.tar.gz --strip-components=1
- .htaccess in aktuellen Ordner und parameters.yml in apps/config/ kopieren
- in parameters.yml Werte hinzufügen, die mit 2.4 neu hinzugekommen sind:
mailer_port: 465
mailer_encryption: ssl mailer_auth_mode: login
fos_oauth_server_access_token_lifetime: 3600 fos_oauth_server_refresh_token_lifetime: 1209600
sentry_dsn: null
ssl, weil tls nicht funktionierte bei mir.
- im netup WCP unter Datenbanken bei der wallabag.Datenbank auf phpMyAdmin klicken
- links gesamte wallabag-Datenbank auswählen und dann im rechten Fensterteil oben auf den Reiter SQL klicken
- dort die nachfolgenden SQL-Befehle hineinkopieren und dann rechts weiter unten auf OK klicken
ALTER TABLE wallabag_entry ADD archived_at DATETIME DEFAULT NULL;
ALTER TABLE `wallabag_oauth2_access_tokens` CHANGE `token` `token` varchar(191) NOT NULL;
ALTER TABLE `wallabag_oauth2_access_tokens` CHANGE `scope` `scope` varchar(191);
ALTER TABLE `wallabag_oauth2_auth_codes` CHANGE `token` `token` varchar(191) NOT NULL;
ALTER TABLE `wallabag_oauth2_auth_codes` CHANGE `scope` `scope` varchar(191);
ALTER TABLE `wallabag_oauth2_refresh_tokens` CHANGE `token` `token` varchar(191) NOT NULL;
ALTER TABLE `wallabag_oauth2_refresh_tokens` CHANGE `scope` `scope` varchar(191);
ALTER TABLE `wallabag_craue_config_setting` CHANGE `name` `name` varchar(191);
ALTER TABLE `wallabag_craue_config_setting` CHANGE `section` `section` varchar(191);
ALTER TABLE `wallabag_craue_config_setting` CHANGE `value` `value` varchar(191);
ALTER TABLE `wallabag_user` ADD googleAuthenticatorSecret VARCHAR(191) DEFAULT NULL;
ALTER TABLE `wallabag_user` CHANGE twoFactorAuthentication emailTwoFactor BOOLEAN NOT NULL;
ALTER TABLE `wallabag_user` DROP trusted;
ALTER TABLE `wallabag_user` ADD backupCodes LONGTEXT DEFAULT NULL COMMENT '(DC2Type:json_array)';
ALTER TABLE wallabag_site_credential ADD updated_at DATETIME DEFAULT NULL;
ALTER TABLE wallabag_entry ADD hashed_url TINYTEXT DEFAULT NULL;
CREATE INDEX hashed_url_user_id ON wallabag_entry (user_id, hashed_url(40));
ALTER TABLE `wallabag_config` CHANGE rss_token feed_token VARCHAR(255) DEFAULT NULL;
ALTER TABLE `wallabag_config` CHANGE rss_limit feed_limit INT DEFAULT NULL;
ALTER TABLE `wallabag_oauth2_access_tokens` DROP FOREIGN KEY FK_368A4209A76ED395;
ALTER TABLE `wallabag_oauth2_access_tokens` ADD CONSTRAINT FK_368A4209A76ED395 FOREIGN KEY (user_id) REFERENCES `wallabag_user` (id) ON DELETE CASCADE;
ALTER TABLE `wallabag_oauth2_clients` DROP FOREIGN KEY IDX_user_oauth_client;
ALTER TABLE `wallabag_oauth2_clients` ADD CONSTRAINT FK_635D765EA76ED395 FOREIGN KEY (user_id) REFERENCES `wallabag_user` (id);
ALTER TABLE `wallabag_oauth2_refresh_tokens` DROP FOREIGN KEY FK_20C9FB24A76ED395;
ALTER TABLE `wallabag_oauth2_refresh_tokens` ADD CONSTRAINT FK_20C9FB24A76ED395 FOREIGN KEY (user_id) REFERENCES `wallabag_user` (id) ON DELETE CASCADE;
ALTER TABLE `wallabag_oauth2_auth_codes` DROP FOREIGN KEY FK_EE52E3FAA76ED395;
ALTER TABLE `wallabag_oauth2_auth_codes` ADD CONSTRAINT FK_EE52E3FAA76ED395 FOREIGN KEY (user_id) REFERENCES `wallabag_user` (id) ON DELETE CASCADE;
ALTER TABLE `wallabag_tag` CHANGE `label` `label` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
ALTER TABLE `wallabag_tag` CHANGE `slug` `slug` VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
ALTER TABLE wallabag_entry ADD given_url LONGTEXT DEFAULT NULL, ADD hashed_given_url TINYTEXT DEFAULT NULL;
CREATE INDEX hashed_given_url_user_id ON wallabag_entry (user_id, hashed_given_url(40));
UPDATE wallabag_config SET reading_speed = reading_speed*200;
ALTER TABLE `wallabag_entry` MODIFY language VARCHAR(20) DEFAULT NULL;
CREATE INDEX user_language ON `wallabag_entry` (language, user_id);
CREATE INDEX user_archived ON `wallabag_entry` (user_id, is_archived, archived_at);
CREATE INDEX user_created ON `wallabag_entry` (user_id, created_at);
CREATE INDEX user_starred ON `wallabag_entry` (user_id, is_starred, starred_at);
CREATE INDEX tag_label ON `wallabag_tag` (label (255));
CREATE INDEX config_feed_token ON `wallabag_config` (feed_token (255));
ALTER TABLE `wallabag_craue_config_setting` RENAME `wallabag_internal_setting`;
CREATE TABLE wallabag_ignore_origin_user_rule (id INT AUTO_INCREMENT NOT NULL, config_id INT NOT NULL, rule VARCHAR(255) NOT NULL, INDEX idx_config (config_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB;
CREATE TABLE wallabag_ignore_origin_instance_rule (id INT AUTO_INCREMENT NOT NULL, rule VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB;
ALTER TABLE wallabag_ignore_origin_user_rule ADD CONSTRAINT fk_config FOREIGN KEY (config_id) REFERENCES `wallabag_config` (id);
UPDATE wallabag_internal_setting SET name = 'matomo_enabled' where name = 'piwik_enabled';
UPDATE wallabag_internal_setting SET name = 'matomo_host' where name = 'piwik_host';
UPDATE wallabag_internal_setting SET name = 'matomo_site_id' where name = 'piwik_site_id';
Display More
Quelle
- Die Befehle sollten ohne Fehler ausgeführt werden.
- Jetzt noch im Rootverzeichnis (wallabag.domain.tld) den Cache manuell löschen mit rm -rf var/cache/*
Das wars, glaube ich. IMHO ist der Updateprozess schon noch ein Krampf, der zuviel Zeit verschlingt, aber am Ende funktionierts...
BTW falls ihr die php disable_functions eures Hostings angepasst habt: wallabag benötigt curl_exec() und curl_multi_exec()
Viel Glück.