FedoraRHEL Based

How To Install PHP on Fedora 41

Install PHP on Fedora 41

PHP 8.3, the latest version of the popular server-side scripting language, brings a host of new features and improvements to web development. As Fedora 41 continues to be a preferred choice for many developers due to its stability and cutting-edge software, combining it with PHP 8.3 creates a powerful environment for web application development. This guide will walk you through the process of installing PHP 8.3 on Fedora 41, ensuring you have the latest tools at your disposal for your web projects.

Prerequisites

Before diving into the installation process, it’s crucial to ensure your system meets the necessary requirements and that you have the proper permissions to make changes. Here’s what you need to get started:

  • A Fedora 41 system with root or sudo access
  • At least 2GB of RAM and 20GB of free disk space
  • A stable internet connection for downloading packages
  • Basic familiarity with the command line interface

It’s also highly recommended to back up any existing PHP applications and configurations before proceeding with the installation or upgrade process. This precaution will help you recover quickly in case of any unforeseen issues.

Updating Fedora 41

Before installing PHP 8.3, it’s crucial to ensure your Fedora 41 system is up to date. This step helps prevent potential conflicts and ensures you have the latest security patches. Follow these steps to update your system:

  1. Open a terminal window.
  2. Run the following command to update all packages:
    sudo dnf update -y
  3. Wait for the update process to complete. This may take several minutes depending on your internet speed and the number of packages that need updating.
  4. Once the update is finished, reboot your system to apply any kernel updates:
    sudo reboot

After your system reboots, you can verify the update was successful by checking the Fedora version:

cat /etc/fedora-release

This should display “Fedora release 41 (Forty One)”.

Adding PHP Repository

Fedora’s default repositories may not always have the latest PHP version immediately available. To ensure we can install PHP 8.3, we’ll add the Remi repository, which is well-known for providing up-to-date PHP packages for Fedora and other RPM-based distributions.

Follow these steps to add the Remi repository:

  1. Install the Remi repository configuration package:
    sudo dnf install -y https://rpms.remirepo.net/fedora/remi-release-41.rpm
  2. Import the Remi GPG key to verify package integrity:
    sudo rpm --import https://rpms.remirepo.net/RPM-GPG-KEY-remi
  3. Enable the PHP 8.3 module stream:
    sudo dnf module reset php
    sudo dnf module enable php:remi-8.3 -y

To verify that the Remi repository has been successfully added, you can list all enabled repositories:

sudo dnf repolist

You should see “remi-safe” and possibly other Remi repositories in the list.

Installing PHP 8.3

Now that we have the necessary repository set up, we can proceed with installing PHP 8.3. There are different methods to install PHP, but we’ll focus on using the DNF package manager, which is the preferred method for Fedora systems.

To install PHP 8.3 along with some commonly used modules, run the following command:

sudo dnf install -y php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json

Let’s break down this command:

  • php: The core PHP package
  • php-cli: Command-line interface for PHP
  • php-fpm: FastCGI Process Manager for PHP
  • php-mysqlnd: MySQL Native Driver for PHP
  • php-zip: ZIP archive support
  • php-devel: Files needed for building PHP extensions
  • php-gd: Image processing library
  • php-mcrypt: Encryption library
  • php-mbstring: Multibyte string handling
  • php-curl: cURL support for making HTTP requests
  • php-xml: XML parsing and generation
  • php-pear: PHP Extension and Application Repository
  • php-bcmath: Arbitrary precision mathematics
  • php-json: JSON support

After the installation is complete, verify the PHP version by running:

php -v

This should display information about PHP 8.3.x, confirming a successful installation.

Configuring PHP 8.3

With PHP 8.3 installed, it’s time to configure it to suit your needs. The main configuration file for PHP is php.ini. On Fedora 41, you can find this file at /etc/php.ini.

To edit the configuration, open the file with a text editor using sudo privileges:

sudo nano /etc/php.ini

Here are some common configuration options you might want to adjust:

  • memory_limit: Sets the maximum amount of memory a script can consume (e.g., memory_limit = 256M)
  • max_execution_time: Sets the maximum time in seconds a script is allowed to run (e.g., max_execution_time = 30)
  • display_errors: Controls whether errors should be printed to the screen (On for development, Off for production)
  • post_max_size: Sets the maximum size of post data allowed (e.g., post_max_size = 64M)
  • upload_max_filesize: Sets the maximum size of uploaded files (e.g., upload_max_filesize = 64M)

After making changes, save the file and exit the text editor. To apply the changes, restart the PHP-FPM service:

sudo systemctl restart php-fpm

To optimize PHP for performance, consider enabling OPcache by uncommenting and setting the following lines in php.ini:

opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

Installing and Configuring Web Server

To serve PHP pages, you’ll need a web server. The two most popular options are Apache and Nginx. We’ll cover the installation and configuration for Apache, as it’s more commonly used with PHP.

To install Apache, run:

sudo dnf install -y httpd

After installation, start and enable Apache to run on system boot:

sudo systemctl start httpd
sudo systemctl enable httpd

Now, we need to configure Apache to work with PHP. Create a new configuration file for PHP:

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

Add the following content to the file:

<FilesMatch \.php$>
    SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
</FilesMatch>

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

<Files ".user.ini">
    Require all denied
</Files>

Save the file and exit the text editor. Restart Apache to apply the changes:

sudo systemctl restart httpd

Testing PHP Installation

To ensure PHP is working correctly with your web server, create a test PHP file:

sudo nano /var/www/html/phpinfo.php

Add the following content to the file:

<?php
phpinfo();
?>

Save the file and exit the text editor. Now, open a web browser and navigate to http://localhost/phpinfo.php or http://your_server_ip/phpinfo.php. You should see a page displaying detailed information about your PHP installation.

If you encounter any issues, check the Apache error logs:

sudo tail -f /var/log/httpd/error_log

Upgrading from Previous PHP Versions

If you’re upgrading from a previous PHP version, follow these additional steps:

  1. Check your current PHP version:
    php -v
  2. Back up your existing PHP applications and configurations:
    sudo cp -R /var/www/html /var/www/html_backup
    sudo cp /etc/php.ini /etc/php.ini.backup
  3. Remove the old PHP version:
    sudo dnf remove php php-cli php-fpm php-common
  4. Follow the installation steps outlined earlier in this guide.
  5. After upgrading, review your application code for any deprecated functions or syntax changes in PHP 8.3.

Security Considerations

Maintaining a secure PHP environment is crucial. Here are some security best practices:

  • Regularly update PHP to the latest version:
    sudo dnf update php
  • Disable PHP information exposure:
    expose_php = Off

    in your php.ini file.

  • Limit allowed PHP functions by using the disable_functions directive in php.ini.
  • Use PHP-FPM with Apache for better security isolation.
  • Implement proper file permissions for your web directories.
  • Enable SELinux for additional system security.

Troubleshooting Common Issues

If you encounter problems during or after the installation, here are some common issues and their solutions:

  • PHP not recognized: Ensure PHP is in your system’s PATH or specify the full path to the PHP executable.
  • Module loading problems: Check that required modules are installed and enabled in php.ini.
  • Permission issues: Verify that your web server has the necessary permissions to access PHP files and directories.

Congratulations! You have successfully installed PHP. Thanks for using this tutorial for installing the PHP popular general-purpose scripting language on your Fedora 41 system. For additional Apache or useful information, we recommend you check the official PHP 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