Project

General

Profile

Migration » History » Version 33

Carsten Rose, 04.04.2023 09:53

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