Basic requirements and recommendations
Before you get excited, make sure you have a working web development environment on either Windows or Linux, with at least Apache 2.x, MySQL 5.7.x and PHP 7.2.x up and running. You can either install Apache, MySQL and PHP separately or install an all-in-one WAMP or LAMP installation package.
I also recommend reading the installation guide on typo3.org before proceding to the download page of the packages on that same website. Below you can find a brief overview of the recommended packages for both Linux and Windows based webservers.
When choosing a TYPO3 package, I do not recommend to go with the latest major/minor versions of TYPO3. After build number 6 (for example x.x.6) it's pretty safe to say that most major bugs and security issues have been solved though.
Installing TYPO3 on Linux
Download the TYPO3 source. If you want to use a dedicated source for your website, just copy the contents of the folder in the source tar.gz/zip file into your website's document root.
If you want to use a centralized source which will be used by several websites, you need to store the source in a central place and create the following symlinks in the document root of your website:
- typo3_src -> folder where the source is in, for example /var/www/libraries/typo3/typo3_src-x.x.x/
- typo3 -> typo3_src/typo3
- index.php -> typo3_src/index.php
Installing TYPO3 on Windows
When developing in Windows, you'll use the zipped package, as you'll not be able to use symbolic links. Extract the stuff into a folder of choice. A folder will be created, like "typo3_src-x.x.x" which will contain all the stuff you need. This also needs to be the document root of your website.
Issues with Apache on Windows
If the extension manager won't work (seems to keep loading forever), you might have to add ThreadStackSize 8388608 to your Apache configuration file httpd.conf.
Issues with PHP on Windows
When importing the default TYPO3 tables into the new database and the script ends prematurely, you might have to extend your script execution time (max_execution_time) to 240 in your PHP configuration file php.ini.
The install/admin tool
We'll assume you'll be able to open your website locally with, for example, http://typo3buddy/. Need help with that? Search with your favorite search site on "setup virtual host windows/linux".
If your site works, the install tool will open automatically and you'll end up in http://typo3buddy/typo3/install.php. If it does not open, put a file named "FIRST_INSTALL" in the root folder of your TYPO3 installation and try again. The install tool then will be used to set up and create the database and create an admin user.
After setting up the database, you'll have to edit the basic configuration of your website; make sure all folders that TYPO3 needs to write to are writeable, add an admin user and a password, change the website name and save setttings. For now, that's all. You're ready to enter the TYPO3 backend.
Default configuration files
If you use a centralized TYPO3 source, you can edit the default configuration file, which will apply to all sites that use that TYPO3 source. This way you don't have to edit the configuration in the install/admin tool each time you set up a new website. The location of the default configuration file:
- TYPO3 4.5-6.1: t3lib/config_default.php
- TYPO3 6.2-10.x: typo3/sysext/core/Configuration/DefaultConfiguration.php
InnoDB column size error
When you run into an error like 'Index column size too large. The maximum column size is 767 bytes.' when installing TYPO3, chances are you are using an old version of MySQL. Consider installing at least the latest version of Mysql 5.7. Things should go fine then.
MySQL Strict mode
Note for windows and Linux users: when you encounter errors while adding new content in TYPO3, like default values for certain fields are missing or that an incorrect integer value for column sys_language_uid is being inserted, you might want to turn off mysql strict mode.
You can extend the setDbInit field in the install tool, like mentioned here. Please note that the "setDBinit" variable seems to be removed from the default configuration file of TYPO3 6.1.7 and therefore does not show up in the install tool. Also, be advised that the setDBinit value is overridden by the TYPO3 6.0, 6.1 and 6.2 core. It is set to "SET NAMES utf8" regardless your changes in the setDBinit variable. We have found no other way than to edit the responsible file, which seems to be typo3/sysext/core/Classes/Core/Bootstrap.php. Search for "setDBinit".
Another way is to set the sql-mode right after a connection with the database is made by TYPO3. This happens in the typo3/init.php file. See this link for more info. This probably applies only to TYPO3 4.x.
You can also include sql-mode="" in the my.ini config file of MySQL, to get rid of that strict mode errors. As this will disable strict mode for the entire MySQL server, this is not recommended.