CentOS 7预安装PHP版本5.4,该版本已正式结束,并且不再受支持。你可以使用PHP 7,使您的应用程序将加载得更快,并消耗更少的系统资源。

在本教程中,我们将说明如何在CentOS 7安装PHP7.3。我们还将向您展示如何将PHP与Nginx集成。

此外,在安装指定的PHP 7.x版本之前,请确保您的应用程序支持该版本。在开始本教程之前,请确保您以root或者具有sudo权限的用户登录到服务器。

最佳实践是以sudo用户而不是root用户身份运行管理命令。如果您的CentOS没有sudo用户,则可以按照教程如何在CentOS创建sudo用户,创建新的sudo用户。

在CentOS 7有几个不同的软件仓库提供PHP 7.x版本。我们将使用Remi提供的仓库,其中提供包含较新版本的PHP。

Remi仓库依赖EPEL存储库。因此在启用Remi仓库之前需要先安装启用EPEL软件仓库和Remi存储库。

在启用EPEL和Remi仓库时,Yum可能会提示您导入存储库GPG密钥。输入y,然后按Enter

在以下章节中,我们将介绍如何通过Remi仓库安装PHP7.x。如果您已经在CentOS 7安装PHP 5.4,yum将更新PHP的版本。

sudo yum install epel-release yum-utils
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

PHP 7.3是PHP的最新稳定版本。包括WordPress ,Drupal,Joomla和Laravel等大多数现代PHP框架和应用程序都完全支持PHP 7.3。

要在在CentOS 7安装PHP 7.3。首先启用PHP 7.3 Remi仓库,运行命令sudo yum-config-manager --enable remi-php73

sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd命令将会安装PHP 7.3和一些常用的php扩展。

PHP扩展是已编译的动态库,它扩展了PHP的核心功能。PHP扩展程序作为软件包提供,可以通过yum安装PHP扩展。

按照惯例PHP扩展的通常是以php开头,接着是版本号,然后是-和扩展名称。这是通用的格式php-[extname]

并不是所有php扩展都可以通过yum命令进行安装,yum仓库仅提供常用PHP扩展,某些扩展可能需要自己手动编译。

例如,要安装MySQL和GD扩展,您可以运行命令sudo yum install php-mysql php-gd

在安装PHP扩展之后,请不要忘记重启Apache或PHP-FPM服务,否则新的PHP扩展不会加载到PHP-FPM。运行命令sudo systemctl restart php-fpm

安装完成后运行php -v命令打印PHP版本,以验证PHP安装。PHP-FPM服务将会作为Systemd服务单元在后台运行。

因此你需要运行命令sudo systemctl status php-fpm.service启动PHP-FPM,如果你需要查看PHP-FPM的状态可以运行命令sudo systemctl status php-fpm.service

sudo yum-config-manager --enable remi-php73

sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd php-fpm

php -v

sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
sudo systemctl status php-fpm.service
sudo systemctl restart php-fpm
PHP 7.3.1 (cli) (built: Jan  8 2019 13:55:51) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.1, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.1, Copyright (c) 1999-2018, by Zend Technologies

安装Nginx

如何在CentOS 7安装Nginx | myfreax
Nginx发音为engine x,是开源的高性能HTTP和反向代理服务器。它可用作HTTP/Web服务器,负载均衡,内容缓存和反向代理

Nginx PHP

至此你已经安装PHP和Nginx。现在使用你的喜欢的文本编辑器创建Nginx虚拟主机配置文件/etc/nginx/conf.d/example.conf目录中。

在本教程中我们将使用vim编辑器打开文件/etc/nginx/conf.d/example.conf

复制粘帖nginx虚拟主机配置到/etc/nginx/conf.d/example.conf文件中, 使Nginx可以运行PHP文件。

不要忘记重新启动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 vim /etc/nginx/conf.d/example.conf
server {
    server_name example.com;
    root /var/www/html/;
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
/etc/nginx/conf.d/example.conf
sudo systemctl restart nginx
echo "127.0.0.1 example.com" | sudo tee -a /etc/hosts

要测试是否已正确配置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 yum install php-mysql php-gd -y
sudo systemctl restart php-fpm.service
sudo vim /var/www/html/info.php
sudo chmod +x /var/www/html/info.php
<?php
phpinfo();
/var/www/html/info.php

打开你的浏览器,然后访问http://example.com/info.php。您将看到您的PHP配置的信息。

如何在CentOS 7安装MariaDB | myfreax
MariaDB是一个开源关系数据库管理系统,向后兼容MySQL,你可以使用MariaDB直接替代MySQL。它由MySQL原始开发人员和社区共同开发
如何在CentOS 7安装MySQL | myfreax
随着CentOS 7 MySQL的发布,CentOS的存储库中不再提供世界上最流行的开源关系数据库管理系统,MariaDB已成为默认的数据库系统
如何在CentOS 7配置Apache虚拟主机 | myfreax
Apache虚拟主机使您可以在一台服务器上运行多个网站。对于每个网站,您可以设置站点文档根目录

结论

您已经了解了如何在CentOS服务器上安装PHP 7以及如何配置Web服务器以能够处理PHP文件。如果您有任何疑问或反馈,请随时发表评论。