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
其他资源
- 如果要从 RHEL 8 中可用的 PHP 版本升级,请参阅切换到更新的流。
- 有关管理 RHEL 8 模块和流的更多信息,请参阅 安装、管理和删除用户空间组件。
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 代码。
先决条件
在您的系统上安装 PHP 脚本语言。
请参阅 安装 PHP 脚本语言。
流程
安装
httpd
模块:# yum module install httpd:2.4
启动
Apache HTTP 服务器
:# systemctl start httpd
或者,如果
Apache HTTP
服务器已在您的系统中运行,请在安装 PHP 后重启httpd
服务:# systemctl restart httpd
启动
php-fpm
服务:# systemctl start php-fpm
可选: 在引导时启用这两个服务:
# systemctl enable php-fpm httpd
要获取有关 PHP 设置的信息,请在
/var/www/html/
目录中创建带有以下内容的index.php
文件:# echo '<?php phpinfo(); ?>' > /var/www/html/index.php
要运行
index.php
文件,请将浏览器指向:http://<hostname>/
可选:如果您有具体要求,请调整配置:
-
/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 脚本
在
/var/www/html/
目录中为您的项目创建一个hello
目录:# mkdir hello
在
/var/www/html/hello/
目录中创建hello.php
文件,其内容如下:# <!DOCTYPE html> <html> <head> <title>Hello, World! Page</title> </head> <body> <?php echo 'Hello, World!'; ?> </body> </html>
启动
Apache HTTP 服务器
:# systemctl start httpd
要运行
hello.php
文件,请将浏览器指向:http://<hostname>/hello/hello.php
因此,会显示带有 "Hello, World!" 文本的网页。
18.6.2.2. 使用带有 nginx web 服务器的 PHP
您可以通过 nginx
web 服务器运行 PHP 代码。
先决条件
在您的系统上安装 PHP 脚本语言。
请参阅 安装 PHP 脚本语言。
流程
安装
nginx
模块流:# yum module install nginx:stream
使用要安装的
nginx
版本替换 stream。例如,要安装
nginx
版本 1.18::# yum module install nginx:1.18
启动
nginx
服务器:# systemctl start nginx
或者,如果
nginx
服务器已在您的系统中运行,请在安装 PHP 后重启nginx
服务:# systemctl restart nginx
启动
php-fpm
服务:# systemctl start php-fpm
可选: 在引导时启用这两个服务:
# systemctl enable php-fpm nginx
要获取 PHP 设置的信息,请在
/usr/share/nginx/html/
目录中使用以下内容创建index.php
文件:# echo '<?php phpinfo(); ?>' > /usr/share/nginx/html/index.php
要运行
index.php
文件,请将浏览器指向:http://<hostname>/
可选:如果您有具体要求,请调整配置:
-
/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 脚本
在
/usr/share/nginx/html/
目录中为您的项目创建一个hello
目录:# mkdir hello
在
/usr/share/nginx/html/hello/
目录中创建一个包含以下内容的hello.php
文件:# <!DOCTYPE html> <html> <head> <title>Hello, World! Page</title> </head> <body> <?php echo 'Hello, World!'; ?> </body> </html>
启动
nginx
服务器:# systemctl start nginx
要运行
hello.php
文件,请将浏览器指向:http://<hostname>/hello/hello.php
因此,会显示带有 "Hello, World!" 文本的网页。
其他资源
18.6.3. 使用命令行界面运行 PHP 脚本
PHP 脚本通常使用 Web 服务器运行,但也可以使用 命令行界面来运行。
如果只使用命令行运行 php
脚本,请安装 php
模块流的 minimal
配置集。
请参阅 安装 PHP 脚本语言。
先决条件
在您的系统上安装 PHP 脚本语言。
请参阅 安装 PHP 脚本语言。
流程
在文本编辑器中,创建一个
filename.php
文件将 filename 替换为您的文件名称。
从命令行执行创建
filename.php
文件:# php filename.php
例 18.3. 运行"Hello, World!"使用命令行界面 PHP 脚本
使用文本编辑器,创建包含以下内容的
hello.php
文件:<?php echo 'Hello, World!'; ?>
从命令行执行
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 描述其命令行选项和配置文件的完整列表。