如何安装PHP在CentOS 8
PHP全称Hypertext Preprocessor是一种开源的通用脚本语言,尤其适用于网络开发并可嵌入HTML中使用。易于一般程序员学习。
PHP的主要目标是允许网络开发人员快速编写动态页面。PHP是最常用的服务器端编程语言之一。有许多流行的CMS和框架,例如WordPress,Magento和Laravel都是用PHP构建的。
在本教程中,我们将说明如何在CentOS 8上安装PHP 7.2、7.3或7.4。包括使用dnf
命令从CentOS存储安装PHP 7.2版本,启用Remi存储库并安装PHP的新版本,配置Nginx与PHP以及PHP-FPM,创建Nginx虚拟主机代理PHP-FPM FastCGI服务器,如何测试Nginx配置文件。在选择要安装的PHP版本之前,请确保您的应用程序支持它。
centos-">安装PHP从CentOS存储
CentOS存储库默认版本是PHP 7.2版本。如果你PHP应用适用于PHP 7.2版本。可以使用以下dnf
命令安装PHP。如果不适用可以参考从Remi存储库安装PHP的教程。
请以root或具有sudo权限的用户运行以下dnf
命令安装PHP和opcache,gd,mysqlnd模块:
sudo dnf install php php-opcache php-gd php-curl php-mysqlnd
在安装PHP时,默认情况下还会安装PHP-FPM,即PHP的FastCGI进程管理器,并用作PHP的FastCGI服务器。当你使用PHP-FPM时,你PHP程序将由PHP-FPM执行。
如果你需要PHP-FPM运行你PHP应用,你需要启动PHP-FPM服务。以下systemctl
命令将启动启动PHP-FPM服务,并在开机时自动启动:
sudo systemctl enable --now php-fpm
安装PHP从Remi存储库
PHP 7.2是CentOS 8存储库可安装的版本。该版本支持大多数PHP应用程序,但自2019年11月起将不再维护。但你可从Remi存储库中获得PHP 7.2之后的新版本。
如果您要安装发行版存储中PHP 7.2稳定版本,请跳过此步骤。但是如果你要安装PHP 7.3或7.4以及更新版本。
请以root或具有sudo权限的用户运行以下dnf
命令来启用Remi存储库:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
以上命令还将启用EPEL存储库。安装完成后,运行以下dnf命令以获取所有可用PHP版本列表:
sudo dnf module list php
输出将显示所有可用php版本,这些版本之中还分为common,devel,minimal。默认下选中的是common。
Last metadata expiration check: 0:02:11 ago on Fri 18 Oct 2019 08:31:43 PM UTC.CentOS-8 - AppStream
Name Stream Profiles Summary
php 7.2 [d][e] common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
默认的PHP版本设置为PHP 7.2。要安装较新的PHP版本,请使用dnf命令启用适合你的PHP版本。以下是安装不同PHP版本的命令。
PHP 7.3
sudo dnf module reset phpsudo dnf module enable php:remi-7.3
PHP 7.4
sudo dnf module reset phpsudo dnf module enable php:remi-7.4
至此,你已在CentOS服务器上安装PHP。
配置Nginx与PHP
默认情况下,PHP-FPM以apache
用户身份运行,即PHP-FPM进程所拥有的权限和apache
用户一样。为避免权限问题,我们将使用nginx
用户运行PHP-FPM服务。
为此我们需要更改php-fpm的配置文件/etc/php-fpm.d/www.conf
,请使用你喜欢的文件编辑器修改文件/etc/php-fpm.d/www.conf
,在本教程中我们将使用vim编辑器打开文件/etc/php-fpm.d/www.conf
。
请以root或具有sudo权限的用户运行以下vim
命令修改文件。
sudo vim /etc/php-fpm.d/www.conf
找到user = apache
和group = nginx
并更改为user = nginx
以及group = nginx
。如下所示:
完成后,保存文件并退出vim编辑器。
在默认情况下/var/lib/php
目录也是由apache用户所拥有,因此我们还需有更改/var/lib/php
目录以及此目录下载所有文件的权限。
如果文件存在权限问题,Nginx服务器将会返回HTTP状态码为500内部服务器错误。这也是新手经常遇到的错误之一。
以下chown命令将递归修改目录/var/www/example.com
目录下的所有文件,并归apache
用户所拥有:
sudo chown -R root:nginx /var/lib/php
为了使修改后php-fpm配置文件生效,我们还需有重新启动PHP-FPM服务。每次更改配置文件都需要重启PHP-FPM服务。
运行以下systemctl
命令重启PHP-FPM服务:
sudo systemctl restart php-fpm
至此,我们已经完成PHP-FPM的配置,接下来添加Nginx虚拟主机,让Nginx可以与PHP-FPM服务可以进行通讯。如果你还没安装Nginx,请参考我们教程如何在CentOS 8上安装Nginx。
由于PHP-FPM是FastCGI服务器,Nginx默认支持FastCGI代理,因此我只需要在Nginx的Server上下文添加location转发以PHP结尾URL到PHP-FPM FastCGI服务器运行PHP程序,并返回PHP-FPM FastCGI服务器运行结果。
使用vim编辑器,创建文件/etc/nginx/conf.d/example.conf
文件,Nginx将会在重启时自动加载该虚拟主机配置文件。
请以root或具有sudo权限的用户运行以下vim
命令创建文件。
sudo vim /etc/nginx/conf.d/example.conf
复制并粘帖以下内容到/etc/nginx/conf.d/example.conf
文件中。这是Nginx整合PHP-FPM最简单虚拟主机文件:
server { serverName 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;
}
}
当你完成对Nginx配置文件修改后,第一件事是首先测试所有Nginx配置文件的语法是否正确,不是重启Nginx以验证配置是否可用。
nginx
命令提供一个选项-t
可用于对配置文件语法的验证,使用以下nginx
命令测试配置文件的语法是否正确:
sudo nginx -t
如果配置没有错误,输出将如下所示:
nginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful
接下来使用systemctl
命令重启Nginx:
sudo systemctl restart nginx
结论
可从默认的CentOS 8存储库安装PHP 7.2。如果要安装最新版本,则需要启用Remi存储库。如果您有任何问题或反馈,请随时发表评论。
以上是 如何安装PHP在CentOS 8 的全部内容, 来源链接: utcz.com/z/507043.html