Project

General

Profile

Migration » History » Version 54

Carsten Rose, 26.05.2023 12:22

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