Project

General

Profile

Migration » History » Version 17

Enis Nuredini, 17.02.2023 11:58

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