Chapter 4. Using the PHP scripting language


Hypertext Preprocessor (PHP) is a general-purpose scripting language mainly used for server-side scripting. You can use PHP to run the PHP code by using a web server.

4.1. Installing the PHP scripting language

To develop and deploy server-side web applications, install PHP on your system. In RHEL 10, the PHP scripting language is available in PHP 8.3 as the php RPM package.

Procedure

  • Install PHP 8.3:

    # dnf install php

4.2.1. Using PHP with the Apache HTTP Server

In Red Hat Enterprise Linux 10, you can use the Apache HTTP Server to run PHP as a FastCGI process server. As an alternative PHP FastCGI daemon, you can use FastCGI Process Manager (FPM) to manage high website loads. PHP uses FastCGI Process Manager by default in RHEL 10.

Prerequisites

  • The PHP scripting language is installed on your system.

Procedure

  • Configure the Apache HTTP Server and php-fpm to run PHP scripts.

    1. Install the httpd package:

      # dnf install httpd
    2. Start the Apache HTTP Server:

      # systemctl start httpd

      Or, if the Apache HTTP Server is already running on your system, restart the httpd service after installing PHP:

      # systemctl restart httpd
    3. Start the php-fpm service:

      # systemctl start php-fpm
    4. Optional: Enable both services to start at boot time:

      # systemctl enable php-fpm httpd
    5. To obtain information about your PHP settings, create the index.php file with the following content in the /var/www/html/ directory:

      # echo '<?php phpinfo(); ?>' > /var/www/html/index.php
    6. To run the index.php file, point the browser to:

      http://<hostname>/
    7. Optional: Adjust configuration if you have specific requirements:

      • /etc/httpd/conf/httpd.conf - generic httpd configuration
      • /etc/httpd/conf.d/php.conf - PHP-specific configuration for httpd
      • /usr/lib/systemd/system/httpd.service.d/php-fpm.conf - by default, the php-fpm service is started with httpd
      • /etc/php-fpm.conf - FPM main configuration
      • /etc/php-fpm.d/www.conf - default www pool configuration
  • Run the "Hello, World!" PHP script using the Apache HTTP Server.

    1. Create a hello directory for your project in the /var/www/html/ directory:

      # mkdir hello
    2. Create a hello.php file in the /var/www/html/hello/ directory with the following content:

      # <!DOCTYPE html>
      <html>
      <head>
      <title>Hello, World! Page</title>
      </head>
      <body>
      <?php
          echo 'Hello, World!';
      ?>
      </body>
      </html>
    3. Start the Apache HTTP Server:

      # systemctl start httpd
    4. To run the hello.php file, point the browser to:

      http://<hostname>/hello/hello.php

      As a result, a web page with the "Hello, World!" text is displayed.

      See httpd(8), httpd.conf(5), and php-fpm(8) man pages for more information.

4.2.2. Using PHP with the nginx web server

Configure the nginx web server to process PHP scripts on your RHEL 10 system.

Prerequisites

  • The PHP scripting language is installed on your system.

Procedure

  • Configure the nginx web server and php-fpm to run PHP scripts.

    1. Install the nginx package:

      # dnf install nginx
    2. Start the nginx server:

      # systemctl start nginx

      Or, if the nginx server is already running on your system, restart the nginx service after installing PHP:

      # systemctl restart nginx
    3. Start the php-fpm service:

      # systemctl start php-fpm
    4. Optional: Enable both services to start at boot time:

      # systemctl enable php-fpm nginx
    5. To obtain information about your PHP settings, create the index.php file with the following content in the /usr/share/nginx/html/ directory:

      # echo '<?php phpinfo(); ?>' > /usr/share/nginx/html/index.php
    6. To run the index.php file, point the browser to:

      http://<hostname>/
    7. Optional: Adjust configuration if you have specific requirements:

      • /etc/nginx/nginx.conf - nginx main configuration
      • /etc/nginx/conf.d/php-fpm.conf - FPM configuration for nginx
      • /etc/php-fpm.conf - FPM main configuration
      • /etc/php-fpm.d/www.conf - default www pool configuration
  • Run the "Hello, World!" PHP script using the nginx server.

    1. Create a hello directory for your project in the /usr/share/nginx/html/ directory:

      # mkdir hello
    2. Create a hello.php file in the /usr/share/nginx/html/hello/ directory with the following content:

      # <!DOCTYPE html>
      <html>
      <head>
      <title>Hello, World! Page</title>
      </head>
      <body>
      <?php
          echo 'Hello, World!';
      ?>
      </body>
      </html>
    3. Start the nginx server:

      # systemctl start nginx
    4. To run the hello.php file, point the browser to:

      http://<hostname>/hello/hello.php

      As a result, a web page with the "Hello, World!" text is displayed.

      See nginx(8) and php-fpm(8) man pages for more information.

4.3. Running a PHP script using the command line

A PHP script is usually run by using a web server. However, you can also run the script by using the command line.

Prerequisites

  • The PHP scripting language is installed on your system.

Procedure

  1. Open a text editor and create a PHP file named hello.php with the following content:

    <?php
        echo 'Hello, World!';
    ?>
  2. Open a terminal and navigate to the directory containing hello.php.
  3. Run the PHP script from the command line:

    $ php hello.php
    Hello, World!

    See php(1) man pages for more information.

Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2026 Red Hat
Back to top