Introduction
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.
Requirements
- 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 .my.cnf
.
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 AllowOverride
to None
.
<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_time
should be set to 240 (seconds).upload_max_filesize
should be increased to at least 10Mb.post_max_size
should 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.
Install TYPO3
The installation takes place via a web-based installer. Access the server as follows:
http://your_server_ip
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.
Installation finished.
Congratulations – Done!
The frontend is accessible under http://your_server_ip/
.
The backend is accessible under http://your_server_ip/typo3/
.
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.