PHP 8.1是PHP的最新版本。包括WordPress ,Drupal,Joomla和Laravel等大多数现代PHP框架和应用程序都完全支持PHP 8.1。
CentOS 8预安装PHP版本5.4,该版本已正式结束,并且不再受支持。但你可以使用PHP 8.1,使您的应用程序将加载得更快,并消耗更少的系统资源。
在本教程中,我们将说明如何在CentOS 8安装PHP 8.0,8.1,8.2等版本。我们还将向您展示如何将PHP与Nginx集成。
此外,在安装指定的PHP 8.x版本之前,请确保您的应用程序支持该版本。您以root或者具有sudo权限的用户登录到服务器。
在CentOS 8有几个不同的软件仓库提供PHP 8.x版本。我们将使用Remi提供的仓库,他还提供最新版本PHP 8.2。
Remi仓库依赖EPEL存储库。因此在启用Remi仓库之前需要先安装启用EPEL软件仓库和Remi存储库。
在启用EPEL和Remi仓库时,Yum可能会提示您导入存储库GPG密钥。输入y
,然后按Enter
。
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
sudo dnf module reset php -y
sudo dnf module install php:remi-8.1 -y
sudo dnf install php81-php-fpm -y
php -v
sudo systemctl enable php-fpm.service --now
sudo systemctl status php-fpm.service
PHP 8.1.11 (cli) (built: Sep 28 2022 09:08:05) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.11, Copyright (c) Zend Technologies
安装完成后运行php -v
命令打印PHP版本,以验证PHP安装。PHP-FPM服务将会作为Systemd服务单元在后台运行。
但你需要运行一次命令sudo systemctl enable php-fpm.service --now启动PHP-FPM,之后PHP-FPM会自动启动。
如果你需要查看PHP-FPM的状态可以运行命令sudo systemctl status php-fpm.service
。
安装 PHP扩展
PHP扩展是已编译的动态库,它扩展了PHP的核心功能。PHP扩展程序作为软件包提供,可以通过dnf
命令安装PHP扩展。
按照惯例PHP扩展的通常是以php开头,接着是版本号,然后是-
和扩展名称。这是通用的格式php[version]-php-[extname]
。
并不是所有php扩展都可以通过dnf
命令进行安装,yum仓库仅提供常用PHP扩展,某些扩展可能需要自己手动编译。
例如,要安装php-mysql和php-gd扩展,您可以运行命令sudo dnf install php81-php-gd php81-php-mysql
。
在安装PHP扩展之后,请不要忘记重启Apache或PHP-FPM服务,否则新的PHP扩展不会加载到PHP-FPM。运行命令sudo systemctl restart php-fpm
。
最后运行命令sudo systemctl status php-fpm.service
打印PHP-FPM服务的状态信息,验证是否成功重启PHP-FPM。
sudo dnf install php81-php-gd php81-php-mysql -y
sudo systemctl restart php-fpm
sudo systemctl status php-fpm.service
安装 Nginx
配置 Nginx PHP
Nginx不支持直接运行PHP文件。我们将使用PHP-FPM FastCGI进程管理器来运行PHP文件。
现在使用你的喜欢的文本编辑器创建Nginx虚拟主机配置文件/etc/nginx/conf.d/example.conf目录中。
在本教程中我们将使用vim编辑器打开文件/etc/nginx/conf.d/example.conf
。
复制粘帖nginx虚拟主机配置到/etc/nginx/conf.d/example.conf
文件中, 使Nginx可以运行PHP文件。
sudo vim /etc/nginx/conf.d/example.conf
server {
server_name example.com;
root /var/www/html/;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
保存文件并退出vim。创建Nginx虚拟主机配置后,你应该在每次修改Nginx配置文件运行nginx -t
命令测试Nginx配置的语法是否正确。
如果没有错误nginx将会提示你nginx: configuration file /etc/nginx/nginx.conf test is successful
。
当测试Nginx配置正确之后,不要忘记运行systemctl
命令重新启动Nginx服务,运行命令sudo systemctl restart nginx
使nginx配置文件生效。
为了能够正确解释域名example.com
。因此我们还需要映射example.com
到本地回环地址127.0.0.1
。
运行命令echo "127.0.0.1 example.com" | sudo tee -a /etc/hosts
。
sudo nginx -t
sudo systemctl restart nginx
echo "127.0.0.1 example.com" | sudo tee -a /etc/hosts
phpinfo 页面
要测试是否已正确配置Web服务器运行PHP,请在/var/www/html
目录中创建一个名为info.php
的新文件。然后保存文件并退出vim。
保存文件后,我们还需要使用chmod命令让info.php
具有可执行权限。运行命令sudo chmod +x /var/www/html/info.php
。
Nginx必须对站点的根目录有读取权限,对于可执行文件,例如php。nginx必须对其有可执行权限,否则nginx返回500内部服务器的错误。
sudo vim /var/www/html/info.php
sudo chmod +x /var/www/html/info.php
<?php
phpinfo();
打开你的浏览器,然后访问http://example.com/info.php
。您将看到您的PHP配置的信息。
结论
您已经了解了如何在CentOS 8安装PHP 8.1以及如何配置nginx服务器以能够处理PHP文件。如果您有任何疑问或反馈,请随时发表评论。