FedoraRHEL Based

How To Install PrestaShop on Fedora 43

Install PrestaShop on Fedora 43

PrestaShop stands as one of the most powerful open-source e-commerce platforms available today, offering merchants a feature-rich solution to build and manage online stores without licensing fees. Installing PrestaShop on Fedora 43 provides a robust, secure, and high-performance foundation for your e-commerce business, combining Red Hat’s enterprise-grade Linux distribution with cutting-edge web technologies. This comprehensive guide walks you through every step of the installation process, from setting up the LAMP stack to configuring security measures that protect your online store.

Whether you’re launching your first e-commerce venture or migrating an existing store to a more reliable infrastructure, this tutorial equips you with the knowledge needed to successfully deploy PrestaShop on Fedora 43. You’ll learn how to configure Apache web server, MariaDB database, PHP with all required extensions, and implement security best practices that ensure your store operates smoothly and safely.

Prerequisites and System Requirements

Before beginning the PrestaShop installation process, ensure your server meets the necessary requirements for optimal performance and compatibility.

Your Fedora 43 server should have at least 2GB of RAM, though 4GB is recommended for production environments handling significant traffic. You’ll need a minimum of 10GB free disk space to accommodate PrestaShop files, database content, product images, and future growth.

Root or sudo privileges are essential for installing packages and modifying system configurations. A basic understanding of Linux command-line operations will help you navigate the installation process more efficiently.

PrestaShop 9, the latest major version released in June 2025, requires PHP 8.1 or higher, with PHP 8.4 offering the best performance and latest features. Fedora 43 ships with PHP 8.4 by default, making it an ideal platform for PrestaShop deployment.

You’ll also need MariaDB 10.2 or newer (MySQL 5.7+ works as well), Apache 2.4 or higher, and several PHP extensions including zip, xml, gd, curl, xmlrpc, mbstring, mysqli, bcmath, dom, posix, cli, pdo, fileinfo, json, iconv, and intl.

Step 1 – Update System and Install Dependencies

Starting with a fully updated system ensures compatibility and security. Log into your Fedora 43 server via SSH and execute the following command to refresh package repositories and upgrade all installed software:

sudo dnf upgrade --refresh && sudo dnf update -y

This command synchronizes your package database with remote repositories and updates all packages to their latest versions. The process may take several minutes depending on your internet connection speed and the number of packages requiring updates.

After the system update completes, install essential tools needed for downloading and extracting PrestaShop files:

sudo dnf install wget unzip nano curl -y

These utilities serve specific purposes throughout the installation. Wget and curl download files from remote servers, unzip extracts compressed archives, and nano provides a user-friendly text editor for configuration files.

Step 2 – Install Apache Web Server

Apache HTTP Server powers millions of websites worldwide, providing reliable web hosting capabilities. Install Apache on your Fedora 43 system with this command:

sudo dnf install httpd -y

Once installation finishes, start the Apache service and enable it to launch automatically at system boot:

sudo systemctl start httpd
sudo systemctl enable httpd

Verify Apache is running correctly by checking its status:

sudo systemctl status httpd

You should see active (running) in green text, confirming the web server operates properly.

Configure your firewall to allow HTTP and HTTPS traffic. Fedora 43 uses firewalld by default, which requires explicit rules for web traffic:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

These commands permanently open ports 80 (HTTP) and 443 (HTTPS) and reload the firewall configuration to apply changes immediately.

Test your Apache installation by navigating to your server’s IP address in a web browser. You should see the Fedora Apache test page, confirming the web server responds to requests successfully.

Step 3 – Install and Configure MariaDB

MariaDB serves as the database management system storing all your PrestaShop data, including products, customers, orders, and configuration settings. Install MariaDB server with this command:

sudo dnf install mariadb-server -y

Start MariaDB and configure it to run automatically at boot:

sudo systemctl start mariadb
sudo systemctl enable mariadb

Check the service status to ensure proper operation:

sudo systemctl status mariadb

The output should indicate the database server is active and running without errors.

Secure your MariaDB installation by running the security script:

sudo mysql_secure_installation

This interactive script prompts you through several security configurations. First, it asks to set a root password—choose a strong, unique password containing uppercase and lowercase letters, numbers, and special characters.

Answer “Y” (yes) to remove anonymous users, which eliminates security vulnerabilities from default test accounts. Disable remote root login by selecting “Y” to prevent unauthorized access attempts. Remove the test database by answering “Y” since production systems don’t need sample databases. Finally, reload privilege tables with “Y” to activate all security changes immediately.

Step 4 – Install and Configure PHP

Fedora 43 includes PHP 8.4 in its default repositories, providing excellent performance and modern language features. Install PHP along with all extensions required by PrestaShop:

sudo dnf install php php-cli php-fpm php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-xmlrpc php-bcmath php-json php-intl php-soap php-pdo -y

This comprehensive installation includes the PHP command-line interface, FastCGI Process Manager, and essential extensions for database connectivity, image processing, string manipulation, XML parsing, and internationalization support.

Configure PHP settings to meet PrestaShop requirements. Open the PHP configuration file:

sudo nano /etc/php.ini

Locate and modify these directives (use Ctrl+W to search in nano):

memory_limit = 512M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 600
max_input_vars = 5000
date.timezone = UTC

PrestaShop 9 requires a minimum 512MB memory limit for optimal performance, especially during module installations and database operations. The upload and post size limits allow importing large product catalogs and handling substantial image files. Extended execution time prevents timeouts during lengthy operations, while max_input_vars accommodates complex forms in the admin panel.

Save changes by pressing Ctrl+X, then Y, and Enter.

Start and enable PHP-FPM service:

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

Restart Apache to load PHP configurations:

sudo systemctl restart httpd

Verify PHP installation by creating a test file:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

Navigate to http://your_server_ip/info.php in your browser. You’ll see comprehensive PHP configuration details, including version number and loaded extensions.

Remove the test file for security:

sudo rm /var/www/html/info.php

Never leave phpinfo files accessible on production servers, as they reveal sensitive system information.

Step 5 – Create Database for PrestaShop

PrestaShop requires a dedicated database and user account with appropriate privileges. Access the MariaDB console:

sudo mysql -u root -p

Enter your root password when prompted.

Create a database named prestashop_db:

CREATE DATABASE prestashop_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

The utf8mb4 character set ensures full Unicode support, including emojis and special characters in multiple languages.

Create a dedicated database user:

CREATE USER 'prestashop_user'@'localhost' IDENTIFIED BY 'your_strong_password';

Replace your_strong_password with a secure password following the same complexity guidelines as your MariaDB root password.

Grant all privileges on the PrestaShop database to this user:

GRANT ALL PRIVILEGES ON prestashop_db.* TO 'prestashop_user'@'localhost';

Flush privileges to activate changes:

FLUSH PRIVILEGES;

Exit MariaDB:

EXIT;

Test database access with the new credentials:

mysql -u prestashop_user -p

Enter the user password and execute SHOW DATABASES; to confirm access to prestashop_db.

Step 6 – Download and Extract PrestaShop

Navigate to Apache’s web root directory:

cd /var/www/html/

Download the latest PrestaShop version from GitHub. As of November 2025, PrestaShop 9.0 represents the current major release:

sudo wget https://github.com/PrestaShop/PrestaShop/releases/download/9.0.0/prestashop_9.0.0.zip

Check the official PrestaShop GitHub releases page for the most recent version number and adjust the URL accordingly.

Create a directory for PrestaShop:

sudo mkdir -p /var/www/html/prestashop

Extract the downloaded archive:

sudo unzip prestashop_9.0.0.zip -d /var/www/html/prestashop

PrestaShop packages files in nested ZIP archives. Navigate to the installation directory and extract the inner archive:

cd /var/www/html/prestashop
sudo unzip prestashop.zip

This two-step extraction process is unique to PrestaShop’s distribution method.

Set correct ownership and permissions. Apache runs as the apache user on Fedora, requiring ownership of web files:

sudo chown -R apache:apache /var/www/html/prestashop

Configure directory permissions:

sudo find /var/www/html/prestashop -type d -exec chmod 755 {} \;

Set file permissions:

sudo find /var/www/html/prestashop -type f -exec chmod 644 {} \;

These permissions allow Apache to read and execute necessary files while preventing unauthorized modifications.

Clean up ZIP archives:

sudo rm /var/www/html/prestashop*.zip

Step 7 – Configure Apache Virtual Host

Virtual hosts enable Apache to serve multiple websites on a single server. Create a configuration file for PrestaShop:

sudo nano /etc/httpd/conf.d/prestashop.conf

Add this configuration:

<VirtualHost *:80>
    ServerName yourdomain.com
    ServerAlias www.yourdomain.com
    DocumentRoot /var/www/html/prestashop
    
    <Directory /var/www/html/prestashop>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    
    ErrorLog /var/log/httpd/prestashop-error.log
    CustomLog /var/log/httpd/prestashop-access.log combined
</VirtualHost>

Replace yourdomain.com with your actual domain name, or use your server’s IP address for testing. The AllowOverride All directive enables .htaccess files, essential for PrestaShop’s URL rewriting functionality.

Test Apache configuration syntax:

sudo apachectl configtest

You should see “Syntax OK” confirming error-free configuration.

Restart Apache to apply changes:

sudo systemctl restart httpd

Step 8 – Configure SELinux for PrestaShop

Fedora 43 enforces SELinux (Security-Enhanced Linux) by default, providing mandatory access controls that enhance system security. However, SELinux requires proper configuration to allow PrestaShop functionality.

Set the correct security context for PrestaShop files:

sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/prestashop(/.*)?"

Apply the security policy:

sudo restorecon -Rv /var/www/html/prestashop/

Enable Apache to connect to databases and networks:

sudo setsebool -P httpd_unified 1
sudo setsebool -P httpd_can_network_connect_db 1

These SELinux booleans permit Apache to interact with MariaDB and external networks, essential for PrestaShop operations.

Step 9 – Run PrestaShop Web Installer

Open your web browser and navigate to your PrestaShop installation:

http://yourdomain.com

Or use your server IP:

http://your_server_ip/prestashop

The PrestaShop installation wizard launches automatically, guiding you through configuration steps.

Install PrestaShop on Fedora 43

Language Selection

Choose your preferred installation language and the default language for your store. This affects both the installation process and your store’s customer-facing interface.

License Agreement

Review the PrestaShop Open Software License and accept the terms to continue.

System Compatibility Check

The installer automatically verifies server requirements. Ensure all checks display green checkmarks. Red indicators signal missing PHP extensions or permission issues that must be resolved before proceeding.

Store Information

Enter your shop name, select your main business activity from the dropdown menu, and choose your country. Optionally install demo products to familiarize yourself with PrestaShop’s features.

Administrator Account

Create your admin credentials. Use a strong password combining uppercase letters, lowercase letters, numbers, and special characters (minimum 8 characters). This account controls all store management functions.

Database Configuration

Enter the following details:

  • Database server address: localhost
  • Database name: prestashop_db
  • Database login: prestashop_user
  • Database password: your database user password
  • Table prefix: ps_ (default)

Click “Test your database connection now” to verify credentials before proceeding.

Installation Process

PrestaShop automatically creates database tables, installs default modules, configures the theme, and imports sample data if selected. The process typically completes in 5-10 minutes. Progress bars indicate installation status for each component.

Step 10 – Post-Installation Security Configuration

Immediately after installation completes, implement critical security measures to protect your store.

Delete the installation directory—this is mandatory:

sudo rm -rf /var/www/html/prestashop/install

PrestaShop won’t allow admin access until this directory is removed, preventing security vulnerabilities from exposed installation scripts.

Rename the admin directory to prevent automated attacks targeting the default admin URL:

sudo mv /var/www/html/prestashop/admin /var/www/html/prestashop/admin_secure_$(openssl rand -hex 4)

This command creates a randomized admin directory name. Note the new directory name from the command output—you’ll need it to access your admin panel.

Access your admin panel using the new URL:

http://yourdomain.com/admin_secure_XXXXXXXX

Replace XXXXXXXX with your actual admin directory name.

Step 11 – Configure SSL/HTTPS (Recommended)

Encrypting data transmission protects customer information and improves search engine rankings. Install Certbot for free SSL certificates from Let’s Encrypt:

sudo dnf install certbot python3-certbot-apache -y

Obtain and install SSL certificates:

sudo certbot --apache -d yourdomain.com -d www.yourdomain.com

Certbot automatically configures Apache for HTTPS and sets up automatic certificate renewal. Follow the interactive prompts to complete SSL configuration.

Enable SSL in PrestaShop by logging into your admin panel, navigating to Shop Parameters > General, and activating “Enable SSL” and “Enable SSL on all pages” options.

Step 12 – Initial Store Configuration

Access your PrestaShop admin panel to configure essential store settings. Navigate through Shop Parameters to set up:

General Settings

Configure shop name, maintenance mode, upload limits, and multi-store options.

Payment Methods

Install and configure payment gateway modules for credit cards, PayPal, bank transfers, or regional payment processors.

Shipping Settings

Define shipping zones, carriers, costs, and delivery times based on your business model.

Tax Rules

Configure tax rates according to your jurisdiction and applicable regulations.

Currencies

Enable currencies you’ll accept, with exchange rate configurations.

Email Settings

Configure SMTP settings for reliable transactional email delivery.

Performance Optimization

Enhance your PrestaShop store’s speed and responsiveness through optimization configurations. Navigate to Advanced Parameters > Performance in your admin panel.

Enable CCC (Combine, Compress, Cache) for CSS and JavaScript files, reducing HTTP requests and file sizes. Configure Smarty cache to “Recompile templates if the files have been updated” for development or “Never recompile template files” for production environments.

Enable PHP OpCache if not already active, significantly improving PHP execution speed through bytecode caching.

Configure PHP-FPM pools for optimal performance:

sudo nano /etc/php-fpm.d/www.conf

Adjust these settings based on your server resources:

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35

Restart PHP-FPM after changes:

sudo systemctl restart php-fpm

These configurations balance resource usage with performance for typical e-commerce traffic patterns.

Troubleshooting Common Issues

Blank Pages

Enable error display temporarily by modifying /var/www/html/prestashop/config/defines.inc.php and setting define('_PS_MODE_DEV_', true);. Check error logs at /var/log/httpd/prestashop-error.log for specific issues.

Database Connection Errors

Verify credentials in /var/www/html/prestashop/app/config/parameters.php. Confirm MariaDB service runs with sudo systemctl status mariadb. Check firewall rules and SELinux booleans.

Permission Errors

Recursively reset ownership with sudo chown -R apache:apache /var/www/html/prestashop. Verify SELinux contexts with ls -Z /var/www/html/prestashop and reapply if necessary.

Module Installation Failures

Increase PHP memory limit and execution time. Check file upload size limits match module requirements. Review logs for specific error messages.

Missing PHP Extensions

Install required extensions with sudo dnf install php-extension_name and restart Apache and PHP-FPM services.

Congratulations! You have successfully installed PrestaShop. Thanks for using this tutorial for installing the PrestaShop e-commerce on Fedora 43 Linux system. For additional or useful information, we recommend you check the official PrestaShop website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is an experienced Linux enthusiast and technical writer with a passion for open-source software. With years of hands-on experience in various Linux distributions, r00t has developed a deep understanding of the Linux ecosystem and its powerful tools. He holds certifications in SCE and has contributed to several open-source projects. r00t is dedicated to sharing her knowledge and expertise through well-researched and informative articles, helping others navigate the world of Linux with confidence.
Back to top button