How to Install PHP on Fedora

Install PHP on Fedora

Are you ready to get PHP up and running on your Fedora system? You’ve come to the right place! Installing PHP on Fedora might seem daunting at first, but I’ll walk you through every step of the process. Whether you’re a seasoned developer or just starting your coding journey, this comprehensive guide will have you running PHP applications in no time.

What is PHP and Why Do You Need It on Fedora?

Understanding PHP’s Role in Web Development

PHP (PHP: Hypertext Preprocessor) is a server-side scripting language that powers over 78% of all websites with known server-side programming languages. It’s the backbone of popular platforms like WordPress, Facebook, and countless web applications. Think of PHP as the engine that makes websites dynamic – it processes user requests, handles database interactions, and generates the HTML that browsers display.

What makes PHP particularly attractive is its simplicity and versatility. You can embed PHP code directly into HTML, making it incredibly accessible for beginners while still being powerful enough for enterprise applications.

Benefits of Running PHP on Fedora Linux

Fedora provides an excellent environment for PHP development. As a cutting-edge Linux distribution, Fedora offers the latest software packages and tools that developers need. The system’s robust package management through DNF makes installing and maintaining PHP straightforward, while Fedora’s security-focused approach ensures your development environment remains safe.

Prerequisites Before Installing PHP on Fedora

System Requirements

Before we dive into the installation process, let’s make sure your system is ready. You’ll need:

  • A running Fedora system (versions 38, 39, 40, or newer)
  • At least 1GB of free disk space
  • A stable internet connection for downloading packages

Required Permissions and Access

You’ll need sudo privileges or root access to install PHP and its components. If you’re unsure about your permissions, run sudo whoami in your terminal – it should return “root” if everything’s set up correctly.

Method 1: Installing PHP Using Default Fedora Repositories

Updating Your Fedora System

Let’s start by ensuring your system is up to date. This step is crucial because it prevents potential conflicts and ensures you’re working with the latest security patches:

sudo dnf upgrade --refresh

This command refreshes your package cache and upgrades all installed packages to their latest versions.

Installing PHP via DNF Package Manager

Basic PHP Installation Command

The simplest way to install PHP on Fedora is using the default repositories. Run this command:

sudo dnf install php-cli

This installs the PHP command-line interface, which includes the /usr/bin/php executable and CGI interface. The installation typically takes just a few minutes, depending on your internet speed.

Verifying the Installation

Once the installation completes, let’s verify that PHP is working correctly:

php -v

You should see output similar to:

PHP 8.2.x (cli) (built: [date]) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.2.x, Copyright (c) Zend Technologies

Method 2: Installing Specific PHP Versions Using Remi Repository

While Fedora’s default repositories include recent PHP versions, you might need a specific version for your project. The Remi repository is your best friend here – it provides the latest PHP versions and updates.

Adding the Remi Repository to Fedora

Installing Remi Repository for Different Fedora Versions

The Remi repository installation varies slightly depending on your Fedora version. Here are the commands for recent Fedora releases:

For Fedora 40:

sudo dnf install http://rpms.remirepo.net/fedora/remi-release-40.rpm -y

For Fedora 39:

sudo dnf install http://rpms.remirepo.net/fedora/remi-release-39.rpm -y

The system might prompt you to import the GPG key for Remi’s repository. Simply type ‘Y’ and press Enter to continue.

Installing PHP 8.3 (Latest Stable)

PHP 8.3 brings significant performance improvements and new features. Here’s how to install it:

First, list available PHP modules:

sudo dnf module list php

Then enable the PHP 8.3 module:

sudo dnf module enable php:remi-8.3 -y

Finally, install PHP 8.3:

sudo dnf install php php-common php-cli

Installing PHP 8.2

If you prefer PHP 8.2, the process is similar:

sudo dnf module reset php -y
sudo dnf module enable php:remi-8.2 -y
sudo dnf install php php-common php-cli

Installing PHP 8.1

For PHP 8.1 installation:

sudo dnf module reset php -y
sudo dnf module enable php:remi-8.1 -y
sudo dnf install php php-common php-cli

The reset command ensures you’re starting with a clean slate, preventing conflicts between different PHP versions.

Installing Older PHP Versions (7.4, 5.6)

Sometimes you need older PHP versions for legacy applications. Here’s how to install PHP 7.4:

sudo dnf module reset php -y
sudo dnf module install php:remi-7.4 -y
sudo dnf install php php-common php-cli

For PHP 5.6 (though I strongly recommend upgrading to newer versions for security reasons):

sudo dnf --enablerepo=remi install php56

Essential PHP Extensions and Modules

Must-Have PHP Extensions for Web Development

PHP’s power comes from its extensive library of extensions. Without the right extensions, your PHP applications might not function correctly. Think of extensions as specialized tools in a developer’s toolkit – each serves a specific purpose.

Installing PHP Extensions via DNF

Database-Related Extensions

Most web applications need database connectivity. Install these essential database extensions:

sudo dnf install php-mysqlnd php-pdo

The mysqlnd extension provides MySQL connectivity, while pdo offers a consistent interface for multiple database types.

Web Development Extensions

For comprehensive web development, install these additional extensions:

sudo dnf install php-gd php-curl php-json php-mbstring php-xml php-zip

Here’s what each extension does:

  • php-gd: Image processing and manipulation
  • php-curl: HTTP requests and API interactions
  • php-json: JSON data handling (essential for modern web APIs)
  • php-mbstring: Multi-byte string handling for international characters
  • php-xml: XML parsing and generation
  • php-zip: Archive file handling

Configuring PHP on Fedora

Locating PHP Configuration Files

PHP’s behavior is controlled by configuration files. The main configuration file is typically located at:

/etc/php.ini

For PHP-FPM (FastCGI Process Manager), you’ll also find configuration files at:

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

Editing php.ini for Optimal Performance

Open the PHP configuration file:

sudo nano /etc/php.ini

Here are some important settings to consider adjusting:

  • memory_limit: Set to at least 256M for most applications
  • max_execution_time: Increase from 30 seconds if you run long-running scripts
  • upload_max_filesize: Adjust based on your application’s file upload needs
  • post_max_size: Should be larger than upload_max_filesize

Setting Up PHP-FPM

PHP-FPM provides better performance and resource management for web applications. Enable and start the service:

sudo systemctl enable --now php-fpm

Integrating PHP with Web Servers

Configuring PHP with Apache (httpd)

If you’re using Apache as your web server, install it first:

sudo dnf install httpd

Start and enable Apache:

sudo systemctl enable --now httpd
sudo systemctl restart httpd

Apache should automatically detect and configure PHP through the installed packages.

Setting Up PHP with Nginx

For Nginx users, the process involves configuring PHP-FPM:

sudo dnf install nginx
sudo systemctl enable --now nginx
sudo systemctl restart nginx

You’ll need to configure Nginx to pass PHP requests to PHP-FPM by editing your server configuration.

Testing Your PHP Installation

Creating a PHP Info Page

Let’s create a simple PHP file to test your installation:

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

Add this content:

<?php
phpinfo();
?>

Save the file and navigate to http://localhost/info.php in your browser. You should see a detailed PHP information page showing your installation details.

Running PHP from Command Line

Test PHP from the command line:

php -r "echo 'Hello, PHP on Fedora!'"

This should output: Hello, PHP on Fedora!

Using PHP’s Built-in Development Server

PHP includes a built-in development server perfect for testing:

php -S localhost:8080 -t /var/www/html

Navigate to http://localhost:8080 to access your PHP applications.

Troubleshooting Common PHP Installation Issues

Resolving Repository Conflicts

If you encounter conflicts between repositories, try:

sudo dnf module reset php -y
sudo dnf clean all

This clears the module state and package cache, resolving most conflicts.

Fixing Extension Loading Problems

If extensions aren’t loading, check the PHP configuration:

php -m | grep extension_name

Replace extension_name with the specific extension you’re troubleshooting.

Permission and Path Issues

Ensure proper permissions on PHP files and directories:

sudo chown -R apache:apache /var/www/html
sudo chmod -R 755 /var/www/html

Best Practices for PHP on Fedora

Security Considerations

Always keep PHP updated to the latest version to protect against security vulnerabilities. Disable unnecessary extensions and configure proper file permissions. Consider using SELinux policies to add an extra security layer.

Performance Optimization Tips

Enable OPcache for better performance:

sudo dnf install php-opcache

Configure OPcache settings in your php.ini file for optimal performance based on your application’s needs.

Conclusion

Installing PHP on Fedora doesn’t have to be complicated. We’ve covered multiple installation methods, from using default repositories to installing specific versions through Remi. Remember that the method you choose depends on your project requirements – use default repositories for general development and Remi for specific version needs.

The key to a successful PHP installation is understanding your requirements, following the proper steps, and testing thoroughly. With PHP now running on your Fedora system, you’re ready to build amazing web applications. Keep your installation updated, monitor performance, and don’t hesitate to explore PHP’s vast ecosystem of extensions and frameworks.

Frequently Asked Questions (FAQs)

1. Which PHP version should I install on Fedora?
For new projects, install PHP 8.3 as it offers the best performance and latest features. For existing projects, use the version your application was developed for to avoid compatibility issues.

2. Can I install multiple PHP versions simultaneously on Fedora?
Yes, you can install multiple PHP versions using the Remi repository’s SCL (Software Collections) packages. Use commands like php81, php82 to run specific versions.

3. Why should I use the Remi repository instead of default Fedora repositories?
The Remi repository provides newer PHP versions and more frequent updates compared to default repositories. It’s maintained by Remi Collet, a PHP core contributor, ensuring reliability.

4. How do I switch between different PHP versions on Fedora?
Use the dnf module commands to reset and enable different PHP versions. For example: sudo dnf module reset php && sudo dnf module enable php:remi-8.2.

5. What should I do if PHP installation fails with dependency conflicts?
First, update your system with sudo dnf upgrade --refresh, then reset PHP modules with sudo dnf module reset php -y, and try the installation again. This resolves most dependency conflicts.

Marshall Anthony is a professional Linux DevOps writer with a passion for technology and innovation. With over 8 years of experience in the industry, he has become a go-to expert for anyone looking to learn more about Linux.

Related Posts