Project

General

Profile

Migration » History » Version 23

Carsten Rose, 02.04.2023 12:21

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