Project

General

Profile

Migration » History » Version 14

Enis Nuredini, 14.02.2023 17:20

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