16.6. 使用 PHP 脚本语言
超文本 Preprocessor(PHP)是主要用于服务器端脚本的通用脚本语言,可让您使用 Web 服务器运行 PHP 代码。
在 RHEL 8 中,PHP 脚本语言由 php
模块提供,该模块可在多个流(版本)中可用。
根据您的用例,您可以安装所选模块流的特定配置集:
-
common
- 使用 Web 服务器进行服务器端脚本的默认配置文件。它包括多个广泛使用的扩展。 -
minimal
- 此配置集只安装命令行来使用 PHP 编写脚本,而无需使用 Web 服务器。 -
devel
- 此配置集包含来自common
配置集的软件包以及用于开发用途的其他软件包。
16.6.1. 安装 PHP 脚本语言 复制链接链接已复制到粘贴板!
您可以安装 php
模块的所选版本。
流程
要使用默认配置集安装
php
模块流,请使用:yum module install php:stream
# yum module install php:stream
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用您要安装的 PHP 版本替换 stream。
例如,要安装 PHP 8.0:
yum module install php:8.0
# yum module install php:8.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 默认
common
配置集安装php-fpm
软件包,并预配置 PHP 以用于Apache HTTP 服务器
或nginx
。要安装
php
模块流的特定配置集,请使用:yum module install php:stream/profile
# yum module install php:stream/profile
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用您要安装的 配置集 的名称替换 stream。
例如,要安装 PHP 8.0 以供不使用 Web 服务器:
yum module install php:8.0/minimal
# yum module install php:8.0/minimal
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
16.6.2. 通过 Web 服务器使用 PHP 脚本语言 复制链接链接已复制到粘贴板!
16.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
# yum module install httpd:2.4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动
Apache HTTP 服务器
:systemctl start httpd
# systemctl start httpd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,如果
Apache HTTP
服务器已在您的系统中运行,请在安装 PHP 后重启httpd
服务:systemctl restart httpd
# systemctl restart httpd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动
php-fpm
服务:systemctl start php-fpm
# systemctl start php-fpm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选: 在引导时启用这两个服务:
systemctl enable php-fpm httpd
# systemctl enable php-fpm httpd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要获取有关 PHP 设置的信息,请在
/var/www/html/
目录中创建带有以下内容的index.php
文件:echo '<?php phpinfo(); ?>' > /var/www/html/index.php
# echo '<?php phpinfo(); ?>' > /var/www/html/index.php
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要运行
index.php
文件,请将浏览器指向:http://<hostname>/
http://<hostname>/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:如果您有具体要求,请调整配置:
-
/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
池配置
-
例 16.1. 运行"Hello, World!"使用 Apache HTTP 服务器的 PHP 脚本
在
/var/www/html/
目录中为您的项目创建一个hello
目录:mkdir hello
# mkdir hello
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
/var/www/html/hello/
目录中创建hello.php
文件,其内容如下:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动
Apache HTTP 服务器
:systemctl start httpd
# systemctl start httpd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要运行
hello.php
文件,请将浏览器指向:http://<hostname>/hello/hello.php
http://<hostname>/hello/hello.php
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 因此,会显示带有 "Hello, World!" 文本的网页。
16.6.2.2. 使用带有 nginx web 服务器的 PHP 复制链接链接已复制到粘贴板!
您可以通过 nginx
web 服务器运行 PHP 代码。
先决条件
在您的系统上安装 PHP 脚本语言。
请参阅 安装 PHP 脚本语言。
流程
安装
nginx
模块流:yum module install nginx:stream
# yum module install nginx:stream
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用要安装的
nginx
版本替换 stream。例如,要安装
nginx
版本 1.18::yum module install nginx:1.18
# yum module install nginx:1.18
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动
nginx
服务器:systemctl start nginx
# systemctl start nginx
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,如果
nginx
服务器已在您的系统中运行,请在安装 PHP 后重启nginx
服务:systemctl restart nginx
# systemctl restart nginx
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动
php-fpm
服务:systemctl start php-fpm
# systemctl start php-fpm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选: 在引导时启用这两个服务:
systemctl enable php-fpm nginx
# systemctl enable php-fpm nginx
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要获取 PHP 设置的信息,请在
/usr/share/nginx/html/
目录中使用以下内容创建index.php
文件:echo '<?php phpinfo(); ?>' > /usr/share/nginx/html/index.php
# echo '<?php phpinfo(); ?>' > /usr/share/nginx/html/index.php
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要运行
index.php
文件,请将浏览器指向:http://<hostname>/
http://<hostname>/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:如果您有具体要求,请调整配置:
-
/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
池配置
-
例 16.2. 运行"Hello, World!"使用 nginx 服务器的 PHP 脚本
在
/usr/share/nginx/html/
目录中为您的项目创建一个hello
目录:mkdir hello
# mkdir hello
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
/usr/share/nginx/html/hello/
目录中创建一个包含以下内容的hello.php
文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动
nginx
服务器:systemctl start nginx
# systemctl start nginx
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要运行
hello.php
文件,请将浏览器指向:http://<hostname>/hello/hello.php
http://<hostname>/hello/hello.php
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 因此,会显示带有 "Hello, World!" 文本的网页。
16.6.3. 使用命令行运行 PHP 脚本 复制链接链接已复制到粘贴板!
PHP 脚本通常使用 Web 服务器运行,但也可以使用命令行来运行。
如果只使用命令行运行 php
脚本,请安装 php
模块流的 minimal
配置集。
请参阅 安装 PHP 脚本语言。
先决条件
在您的系统上安装 PHP 脚本语言。
请参阅 安装 PHP 脚本语言。
流程
在文本编辑器中,创建一个
filename.php
文件将 filename 替换为您的文件名称。
从命令行执行创建
filename.php
文件:php filename.php
# php filename.php
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
例 16.3. 运行"Hello, World!"使用命令行 PHP 脚本
使用文本编辑器,创建包含以下内容的
hello.php
文件:<?php echo 'Hello, World!'; ?>
<?php echo 'Hello, World!'; ?>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从命令行执行
hello.php
文件:php hello.php
# php hello.php
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 结果会输出 "Hello, World!"。