Project

General

Profile

Migration » History » Version 25

Carsten Rose, 02.04.2023 12:26

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