Legacy installations: Directory structure

The structure below describes the directory structure in a legacy TYPO3 installation without Composer. For the structure in a Composer-based installation see Composer-based installations: Directory structure.

Files on project level

This folder contains the main entry script index.php and might contain publicly available files like a robots.txt and files needed for the server configuration like a .htaccess file.

Directories in a typical project

fileadmin/

This is a directory in which editors store files. It is used for the same files like public/fileadmin/ in the Composer-based directory structure.

typo3/

Among others, this directory contains the two PHP files for accessing the TYPO3 backend (typo3/index.php) and install tool (typo3/install.php).

typo3/sysext/

All system extensions, supplied by the TYPO3 Core, are stored here.

typo3_source/

It is a common practice in legacy installations to use symlinks to quickly change between TYPO3 Core versions. In many installations you will find a symlink or folder called typo3_source that contains the folders typo3/, and vendor/ and the file index.php. In this case, those directories and files only symlink to typo3_source. This way the Core can be updated quickly by changing the symlink.

Assuming your webroot is a directory called public you could have the following symlink structure:

  • typo3_src-12.0.0

    • typo3

    • vendor

    • index.php

  • public

    • fileadmin

    • typo3 -> typo3_src/typo3

    • typo3_src -> ../typo3_src-12.0.0

    • typo3conf

    • typo3temp

    • vendor -> typo3_src/vendor

    • index.php -> typo3_src/index.php

typo3conf/

This path can be retrieved from the Environment API, see getConfigPath().

typo3conf/autoload/

Contains autoloading information. The files are updated each time an extension is installed via the Extension Manager.

typo3conf/ext/

Directory for third-party and custom TYPO3 extensions. Each subdirectory contains one extension. The name of each directory must be the extension key or the extension will not be loaded directly. You can put or symlink custom extensions and sitepackages here.

See extension files locations for more information on how the extensions are structured.

typo3conf/l10n/

Directory for extension localizations. Contains all downloaded translation files.

This path can be retrieved from the Environment API, see getLabelsPath().

typo3conf/sites/

Contains subfolders for each site configuration.

typo3conf/system/

The folder typo3conf/system/ contains the Configuration files typo3conf/system/settings.php and typo3conf/system/additional.php.

This path can be retrieved from the Environment API, see getConfigPath().

Changed in version 12.0: For legacy installations the configuration files have been moved and renamed:

  • typo3conf/LocalConfiguration.php is now available in typo3conf/system/settings.php

  • typo3conf/AdditionalConfiguration.php is now available in typo3conf/system/additional.php

typo3temp/

Directory for temporary files. It contains subdirectories (see below) for temporary files of extensions and TYPO3 components.

Attention

Although it is a most common understanding in the TYPO3 world that typo3temp/ can be removed at any time, it is considered bad practice to remove the whole folder. Developers should selectively remove folders relevant to the changes made.

typo3temp/assets/

Directory for temporary files that should be publicly available (e.g. generated images).

typo3temp/var/

Directory for temporary files that should not be accessed through the web (cache, log, etc).

vendor/

This directory contains third-party packages that are required by the TYPO3 Core.