Project

General

Profile

Migration » History » Version 49

Carsten Rose, 21.05.2023 17:17

1 1 Benjamin Baer
h1. Update Typo3 v8 > v9 > v10
2
3 28 Carsten Rose
h2. Compatibility
4
5 29 Carsten Rose
 * https://typo3.org/cms/roadmap
6 24 Carsten Rose
 * Required PHP version per Typo3, default PHP Version per Ubuntu OS, required PHP Version per PHP-Unit version.
7 26 Carsten Rose
 * PHPUnit: Aktuell haben wir noch Ubuntu 18.04 Hosts (PHP 7.2) - Ziel waere schnell auf Ubuntu 20.04 zu migrieren
8
9 27 Carsten Rose
   * Dev Umgebung mit U18 / PHP7.2 sollten PHPUnit 8 nutzen.
10
   * Dev Umgebung mit >=U20 / PHP7.4 sollten PHPUnit 9 nutzen.
11 44 Carsten Rose
   * "ig_ldap_sso_auth":https://extensions.typo3.org/extension/ig_ldap_sso_auth, @/scratch/software/typo3/extension@
12 23 Carsten Rose
13 40 Carsten Rose
| *Typo3* | *T3 EOL*   | *QFQ* | *PHP required T3*   | *U18.04* | *U20.04* | *U22.04* | *PHPUnit 6* | *PHPUnit 9* | *PHPUnit 10* |*ldap 3.6.0*|*ldap 3.7.1*|
14
| *V8*    |-31.03.2020-| ?     | 7.0-7.4             | 7.2      | 7.4      | -8.1-    | 7.0-7.2     | >=7.3       | ->=8.1-      | 8.7 - 10.4 | -          |
15
| *V9.5*  |-30.04.2021-| 19.5.0| 7.2-7.4             | 7.2      | 7.4      | -8.1-    | 7.0-7.2     | >=7.3       | ->=8.1-      | 8.7 - 10.4 | 9.5 - 11.5 |
16
| *V10*   |_30.04.2023_|22.10.1| 7.2-7.4             | 7.2      | 7.4      | -8.1-    | 7.0-7.2     | >=7.3       | ->=8.1-      | 8.7 - 10.4 | 9.5 - 11.5 |
17
| *V11*   | 31.10.2024 | -     | 7.4, 8.0-8.2        | -7.2-    | 7.4      | 8.1      | -7.0-7.2-   | >=7.3       | >=8.1        | -          | 9.5 - 11.5 |
18
| *V12*   | 30.04.2026 | -     | 8.1, 8.2            | -7.2-    | -7.4-    | 8.1      | -7.0-7.2-   | >=7.3       | >=8.1        | -          | -          |
19 39 Carsten Rose
20 1 Benjamin Baer
h2. Preparation Typo3 v8
21
22
* Update Extensions to avoid problems after update.
23
** The IG LDAP Extension is the most likely culprit, we recommend to update to version 3.6.0 (which is compatible for typo3 v8 - v10). (Warning: later versions had problem with our LDAP Server, do not install any newer version if not needed)
24 46 Carsten Rose
*** Open the ldap 3.6 *extension* config dialog (e.g. enable fe ldap, be ldap,...) and save it, to replay the config in T3 V9.
25 1 Benjamin Baer
*** Check if login still works (if not, it is possible to create new local admin users via /typo3/install.php)
26
** Update QFQ
27
* To easily downgrade again:
28
** copy the entire `typo3conf` Folder and store it in a temporary folder.
29
** Backup the typo3 database
30
31 3 Benjamin Baer
Versions of Extensions:
32 4 Benjamin Baer
|_.Extension|_.Version|
33 3 Benjamin Baer
| ig_ldap_sso | 3.6.0 |
34
35 1 Benjamin Baer
h2. upgrade to newest version of Typo3 v9
36
37
* download 9.5.26
38
* replace symlink typo3_src
39
<pre>
40
rm typo3_src
41
ln -s /var/www/typo3_src-9.5.26/ typo3_src
42
</pre>
43
44
* go to installtool: /typo3/install.php
45 45 Carsten Rose
* *Upgrade*: Run the upgrade wizard under 
46 1 Benjamin Baer
** Whenever there is an option, choose the default (most of the time to not do it, like backward compability to typo3 7 etc.)
47 45 Carsten Rose
* *Maintenance*: 
48
49
  * Database analyzer and apply the changes
50
  * Flush Caches
51
52
* *Environment*: Directory Status" and autofix problems (this should create .htaccess for page slugs)
53 47 Carsten Rose
* *Settings > Configure Extension > ig_ldap_sso_auth*: Backend / Frontend.
54 1 Benjamin Baer
* Try to login to the backend
55
* Update to the newest Version of uzh_cd: https://www.math.uzh.ch/repo/?dir=uzhcd/v9
56
** Please note changes that have to be made to the config:
57
*** Remove all default js and css references for qfq, they are included now
58
*** Rewrite cd.fullWidth.pidList = 5,10 to: 
59
    <pre>cd.fullWidth.pidList = 5 in tree.rootLineIds || 10 in tree.rootLineIds</pre>
60
* If not happened before, update QFQ: https://qfq.io/download/?dir=releases (at least v 22.10.1)
61 45 Carsten Rose
* Do *not* update ig_ldap past 3.6.0!
62 3 Benjamin Baer
63
Versions of Extensions:
64 4 Benjamin Baer
|_.Extension|_.Version|
65 3 Benjamin Baer
| ig_ldap_sso | 3.6.0 |
66 5 Benjamin Baer
| uzh_cd_extension | 22.11.07 + |
67 3 Benjamin Baer
| qfq | 22.10.1 + |
68
69 9 Enis Nuredini
h3. Enable content columns
70 7 Enis Nuredini
71 10 Enis Nuredini
Edit root page
72
73 1 Benjamin Baer
!columnDesignT3V9.png!
74 16 Enis Nuredini
75 19 Enis Nuredini
h3. Cache problem
76 16 Enis Nuredini
77 19 Enis Nuredini
Pages don't refresh immediately when the backend user is logged in. This behavior is not given with logged out beUser.
78 6 Enis Nuredini
79 1 Benjamin Baer
h2. Upgrade to Typo3 v10
80
81 48 Carsten Rose
82
Update reference index (in T3 V9):
83
84
* “System” > “DB check” module and use the “Check and update global reference index” function. "UpdateReferenceIndex":https://docs.typo3.org/m/typo3/guide-installation/master/en-us/Upgrade/UpdateReferenceIndex/Index.html
85
86 49 Carsten Rose
V10 Update
87 48 Carsten Rose
88
* Download Typo3 v10
89 1 Benjamin Baer
<pre>
90
cd /var/www/
91
wget --content-disposition https://get.typo3.org/10.4.15
92
tar -xzf typo3_src-10.4.15.tar.gz
93
rm typo3_src-10.4.15.tar.gz
94
</pre>
95
96
97
* replace symlink
98
<pre>
99
rm typo3_src
100
ln -s /var/www/typo3_src-10.4.15/ typo3_src
101
</pre>
102
103 38 Enis Nuredini
Hint: After changing the symlink to newer typo3 versions sometimes it's helpful to delete the content from typo3temp folder. This clears some errors that can appear after version upgrade.
104 1 Benjamin Baer
* upgrade wizzard
105
** go install tool: /typo3/install.php
106
** upgrade > run upgrade wizard
107
** execute all except the ones that install extensions
108
** Analyze Database Structure > apply all changes
109
** Dump TCA
110
111
112
* clear caches
113
** Maintanance > Flush Cache
114
115
* delete the other temporary files, which TYPO3 saves in typo3temp/ by doing:
116
** Install tool > Maintanance > Remove Temporary Assets
117
118
* Go to "Environment > Directory Status" and autofix problems (this should create/update .htaccess for page slugs)
119
120
* Create a SiteConfiguration: typo3 Backend > Sites > New Configuration 
121
** This is needed for slugs to work. Also you need to create a second language entry here, if you have a german/english site.
122
123 12 Enis Nuredini
* Configure apache webserver correctly:
124 11 Enis Nuredini
** If not done then insert following parameters in /etc/apache2/sites-enabled/default-ssl.conf
125
<pre><code class="yaml">
126
<Directory /var/www/html>
127
	Options -Indexes +FollowSymLinks +Includes
128
	AllowOverride All
129
	Order allow,deny
130
	Allow from all   
131
	DirectoryIndex index.php index.html index.shtml
132
</Directory>
133
</code></pre>
134
135
** Execute 'service apache2 reload' in terminal
136
137 2 Benjamin Baer
* Open any page with a qfq record, you will get a warning message that you need to update {{pageAlias:T}} and {{pageId:T}} with an option to automatically do this > run the updater
138
** Afterwards click on check again and then choose "to never check for this again".
139
** Please note that all handwritten urls in qfq and form records have to be changed to slugs!
140
** Check if everything is working and make adjustment. Usually it just misses the slugs.
141
** For multilanguage setup, note that there is no longer an L=1 url parameter and you have to adjust records accordingly
142
143 14 Enis Nuredini
* If Typo3 V10.4 or newer is used, then felogin plugin is deprecated and the previously setup configuration of the UZH CD Extension doesn't work anymore. New setup content should look like this:
144 13 Enis Nuredini
!felogin.png!
145 15 Enis Nuredini
146 1 Benjamin Baer
h2. Nginx
147
148
NGinx does not read .htaccess files, so you need to manually add the config to your nginx sites. Here is an include:
149
150
<pre>
151
# Compressing resource files will save bandwidth and so improve loading speed especially for users
152
# with slower internet connections. TYPO3 can compress the .js and .css files for you.
153
# *) Set $GLOBALS['TYPO3_CONF_VARS']['BE']['compressionLevel'] = 9 for the Backend
154
# *) Set $GLOBALS['TYPO3_CONF_VARS']['FE']['compressionLevel'] = 9 together with the TypoScript properties
155
#    config.compressJs and config.compressCss for GZIP compression of Frontend JS and CSS files.
156
location ~ \.js\.gzip$ {
157
    add_header Content-Encoding gzip;
158
    gzip off;
159
    types { text/javascript gzip; }
160
}
161
location ~ \.css\.gzip$ {
162
    add_header Content-Encoding gzip;
163
    gzip off;
164
    types { text/css gzip; }
165
}
166
167
# TYPO3 - Rule for versioned static files, configured through:
168
# - $GLOBALS['TYPO3_CONF_VARS']['BE']['versionNumberInFilename']
169
# - $GLOBALS['TYPO3_CONF_VARS']['FE']['versionNumberInFilename']
170
if (!-e $request_filename) {
171
    rewrite ^/(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ /$1.$3 last;
172
}
173
174
# TYPO3 - Block access to composer files
175
location ~* composer\.(?:json|lock) {
176
    deny all;
177
}
178
179
# TYPO3 - Block access to flexform files
180
location ~* flexform[^.]*\.xml {
181
    deny all;
182
}
183
184
# TYPO3 - Block access to language files
185
location ~* locallang[^.]*\.(?:xml|xlf)$ {
186
    deny all;
187
}
188
189
# TYPO3 - Block access to static typoscript files
190
location ~* ext_conf_template\.txt|ext_typoscript_constants\.txt|ext_typoscript_setup\.txt {
191
    deny all;
192
}
193
194
# TYPO3 - Block access to miscellaneous protected files
195
location ~* /.*\.(?:bak|co?nf|cfg|ya?ml|ts|typoscript|tsconfig|dist|fla|in[ci]|log|sh|sql|sqlite)$ {
196
    deny all;
197
}
198
199
# TYPO3 - Block access to recycler and temporary directories
200
location ~ _(?:recycler|temp)_/ {
201
    deny all;
202
}
203
204
# TYPO3 - Block access to configuration files stored in fileadmin
205
location ~ fileadmin/(?:templates)/.*\.(?:txt|ts|typoscript)$ {
206
    deny all;
207
}
208
209
# TYPO3 - Block access to libraries, source and temporary compiled data
210
location ~ ^(?:vendor|typo3_src|typo3temp/var) {
211
    deny all;
212
}
213
214
# TYPO3 - Block access to protected extension directories
215
location ~ (?:typo3conf/ext|typo3/sysext|typo3/ext)/[^/]+/(?:Configuration|Resources/Private|Tests?|Documentation|docs?)/ {
216
    deny all;
217
}
218
219
220
location / {
221
    try_files $uri $uri/ /index.php$is_args$args;
222
}
223
224
location ~ [^/]\.php(/|$) {
225
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
226
    if (!-f $document_root$fastcgi_script_name) {
227
        return 404;
228
    }
229
    fastcgi_buffer_size 32k;
230
    fastcgi_buffers 8 16k;
231
    fastcgi_connect_timeout 240s;
232
    fastcgi_read_timeout 240s;
233
    fastcgi_send_timeout 240s;
234
235
    # this is the PHP-FPM upstream - see also: https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/#connecting-nginx-to-php-fpm
236
    include snippets/fastcgi-php.conf;
237
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
238
239
}
240
</pre>
241
242
the fastcgi_pass needs to be edited, here it is for standard ubuntu 20.04 nginx server.
243
244
You can save this file to /etc/nginx/snippets/typo3.conf and include it in your site config via `include ../snippets/typo3.conf`