Table of Contents
- Install the necessary packages
- Set the root MySQL password
- Store the MySQL password in a configuration file
- Create the database and the user
- Prepare the web server
- Adjust some PHP variables for TYPO3
- Download and unpack the TYPO3 source code
- Prepare the TYPO3 directory structure
- Install TYPO3
TYPO3 is a powerful open source content management system. It manages workflows, has support for multiple languages, and it is expandable with plug-ins that make more functions possible.
TYPO3 is widely used in Europe, especially in Germany and Denmark. It is written in PHP and uses the common LAMP stack (Linux, Apache, MySQL/MariaDB, PHP).
One disadvantage of TYPO3 is that it has a relatively steep learning curve. To help with this, TYPO3 supplies you with specific distributions, which create a basic system.
In this tutorial, we will install TYPO3’s current LTS Version with the Official Introduction Package. This is a small, responsive website that helps you find your way into the TYPO3 world.
Note: Although this tutorial references MySQL as a database, TYPO3 also works well with MariaDB.
- CentOS server
- Root access
For this tutorial a ProfitBricks CentOS 7 64bit image has been used.
If you are familiar with the command line and have a CentOS server ready, it will take approx. 20 minutes to complete this tutorial.
Install the necessary packages
First, we will ensure that your server is up-to-date and install the necessary TYPO3 programs. Afterwards, you will need to start the database and web server and ensure that these will automatically start every time you start your computer.
yum check-update yum -y update yum -y install httpd php mysql-server php-mysql php-pdo php-soap php-gd systemctl start mysql httpd systemctl enable mysql httpd
Set the root MySQL password
Assign a password for the root user, who then has the administrator rights for the database server. After this password has been assigned, empty the terminal. We will disable the Bash history for the next steps.
set +o history mysqladmin password 'your_db_admin_password' clear
Store the MySQL password in a configuration file
To avoid having to constantly enter your password, you can store it within the directory via a file named
echo [client] >/root/.my.cnf echo password = 'your_db_admin_password' >>.my.cnf chmod 400 /root/.my.cnf clear
Note: If you prefer, you can skip this step and use the -p switch whenever using MySQL at the command line instead.
Create the database and the user
Now create a database and a database user with full access in MySQL. Enter these commands directly into the shell.
mysql -e "CREATE DATABASE typo3test;" mysql -e "CREATE USER 'jdoe'@'localhost' IDENTIFIED BY 'jdoe_password';" mysql -e "GRANT ALL PRIVILEGES ON typo3test . * TO 'jdoe'@'localhost';" mysql -e "FLUSH PRIVILEGES;" # Enable the Bash history again set -o history
Prepare the web server
Next, create a backup of the web server configuration.
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.orig
Then allow the use of
.htaccess files. To do this, edit the
httpd.conf file and set
<Directory "/var/www/html"> . . . AllowOverride None . . . </Directory>
Adjust some PHP variables for TYPO3
To ensure that TYPO3 works well, some standard PHP values will need to be adjusted.
max_execution_timeshould be set to 240 (seconds).
upload_max_filesizeshould be increased to at least 10Mb.
post_max_sizeshould be increased to at least 10Mb.
Then restart the web server in order to ensure that the new settings take effect.
cp /etc/php.ini /etc/php.ini.orig sed -i 's/max_execution_time = 30/max_execution_time = 240/' /etc/php.ini sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 10M/' /etc/php.ini sed -i 's/post_max_size = 8M/post_max_size = 10M/' /etc/php.ini apachectl restart
Download and unpack the TYPO3 source code
You can download the current TYPO3 LTS version via Sourceforge. There is a zip file and a .tar.gz file. I will assume that the .tar.gz file will be downloaded.
cd /opt/ wget http://sourceforge.net/projects/typo3/files/TYPO3%20Source%20and%20Dummy/TYPO3%206.2.15/typo3_src-6.2.15.tar.gz
Once the download is complete, extract the package and change the owner.
tar -zxvf typo3_src-6.2.15.tar.gz chown -R apache:apache typo3_src*
Prepare the TYPO3 directory structure
Switch to the directory where the web files are located and set the TYPO3 basic structure.
cd /var/www/html/ ln -s /opt/typo3_current typo3_src ln -s typo3_src/typo3 typo3 ln -s typo3_src/index.php index.php touch FIRST_INSTALL chown -R apache:apache /var/www/html/ chmod -R 775 /var/www/html/
Now all preparations are completed for a CentOS system.
The installation takes place via a web-based installer. Access the server as follows:
If you have problems connecting to the server please check if the firewall service is running:
ps -ef |grep firewalld
If the firewall is running you will need to turn it off:
systemctl stop firewalld
In step one of the installer, TYPO3 will now evaluate and determine that the system is prepared for TYPO3.
Important: If you get an error that the directory is not writable you may have to disable SELinux and reboot.
sed -i 's/enforcing/disabled/' /etc/selinux/config init 6
Step two: Enter your designated MySQL username and password.
Step three: Select the chosen database.
Step four: Enter/set the name and the password of the TYPO3 administrator. Be sure to change the default
admin username to something different.
Step five: Enable the option to download the distributions.
Now the system is ready and you can log in to the TYPO3 backend.
Choose to install The official Introduction Package.
Congratulations - Done!
The frontend is accessible under
The backend is accessible under
Note: For added security, you may want to either password protect the backend, allow only a certain range of IP addresses to access that directory, or both.