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