Project

General

Profile

20230610 Forkred » History » Version 31

Carsten Rose, 10.06.2023 15:37

1 4 Carsten Rose
{{child_pages}}
2
3
{{toc}}
4
5 6 Carsten Rose
h1. Forkred: OS Update U18>U22, T3 V9>V11, PHP 7.2>8.1, MariaDB 10.1>10.6
6 1 Carsten Rose
7 31 Carsten Rose
* Files: `forkrd:/var/tmp/dev`
8
* Installtool: https://www.myuzhgrants.uzh.ch/typo3/install.php
9 7 Carsten Rose
10 1 Carsten Rose
h2. VMWare Konsole
11
12 2 Carsten Rose
* Check das CR sich einloggen kann: https://wikiit.math.uzh.ch/it/bestpractice/vmware-console
13 1 Carsten Rose
14 2 Carsten Rose
  * Wird der IE genommen, funktioniert der Aufruf der vsphere Seite nciht.
15
  * Edge hat mehrere Minuten gebraucht um zu starten.
16
  * Firefox konnte sich anmelden, dann hat CR aber abgebrochen weil mittlerweile Edge gestartet ist.
17
18
* Edge hat die Konsole gut dargestellt.
19
20 1 Carsten Rose
h2. Preparation on production
21
22
<pre>
23
# Check das der neueste Kernel aktiv ist, falls nicht reboot
24
$ uname -a
25
$ dpkg --list | grep linux
26
27
#
28
# Alle alten Kernel entfernen! Das ist wichtig damit der do-release-upgrade Process nicht unnoetig alte Kernel Module aktualisiert.
29
#
30
$ CURRENT=`uname -a | cut -f 3 -d ' '`
31
$ ALL=`dpkg --list | grep -e linux-modules -e linux-image | grep -v $CURRENT | awk '{ print $2 }'`
32
$ for II in $ALL; do apt purge -y $II; done
33
34 2 Carsten Rose
# Backup Dir anlegen:
35
[user@tlX] mkdir /scratch/tmp/30/forkred
36
# Latest T3 nach Production kopieren
37
[user@tlX] scp /scratch/software/typo3/typo3_src-11.5.25.tgz root@forkred.uzh.ch:/var/tmp/
38 1 Carsten Rose
39 2 Carsten Rose
# T3 schonmal auspacken
40
[root@forkred] cd /var/html; tar zxf typo3_src-11.5.25.tgz
41 1 Carsten Rose
42 2 Carsten Rose
# ** Am Tag vor der Migration **
43
# Backup anlegen. Zuerst auf TL: `mkdir /scratch/tmp/30/forkred`
44
# 
45 14 Carsten Rose
[root@forkred]
46 2 Carsten Rose
$ cd /
47 19 Carsten Rose
$ tar --exclude=var/local/prod --exclude=var/www/html -czvf /tmp/forkred.system.tgz bin boot etc home initrd.img lib lib64 opt root sbin snap srv swap.img usr var vmlinuz
48
$ scp /tmp/forkred.tgz crose@ssh.math.uzh.ch:/scratch/tmp/30/forkred/
49 2 Carsten Rose
$ rsync -av /var/www/html crose@ssh.math.uzh.ch:/scratch/tmp/30/forkred/
50 1 Carsten Rose
51 2 Carsten Rose
# 
52
# ** Am Tag der Migration **
53
#
54 1 Carsten Rose
55 2 Carsten Rose
# Apache anhalten
56
$ service apache2 stop
57 1 Carsten Rose
58 25 Carsten Rose
# Alle Cronjobs anhalten:
59
$ cronjob -e
60
$ cronjob -e -u www-data
61
62 9 Carsten Rose
# DBs - einmal lokal ablegen und dann nochmal remote sichern
63 19 Carsten Rose
$ mkdir /var/tmp/prod; cd /var/tmp/prod
64 8 Carsten Rose
$ rm *.sql
65 2 Carsten Rose
$ ALL="forkred_preview_db forkred_preview_t3 forkred_prod_db forkred_prod_t3 mysql"
66 9 Carsten Rose
$ for II in $ALL; do mysqldump $II > $II.sql ; done
67 8 Carsten Rose
$ scp *.sql crose@ssh.math.uzh.ch:/scratch/tmp/30/forkred/
68 1 Carsten Rose
69 2 Carsten Rose
# Backup latest files:
70
$ rsync -av --delete /var/www/html/ crose@ssh.math.uzh.ch:/scratch/tmp/30/forkred/html/
71 1 Carsten Rose
72 2 Carsten Rose
# 
73
# OS Migration: 
74
# 
75 1 Carsten Rose
76 2 Carsten Rose
# Ubuntu 20
77
$ do-release-upgrade 
78 1 Carsten Rose
79 2 Carsten Rose
# Login forkred(u20) und Apache direkt wieder anhalten:
80
$ service apache2 stop
81 1 Carsten Rose
82 2 Carsten Rose
# Ubuntu 22
83
$ do-release-upgrade 
84 1 Carsten Rose
85 2 Carsten Rose
# Login forkred(u22) und Apache direkt wieder anhalten:
86 1 Carsten Rose
$ service apache2 stop
87 31 Carsten Rose
88
# Check welche PHP Version installiert. Ggfs. sind noch alte installiert. Am besten vergleichen ob alle PHP Pakete von der alten Version auch in der neuen installiert sind. Bei dieser Migration fehlten nach der Migration @php-xml@, @php-json@.
89
$ dpkg --list | grep php
90 1 Carsten Rose
</pre>
91
92 2 Carsten Rose
h2. Preparation on dev (webwork22)
93 1 Carsten Rose
94
<pre>
95 2 Carsten Rose
# Create dump of typo3 database:
96
$ mysqldump forkred_dev_t3 > /var/tmp/forkred_dev_t3_v11.sql
97
98
# Filestruktur 
99
$ cd /var/www/html
100
$ tar zcf /var/tmp/forkred_dev_v11.tgz forkred
101 1 Carsten Rose
</pre>
102
103
h2. File transfer: Dev to Production
104
105 2 Carsten Rose
Jump host TL
106 1 Carsten Rose
<pre>
107 2 Carsten Rose
[crose@tlX]
108 20 Carsten Rose
$ scp root@webwork22:/var/tmp/forkred_dev_t3_v11.sql /scratch/tmp/30/forkred/dev/
109 2 Carsten Rose
$ scp root@webwork22:/var/tmp/forkred_dev_v11.tgz /scratch/tmp/30/forkred/dev/
110 1 Carsten Rose
111 2 Carsten Rose
$ rsync -av  /scratch/tmp/30/forkred/dev root@forkred.math.uzh.ch:/var/tmp/
112 1 Carsten Rose
</pre>
113
114
h2. Setup Production
115
116
<pre>
117 2 Carsten Rose
[root@forkred]
118 1 Carsten Rose
119 2 Carsten Rose
$ cd /var/www/
120
$ mv html html.v9
121 1 Carsten Rose
122 2 Carsten Rose
# Unpack page instance for prod and preview. Rename them to original name and check the right permissions:
123 1 Carsten Rose
124 2 Carsten Rose
# Prod
125
$ cd /var/www/
126
$ tar -xzf /var/tmp/dev/forkred_dev_v11.tgz
127
$ mv forkred html
128 1 Carsten Rose
129 2 Carsten Rose
# Preview
130
$ tar -xzf /var/tmp/dev/forkred_dev_v11.tgz
131 21 Carsten Rose
$ mv forkred html/preview
132 1 Carsten Rose
133 10 Carsten Rose
# Import T3 DBs (Prod & Peview same)
134 1 Carsten Rose
$ mysql forkred_prod_t3 < /var/tmp/dev/forkred_dev_t3_v11.sql
135
$ mysql forkred_preview_t3 < /var/tmp/dev/forkred_dev_t3_v11.sql
136 10 Carsten Rose
137 16 Carsten Rose
#
138
# ** Sync QFQ Data **
139
# 
140 10 Carsten Rose
[crose@tlX]
141 22 Carsten Rose
$ cd /scratch/share/system/sync/forkred/
142 23 Carsten Rose
$ ./forkredDevPreviewSync.sh -f
143
$ ./forkredDevProdSync.sh -f
144 24 Carsten Rose
145
# 
146
# Restore fileadmin
147
# 
148 28 Carsten Rose
$ mkdir /var/tmp/fileadmin.dev
149 1 Carsten Rose
150 28 Carsten Rose
# Keep dev version temporarily on prod for comparison in case 
151
$ mv /var/www/html/fileadmin/financialrequests /var/tmp/fileadmin.dev/financialrequests
152
$ mv /var/www/html/fileadmin/protected /var/tmp/fileadmin/.dev/protected
153 1 Carsten Rose
154 28 Carsten Rose
# Restore prod: financialrequests & protected
155 1 Carsten Rose
$ mv /var/www/html.v9/fileadmin/financialrequests /var/www/html/fileadmin/
156 24 Carsten Rose
$ mv /var/www/html.v9/fileadmin/protected /var/www/html/fileadmin/
157
158 28 Carsten Rose
# Restore preview: financialrequests & protected
159
$ \rm -R /var/www/html/preview/fileadmin/protected /var/www/html/preview/fileadmin/financialrequests
160
$ mv /var/www/html.v9/preview/fileadmin/financialrequests /var/www/html/preview/fileadmin/
161
$ mv /var/www/html.v9/preview/fileadmin/protected /var/www/html/preview/fileadmin/
162 2 Carsten Rose
</pre>
163 1 Carsten Rose
164 2 Carsten Rose
h2. Configuration: qfq.json and LocalConfiguration.php
165 1 Carsten Rose
166 15 Carsten Rose
* Prepare the final config files in `/var/tmp/dev/prev|prod`
167 3 Carsten Rose
168 2 Carsten Rose
qfq.json:
169
170 1 Carsten Rose
* DB_1_USER
171
* DB_1_PASSWORD
172
* DB_1_NAME
173
174 3 Carsten Rose
LocalConfiguration.php:
175 2 Carsten Rose
176
* db
177
* user
178
* password
179 1 Carsten Rose
* baseUrl
180 2 Carsten Rose
* wkhtmltopdf 
181
* redirect E-Mail
182
* sitename
183 17 Carsten Rose
* installtoolpw
184 2 Carsten Rose
185 29 Carsten Rose
Copy config files:
186
187
<pre>
188
$ cp /var/tmp/dev/prod/LocalConfiguration.php /var/www/html/typo3conf/
189
$ cp /var/tmp/dev/prev/LocalConfiguration.php /var/www/html/preview/typo3conf/
190
</pre>
191
192
193 26 Carsten Rose
h2. Finalize
194
195
<pre>
196 27 Carsten Rose
# Alle Cronjobs aktvieren:
197 26 Carsten Rose
$ cronjob -e
198
$ cronjob -e -u www-data
199
</pre>
200
201
* Check Backup
202
* Check PDF to SMB
203
204 18 Carsten Rose
h2. SQL Functions
205 1 Carsten Rose
206
The use of dump files doesn't include sql functions. Exporting them with phpMyAdmin from source to target is currently the best solution. In most cases not necessary because upgrade happens on an existing instance with given databases.
207
208
h2. Others
209
210
Sometimes T3 Cache could make problems while upgrading. Deleting the typo3temp folder helps.
211 2 Carsten Rose
212 1 Carsten Rose
Hint:
213
214 30 Carsten Rose
Using relative paths in typo3 template editor could make problems in v11. It helps to change them to aboslute paths. Good example for these situations are the use of 'cd.stylesheet =' options.
215
216
h2. Probleme bei der Migration
217 1 Carsten Rose
218
* Nach dem @do-release-upgrade@ waren noch viele PHP 7.4 Pakete (Status: rc) installiert. @apt purge php7.4*@
219 31 Carsten Rose
* Es fehlten PHP Pakete: @apt install php-xml php-json@. Nach der Migration konnte Typo3 weder BE noch FE rendern. CR hat dann eine neue T3 Instanz hochgezogen, da wurde php-xml moniert. Damit war der Fehler klar. In den Apache Logs war der Fehler nicht zu erkennen.
220
* T3 Site-Konfiguration: T3 hat in der Site Konfiguration die URL von webwork22 gehabt (dump von webwork22). Das wird aktuell durch die I-MATH Sync Skripte noch nicht automatisch angepasst. @Sites > Site Configuration > Entry Point@
221
* Das FE Login Template sieht schlecht aus. Im @typo3_src@ Vezeichnis hat EN einige Anpassungen gemacht (webwork22) - darum als Quickfix die angepasste Version auf forkred kopiert (geht mit dem naechsten Typo3 Update verloren (@typo3_src-11.5.25/typo3/sysext/felogin/Resources/Private/Templates/Login/Login.html@)