Linux教程网

如何安装PHP环境及相关概念

近期工作需要,项目使用 PHP 开发,本文简单记录一下 PHP 如何通过编译的方式进行安装。

  • 操作系统:CentOS
  • PHP版本:php-8.1.16

安装PHP

首先安装依赖包

1
2
yum install libxml2 libxml2-devel openssl openssl-devel \
sqlite-devel curl-devel

下边的步骤展示安装编译 PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 下载
curl -O https://www.php.net/distributions/php-8.1.16.tar.gz

# 解压
tar -zxvf php-8.1.16.tar.gz
cd php-8.1.16

# 编译
./configure --prefix=/usr/local/php-8.1.16 \
--with-config-file-path=/usr/local/php-8.1.16/etc \
--enable-fpm --with-fpm-user=www --with-fpm-group=www \
--enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd \
--with-zlib --with-curl --with-openssl

make && make install

# 配置PHP
cp php.ini-development /usr/local/php-8.1.16/etc/php.ini

设置环境变量

1
2
3
4
# /etc/profile 增加如下内容
export PATH=$PATH:/usr/local/php-8.1.16/bin:/usr/local/php-8.1.16/sbin

$ source /etc/profile

验证

1
php -v

安装Composer

1
2
3
4
5
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"

mv composer.phar /usr/local/bin/composer

设置国内源

默认情况下,composer 从国外站点拉内容,平常很容易报错,可以通过设置国内源来避免这个问题。

  1. 设置全局源
1
$ composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
  1. 为特定项目设置源

如果你只想为特定的项目设置源,你可以在该项目的 composer.json 文件中指定。打开 composer.json 文件并添加或修改 repositories 字段,例如:

1
2
3
4
5
6
7
8
9
{
"repositories": [
{
"type": "composer",
"url": "https://mirrors.aliyun.com/composer"
}
]
// 其他配置...
}

常见可用的国内源:

参考链接:https://getcomposer.org/download/

关于PHP-FPM介绍

PHP-FPM,全称是 PHP FastCGI Process Manager,PHP FastCGI 进程管理器,用于管理 PHP 进程池的软件,接收 web 服务器的请求。

作用

PHP-FPM 提供了更好的 PHP 进程管理方式,可以有效控制内存和进程、可以平滑重载 PHP 配置。FPM 的出现,是为了很好的管理 php-fastcgi 而实现的一个程序。

PHP FastCGI 是什么

PHP FastCGI 只是一个 CGI 程序,这会解析 PHP 请求,并且返回结果,但不会管理。其实 PHP FastCGI 出现之前有一个 PHP CGI 存在,只是它的执行效率低,因此被 PHP FastCGI 取代。

FastCGI 与 CGI 的区别

当 web 服务分发请求时,通过匹配后缀知道该请求是一个动态的 PHP 请求,会把这个请求转发给 PHP

  • 对于CGI:每个请求过来都要创建进程、读取配置、初始化环境、返回数据、退出进程,整体来说效率低下
  • FastCGI: 启动时让 master 进程读取配置,然后启动多个 worker 进程来处理请求。当 worker 不够时,master 会通过配置信息动态启动 worker,等空闲时再回收 worker

专题:

本文发表于 2024-03-05,最后修改于 2024-11-16。

本站永久域名「 golinuxblog.com 」,也可搜索「 Linux教程网 」找到我。


上一篇 « 软件开发规范的那些事 下一篇 » nginx 缓存和缓冲

推荐阅读

Big Image