How to Install Thelia 2.3 on CentOS 7
Using a Different System?
How to Install Thelia 2.3 on Ubuntu 16.04
How to Install Thelia 2.3 on Debian 9
Thelia is an open source tool for creating e-business websites and managing online content, written in PHP. Thelia source code is hosted on GitHub. This guide will show you how to install Thelia on a fresh CentOS 7 Vultr instance.
Requirements
- PHP
- Required PHP extensions:
pdo_mysql
,openssl
,intl
,gd
,curl
,dom
safe_mode off
memory_limit
at least 128M, preferably 256M.upload_max_filesize
: 2Mdate.timezone
must be defined- Nginx
- MySQL/MariaDB
Check the CentOS version.
cat /etc/centos-release# CentOS Linux release 7.4.1708 (Core)
Create a new non-root
user account with sudo
access and switch to it.
useradd -c "John Doe" johndoe && passwd johndoeusermod -aG wheel johndoesu - johndoe
NOTE: Replace johndoe
with your username.
Set up the timezone.
timedatectl list-timezonessudo timedatectl set-timezone 'Region/City'
Ensure that your system is up to date.
sudo yum update -y
Install necessary packages.
sudo yum install -y wget vim unzip bash-completion
Disable SELinux.
sudo setenforce 0
Enable the epel
repository.
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Install PHP
Setup the Webtatic YUM repo.
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Install PHP 7.0, as well as the required PHP extensions.
sudo yum install -y php70w php70w-cli php70w-fpm php70w-common php70w-intl php70w-mbstring php70w-xml php70w-mysql php70w-curl php70w-dom php70w-gd
Check the version.
php --version
Enable and start php-fpm
.
sudo systemctl enable php-fpm.servicesudo systemctl start php-fpm.service
Install MariaDB
Install MariaDB.
sudo vim /etc/yum.repos.d/MariaDB.repo# Copy/paste this to the /etc/yum.repos.d/MariaDB.repo file[mariadb]name = MariaDBbaseurl = https://yum.mariadb.org/10.2/centos7-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1sudo yum install -y MariaDB-server MariaDB-client
Check the version.
mysql --version && mysqld --version# mysql Ver 15.1 Distrib 10.2.14-MariaDB, for Linux (x86_64) using readline 5.1# mysqld Ver 10.2.14-MariaDB for Linux on x86_64 (MariaDB Server)
Enable and start MariaDB.
sudo systemctl enable mariadb.servicesudo systemctl start mariadb.service
Run the mysql_secure_installation
script to improve the security of your MariaDB installation.
sudo mysql_secure_installation
Log in to MariaDB as the root user.
mysql -u root -p# Enter password:
Create a new MySQL database and user, and remember the credentials.
CREATE DATABASE dbname;GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';FLUSH PRIVILEGES;
Exit MariaDB.
exit
Step 3 – Install Nginx
Install Nginx.
sudo yum install -y nginx
Check the version.
sudo nginx -v# nginx version: nginx/1.12.2
Enable and start Nginx.
sudo systemctl enable nginx.servicesudo systemctl start nginx.service
Configure Nginx. Run sudo vim /etc/nginx/conf.d/thelia.conf
and populate it with the following.
server { listen 80; server_name example.com; # Check this root /var/www/thelia/web/; # Check this index index.php; location / { try_files $uri $uri/ @rewriteapp; } location @rewriteapp { rewrite ^(.*)$ /index.php/$1 last; } location ~ ^/(index|index_dev)/.php(/|$) { fastcgi_pass 127.0.0.1:9000; # Check this fastcgi_split_path_info ^(.+/.php)(/.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } # ################################################### # After installation remove /install/ location block. # and restart Nginx # ################################################### location /install/ { alias /var/www/thelia/web/install/; # Check this location ~ ^/install/.+/.(jpg|jpeg|gif|css|png|js|pdf|zip)$ { expires 30d; access_log off; log_not_found off; } location ~ ^/install/(.+/.php)$ { alias /var/www/thelia/web/install/$1; # Check this fastcgi_pass 127.0.0.1:9000; # Check this fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } # ###################################################}
Test the configuration.
sudo nginx -t
Reload Nginx.
sudo systemctl reload nginx.service
Install Thelia
Navigate to the /var/www
directory.
cd /var/www
Download the latest release of Thelia and unzip it.
sudo wget https://thelia.net/download/thelia.zipsudo unzip thelia.zipsudo rm thelia.zipsudo mv thelia_2.3.4/ thelia
Go to the Thelia directory.
cd /var/www/thelia
Change ownership of the /var/www/thelia
directory to nginx
.
sudo chown -R nginx:nginx /var/www/thelia
Run sudo vim /etc/php-fpm.d/www.conf
and set the user and group to nginx
. Initially, it will be set to apache
.
sudo vim /etc/php-fpm.d/www.conf# user = nginx# group = nginx
Run sudo vim /etc/php.ini
and set post_max_size
to 20M.
post_max_size = 20M
Restart php-fpm
.
sudo systemctl restart php-fpm.service
Create the /var/lib/php/session
directory and change its ownership to user nginx
.
sudo mkdir -p /var/lib/php/sessionsudo chown -R nginx:nginx /var/lib/php/session
In your favorite browser, navigate to http://example.com/install
and follow the Thelia installation wizard. To access the Thelia administration interface, append /admin
to your URL.
After installing Thelia, remove the web/install
directory.
sudo rm -rf /var/www/thelia/web/install
Want to contribute?
You could earn up to $300 by adding new articles
Suggest an update
Request an article
Leave a Comment