Install Textpattern CMS on FreeBSD 13.0

Updated on February 9, 2022
Install Textpattern CMS on FreeBSD 13.0 header image

Introduction

Textpattern CMS is a free, lightweight, and open-source Content Management System (CMS) based on PHP. With a fast, secure, and simple design for a good user experience. Some features include multi-language support, functionality extensible via plugins, built-in support, and tag-based template language.

This article explains how to install Textpattern CMS on FreeBSD 13.0 server.

Prerequisites

Perform the following steps first:

Step 1. Install Required Packages

Update the system package list.

$ freebsd-update fetch install

$ pkg update

Install required packages.

$ pkg install -y sudo nano unzip wget bash

Install PHP 7.4 and more modules.

$ sudo pkg install -y apache24 mysql80-server php74 mod_php74 php74-curl php74-session php74-gd php74-json php74-mbstring php74-xmlrpc php74-gmp php74-curl php74-mysqli php74-intl php74-sqlite3 php74-xml php74-zip php74-zlib php74-pdo php74-pear php74-pdo_mysql php74-filter php74-mysqli php74-zip php74-imap php74-simplexml

Enable PHP-FPM service.

$ sudo sysrc php_fpm_enable=yes

Start PHP-FPM service.

$ sudo service php-fpm start

Copy the sample PHP configuration file.

$ sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Step 2. Create Textpattern CMS Database

Enable MySQL service to start on system boot.

$ sudo sysrc mysql_enable="yes"

Start MySQL service.

$ sudo service mysql-server start

Log in to MySQL shell. Then, at the password prompt, just press Enter to continue.

$ sudo mysql -u root -p

Secure the MySQL root user by changing the password. Change the value of MySecurePassword with your own secure password.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MySecurePassword';

Create a database called textpattern.

CREATE DATABASE textpattern;

Create a database user called textpatternuser with a password SecurePassword. Change the value of SecurePassword with your own secure password.

CREATE USER 'textpatternuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'SecurePassword';

Grant the user full access to the database.

GRANT ALL ON textpattern.* TO 'textpatternuser'@'localhost' WITH GRANT OPTION;

Save the changes made to the database.

FLUSH PRIVILEGES;

Exit MySQL shell.

exit;

Step 3. Install Textpattern CMS

Download the latest version of Textpattern CMS. Get the latest version from the official download page.

$ wget https://textpattern.com/file_download/118/textpattern-4.8.8.zip

Unzip the downloaded files.

$ sudo unzip textpattern-4.8.8.zip

Delete the downloaded zip files.

$ sudo rm textpattern-4.8.8.zip

Crate the installation directory /usr/local/www/apache24/data/textpattern.

$ sudo mkdir -p /usr/local/www/apache24/data/textpattern

Move the extracted files into the installation directory.

$ sudo mv textpattern-4.8.8/* /usr/local/www/apache24/data/textpattern

Change ownership of the installation directory.

$ sudo chown -R www:www /usr/local/www/apache24/data/textpattern

Change access permissions for the directory.

$ sudo chmod -R 755 /usr/local/www/apache24/data/textpattern

Step 4. Configure Apache2

Enable Apache service to start on system boot.

$ sudo sysrc apache24_enable=yes

Start Apache service.

$ sudo service apache24 start

Create a configuration file to allow Apache to work with PHP.

$ sudo nano /usr/local/etc/apache24/modules.d/001_mod-php.conf

Add the following lines of code to the file. Save and close the file.

<IfModule dir_module>
    DirectoryIndex index.php index.html
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
</IfModule>

Create Apache configuration file for Textpattern CMS named textpattern.conf.

$ sudo nano /usr/local/etc/apache24/Includes/textpattern.conf

Add the below code to the file. Save and close the file.

<VirtualHost *:80>

    ServerAdmin admin@example.com
    DocumentRoot /usr/local/www/apache24/data/textpattern
    ServerName example.com

    <Directory /usr/local/www/apache24/data/textpattern/>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

</VirtualHost>

Test the configuration.

$ sudo apachectl configtest

Restart Apache service.

$ sudo service apache24 restart

Step 5. Access Textpattern CMS

To access the Textpattern CMS Web Interface, go to your browser and visit http://Server_IP/textpattern/setup/. For example:

http://192.0.2.11/textpattern/setup/

Access the installation page, and follow the database configuration process by entering the database connection credentials you used to set up the database.

Copy the code and paste it into the new configuration file on the next page. Create a new file config.php.

$ sudo nano /usr/local/www/apache24/data/textpattern/textpattern/config.php

Add the code to the file. Save and close the file:

<?php
    $txpcfg['db'] = 'textpattern';
    $txpcfg['user'] = 'textpatternuser';
    $txpcfg['pass'] = 'SecurePassword';
    $txpcfg['host'] = 'localhost';
    $txpcfg['table_prefix'] = '';
    $txpcfg['txpath'] = '/usr/local/www/apache24/data/textpattern/textpattern';
    $txpcfg['dbcharset'] = 'utf8mb4';
    // For more customization options, please consult config-dist.php file.
?>

Continue by creating an administrator account and other configurations. After installation is complete, delete the setup directory.

$ sudo rm -rf /usr/local/www/apache24/data/textpattern/textpattern/setup/

Conclusion

You have installed Textpattern CMS on your FreeBSD 13.0 server. You can now check the official documentation to learn more on how to use Textpattern CMS.