Project

General

Profile

Migration » History » Version 12

Enis Nuredini, 10.02.2023 11:57

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 1 Benjamin Baer
h2. Nginx
116
117
NGinx does not read .htaccess files, so you need to manually add the config to your nginx sites. Here is an include:
118
119
<pre>
120
# Compressing resource files will save bandwidth and so improve loading speed especially for users
121
# with slower internet connections. TYPO3 can compress the .js and .css files for you.
122
# *) Set $GLOBALS['TYPO3_CONF_VARS']['BE']['compressionLevel'] = 9 for the Backend
123
# *) Set $GLOBALS['TYPO3_CONF_VARS']['FE']['compressionLevel'] = 9 together with the TypoScript properties
124
#    config.compressJs and config.compressCss for GZIP compression of Frontend JS and CSS files.
125
location ~ \.js\.gzip$ {
126
    add_header Content-Encoding gzip;
127
    gzip off;
128
    types { text/javascript gzip; }
129
}
130
location ~ \.css\.gzip$ {
131
    add_header Content-Encoding gzip;
132
    gzip off;
133
    types { text/css gzip; }
134
}
135
136
# TYPO3 - Rule for versioned static files, configured through:
137
# - $GLOBALS['TYPO3_CONF_VARS']['BE']['versionNumberInFilename']
138
# - $GLOBALS['TYPO3_CONF_VARS']['FE']['versionNumberInFilename']
139
if (!-e $request_filename) {
140
    rewrite ^/(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ /$1.$3 last;
141
}
142
143
# TYPO3 - Block access to composer files
144
location ~* composer\.(?:json|lock) {
145
    deny all;
146
}
147
148
# TYPO3 - Block access to flexform files
149
location ~* flexform[^.]*\.xml {
150
    deny all;
151
}
152
153
# TYPO3 - Block access to language files
154
location ~* locallang[^.]*\.(?:xml|xlf)$ {
155
    deny all;
156
}
157
158
# TYPO3 - Block access to static typoscript files
159
location ~* ext_conf_template\.txt|ext_typoscript_constants\.txt|ext_typoscript_setup\.txt {
160
    deny all;
161
}
162
163
# TYPO3 - Block access to miscellaneous protected files
164
location ~* /.*\.(?:bak|co?nf|cfg|ya?ml|ts|typoscript|tsconfig|dist|fla|in[ci]|log|sh|sql|sqlite)$ {
165
    deny all;
166
}
167
168
# TYPO3 - Block access to recycler and temporary directories
169
location ~ _(?:recycler|temp)_/ {
170
    deny all;
171
}
172
173
# TYPO3 - Block access to configuration files stored in fileadmin
174
location ~ fileadmin/(?:templates)/.*\.(?:txt|ts|typoscript)$ {
175
    deny all;
176
}
177
178
# TYPO3 - Block access to libraries, source and temporary compiled data
179
location ~ ^(?:vendor|typo3_src|typo3temp/var) {
180
    deny all;
181
}
182
183
# TYPO3 - Block access to protected extension directories
184
location ~ (?:typo3conf/ext|typo3/sysext|typo3/ext)/[^/]+/(?:Configuration|Resources/Private|Tests?|Documentation|docs?)/ {
185
    deny all;
186
}
187
188
189
location / {
190
    try_files $uri $uri/ /index.php$is_args$args;
191
}
192
193
location ~ [^/]\.php(/|$) {
194
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
195
    if (!-f $document_root$fastcgi_script_name) {
196
        return 404;
197
    }
198
    fastcgi_buffer_size 32k;
199
    fastcgi_buffers 8 16k;
200
    fastcgi_connect_timeout 240s;
201
    fastcgi_read_timeout 240s;
202
    fastcgi_send_timeout 240s;
203
204
    # this is the PHP-FPM upstream - see also: https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/#connecting-nginx-to-php-fpm
205
    include snippets/fastcgi-php.conf;
206
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
207
208
}
209
</pre>
210
211
the fastcgi_pass needs to be edited, here it is for standard ubuntu 20.04 nginx server.
212
213
You can save this file to /etc/nginx/snippets/typo3.conf and include it in your site config via `include ../snippets/typo3.conf`