18.6. 使用 PHP 脚本语言


超文本 Preprocessor(PHP)是主要用于服务器端脚本的通用脚本语言,可让您使用 Web 服务器运行 PHP 代码。

在 RHEL 8 中,PHP 脚本语言由 php 模块提供,该模块可在多个流(版本)中可用。

根据您的用例,您可以安装所选模块流的特定配置集:

  • common - 使用 Web 服务器进行服务器端脚本的默认配置文件。它包括多个广泛使用的扩展。
  • minimal - 此配置集只安装命令行界面以用于使用 PHP 编写脚本,而无需使用 Web 服务器。
  • devel - 此配置集包含来自 common 配置集的软件包以及用于开发用途的其他软件包。

18.6.1. 安装 PHP 脚本语言

您可以安装 php 模块的所选版本。

流程

  • 要使用默认配置集安装 php 模块流,请使用:

    # yum module install php:stream

    使用您要安装的 PHP 版本替换 stream

    例如,要安装 PHP 8.0:

    # yum module install php:8.0

    默认 common 配置集安装 php-fpm 软件包,并预配置 PHP 以用于 Apache HTTP 服务器nginx

  • 要安装 php 模块流的特定配置集,请使用:

    # yum module install php:stream/profile

    使用您要安装的 配置集 的名称替换 stream

    例如,要安装 PHP 8.0 以供不使用 Web 服务器:

    # yum module install php:8.0/minimal

其他资源

18.6.2. 通过 Web 服务器使用 PHP 脚本语言

18.6.2.1. 在 Apache HTTP 服务器中使用 PHP

在 Red Hat Enterprise Linux 8 中,Apache HTTP 服务器 允许您将 PHP 作为 FastCGI 进程服务器运行。FastCGI Process Manager(FPM)是一种替代 PHP FastCGI 守护进程,它允许网站管理高负载。PHP 在 RHEL 8 中使用 FastCGI 流程管理器。

您可以使用 FastCGI 进程服务器运行 PHP 代码。

先决条件

流程

  1. 安装 httpd 模块:

    # yum module install httpd:2.4
  2. 启动 Apache HTTP 服务器

    # systemctl start httpd

    或者,如果 Apache HTTP 服务器已在您的系统中运行,请在安装 PHP 后重启 httpd 服务:

    # systemctl restart httpd
  3. 启动 php-fpm 服务:

    # systemctl start php-fpm
  4. 可选: 在引导时启用这两个服务:

    # systemctl enable php-fpm httpd
  5. 要获取有关 PHP 设置的信息,请在 /var/www/html/ 目录中创建带有以下内容的 index.php 文件:

    # echo '<?php phpinfo(); ?>' > /var/www/html/index.php
  6. 要运行 index.php 文件,请将浏览器指向:

    http://<hostname>/
  7. 可选:如果您有具体要求,请调整配置:

    • /etc/httpd/conf/httpd.conf - 一般的 httpd 配置
    • /etc/httpd/conf.d/php.conf - httpd特定 PHP 配置
    • /usr/lib/systemd/system/httpd.service.d/php-fpm.conf - 默认情况下,php-fpm 服务会与 httpd 一起启动
    • /etc/php-fpm.conf - FPM 主配置
    • /etc/php-fpm.d/www.conf - 默认 www 池配置

例 18.1. 运行"Hello, World!"使用 Apache HTTP 服务器的 PHP 脚本

  1. /var/www/html/ 目录中为您的项目创建一个 hello 目录:

    # mkdir hello
  2. /var/www/html/hello/ 目录中创建 hello.php 文件,其内容如下:

    # <!DOCTYPE html>
    <html>
    <head>
    <title>Hello, World! Page</title>
    </head>
    <body>
    <?php
        echo 'Hello, World!';
    ?>
    </body>
    </html>
  3. 启动 Apache HTTP 服务器

    # systemctl start httpd
  4. 要运行 hello.php 文件,请将浏览器指向:

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

    因此,会显示带有 "Hello, World!" 文本的网页。

18.6.2.2. 使用带有 nginx web 服务器的 PHP

您可以通过 nginx web 服务器运行 PHP 代码。

先决条件

流程

  1. 安装 nginx 模块流:

    # yum module install nginx:stream

    使用要安装的 nginx 版本替换 stream

    例如,要安装 nginx 版本 1.18::

    # yum module install nginx:1.18
  2. 启动 nginx 服务器:

    # systemctl start nginx

    或者,如果 nginx 服务器已在您的系统中运行,请在安装 PHP 后重启 nginx 服务:

    # systemctl restart nginx
  3. 启动 php-fpm 服务:

    # systemctl start php-fpm
  4. 可选: 在引导时启用这两个服务:

    # systemctl enable php-fpm nginx
  5. 要获取 PHP 设置的信息,请在 /usr/share/nginx/html/ 目录中使用以下内容创建 index.php 文件:

    # echo '<?php phpinfo(); ?>' > /usr/share/nginx/html/index.php
  6. 要运行 index.php 文件,请将浏览器指向:

    http://<hostname>/
  7. 可选:如果您有具体要求,请调整配置:

    • /etc/nginx/nginx.conf - nginx 主配置
    • /etc/nginx/conf.d/php-fpm.conf - FPM 配置 nginx
    • /etc/php-fpm.conf - FPM 主配置
    • /etc/php-fpm.d/www.conf - 默认 www 池配置

例 18.2. 运行"Hello, World!"使用 nginx 服务器的 PHP 脚本

  1. /usr/share/nginx/html/ 目录中为您的项目创建一个 hello 目录:

    # mkdir hello
  2. /usr/share/nginx/html/hello/ 目录中创建一个包含以下内容的 hello.php 文件:

    # <!DOCTYPE html>
    <html>
    <head>
    <title>Hello, World! Page</title>
    </head>
    <body>
    <?php
        echo 'Hello, World!';
    ?>
    </body>
    </html>
  3. 启动 nginx 服务器:

    # systemctl start nginx
  4. 要运行 hello.php 文件,请将浏览器指向:

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

    因此,会显示带有 "Hello, World!" 文本的网页。

其他资源

18.6.3. 使用命令行界面运行 PHP 脚本

PHP 脚本通常使用 Web 服务器运行,但也可以使用 命令行界面来运行。

如果只使用命令行运行 php 脚本,请安装 php 模块流的 minimal 配置集。

请参阅 安装 PHP 脚本语言

先决条件

流程

  1. 在文本编辑器中,创建一个 filename.php 文件

    filename 替换为您的文件名称。

  2. 从命令行执行创建 filename.php 文件:

    # php filename.php

例 18.3. 运行"Hello, World!"使用命令行界面 PHP 脚本

  1. 使用文本编辑器,创建包含以下内容的 hello.php 文件:

    <?php
        echo 'Hello, World!';
    ?>
  2. 从命令行执行 hello.php 文件:

    # php hello.php

    结果会输出 "Hello, World!"。

18.6.4. 其他资源

  • httpd (8) - httpd 服务的手册页,包含其命令行选项的完整列表。
  • httpd.conf(5) - httpd 配置的 man page,描述 httpd 配置文件的结构和位置。
  • nginx(8) - nginx web 服务器的 man page,其中包含其命令行选项的完整列表和信号列表。
  • php-fpm(8) - PHP FPM 的 man page 描述其命令行选项和配置文件的完整列表。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.