🦄 2024 独立开发者训练营,一起创业!查看介绍 / 立即报名 →

路径(十四):在本地 CentOS 7 上搭建 Web 开发环境 — PHP

Web 应用如果是用 PHP 语言写的,比如 Drupal,WordPress,Laravel 等等,你需要在服务器上安装 PHP 的解释工具。你还需要让 Web 服务器可以跟 PHP 解释工具能够交流,这样 Web 服务器才能为用户输出请求的内容。在后面,我们要去安装一个叫 Nginx 的 Web 服务器,它跟 PHP 的交流方式可以使用 PHP-FPM 。

安装 PHP-FPM

先用包管理工具搜索一下仓库里有没有可以安装的 PHP-FPM。可以搜索同时包含 php 与 fpm 关键词的包,像这样:

yum search php fpm

在我的系统里,找到两个包:

php-fpm.x86_64 : PHP FastCGI Process Manager
php56u-fpm.x86_64 : PHP FastCGI Process Manager

第一个 php-fpm.x86_64 是系统自带的仓库里的包,用 yum info php-fpm 可以查看一下这个包的信息,在我这里显示的版本是 5.4.16 ,也就是跟它对应的也是这个版本的 PHP。如果你需要更高版本的 PHP,就需要用到第二个包,用 yum info php56u-fpm,显示的版本是 5.6.4,这个包来自之前我们为系统安装的 ius 仓库。这里的 56u 表示的是 PHP 的大的版本,以后面安装 PHP 扩展的时候,也需要去安装带这个 56u 的扩展。

yum install php56u-fpm

返回:

依赖关系解决

========================================================================================================
 Package                  架构                        版本                                         源  
========================================================================================================
正在安装:
 php56u-fpm               x86_64                      5.6.4-1.ius.centos7                          ius 
为依赖而安装:
 libxslt                  x86_64                      1.1.28-5.el7                                 base
 php56u-cli               x86_64                      5.6.4-1.ius.centos7                          ius 
 php56u-common            x86_64                      5.6.4-1.ius.centos7                          ius 
 php56u-pear              noarch                      1:1.9.5-1.ius.centos7                        ius 
 php56u-pecl-jsonc        x86_64                      1.3.6-3.ius.centos7                          ius 
 php56u-process           x86_64                      5.6.4-1.ius.centos7                          ius 
 php56u-xml               x86_64                      5.6.4-1.ius.centos7                          ius

在上面,你会发现 PHP-FPM 依赖的一些东西。也就是你要安装 PHP-FPM,这些依赖的东西也会同时安装到你的系统里。输入 y ,然后回车。

启动 PHP-FPM

使用 service 命令启动 PHP-FPM。

service php-fpm start

启动失败,查看一下 php-fpm 的状态:

service php-fpm status

发现了出现的错误:

ERROR: [pool www] cannot get uid for user 'apache'

意思是系统里没有 PHP-FPM 要用的 apache 这个用户。安装了 apache,才会在系统里创建这个用户,我们也可以手工去创建这个用户。或者改成一个系统里已有的用户,这里我把 PHP-FPM 的用户改成 vagrant,在配置生产环境的时候,你要把这个用户名换成其它的。先找到 PHP-FPM 的配置文件,用 vim 编辑一下这个文件。

vim /etc/php-fpm.d/www.conf

找到:

user = php-fpm

换成:

user = vagrant

找到:

group = php-fpm

换成:

group = vagrant

保存配置文件,再去启动 PHP-FPM,查看一下 php-fpm 的状态,确定已经启动成功。

自动启动 PHP-FPM

在启动系统的时候,自动启动 PHP-FPM。

systemctl enable php-fpm.service

安装 PHP 扩展

Web 应用需要不同的 PHP 扩展,为它们提供一些基本的功能,比如用数据库的扩展去跟数据库管理系统交互,用 GD 扩展来处理图像,用 JSON 扩展处理 JSON 格式的数据 ...  在你的运行环境里,必须为 Web 应用安装这些需要的 PHP 扩展,才能正常去运行它们。在安装或者运行这些 Web 应用的时候,它们会提示你需要的 PHP 扩展。你可以用关键词用包管理工具搜索仓库里的软件包。

之前我们安装的 PHP 是 5.6 这个版本的,所以,你在给它安装扩展的时候也要选择这个版本的扩展。下面是一些常用的 PHP 扩展:

yum install php56u-gd php56u-mysqlnd php56u-pdo php56u-mcrypt php56u-mbstring php56u-xmlrpc php56u-pecl-jsonc
路径 php php-fpm

评论

最近博客更新的好快呢

多写点有用的东西。嘿嘿。

yum install php56u-fpm
默认的mirror都是国外的,全都下载失败,补充一个国内镜像站的解决方案吧

唉,重启后过一会儿fastest-mirror又好了,之前前面全都带叹号。
!repo id repo name status
!base/7/x86_64 CentOS-7 - Base 8,465
!epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 7,195
!extras/7/x86_64 CentOS-7 - Extras 104
!ius/x86_64 IUS Community Packages for Enterprise Linux 7 - x86_64 103
!updates/7/x86_64 CentOS-7 - Updates 1,668
repolist: 17,535

vim /etc/php-fpm.d/www.conf发现
user = php-fpm
group = php-fpm
可能是因为较新版PHP-FPM对此做了修改吧,在此标记一下,方便后面来的人。

已经修正 :)

看来user = vagrant是以后配置需要的,已修改

输入systemctl enable php-fpm.service
显示bash: systemctl: command not found

微信好友

用微信扫描二维码,
加我好友。

微信公众号

用微信扫描二维码,
订阅宁皓网公众号。

240746680

用 QQ 扫描二维码,
加入宁皓网 QQ 群。

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点