1.安装

环境:阿里云CentOS 7.3

编译前准备,并安装依赖:

 # yum install -y gcc gcc-c++
 ​
 # yum install -y openssl-devel libxml2-devel bzip2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel recode-devel libicu-devel libzip-devel libxml2-devel sqlite-devel bzip2-devel libcurl-devel libicu-devel oniguruma oniguruma-devel autoconf
 ​
 # useradd -s /sbin/nologin php-fpm

下载并安装:

 # wget https://www.php.net/distributions/php-7.4.0.tar.gz
 ​
 # tar zxf php-7.4.0.tar.gz
 ​
 # cd php-7.4.0
 ​
 # ./configure --prefix=/usr/local/php --enable-mbstring --enable-zip --enable-bcmath --enable-pcntl --enable-ftp --enable-xml --enable-shmop --enable-soap --enable-intl --with-openssl --enable-exif --enable-calendar --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-opcache --enable-fpm --enable-session --enable-sockets --enable-mbregex --enable-wddx --with-curl --with-iconv --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --with-openssl --with-pdo-mysql=mysqlnd --with-gettext=/usr --with-zlib=/usr --with-bz2=/usr --with-recode=/usr --with-xmlrpc --with-mysqli=mysqlnd --with-pear --with-fpm-user=php-fpm --with-fpm-group=php-fpm
 ​
 # make && make install

复制配置文件:

 # cp php.ini-production /usr/local/php/lib/php.ini
 ​
 # cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
 ​
 # ln -s /usr/local/php/sbin/php-fpm /usr/local/bin

修改配置: vim /usr/local/php/etc/php-fpm.d/www.conf

 [www]
 ;监听的地址,可以监听socket ,也可以监听端口
 ;listen = /tmp/php-fcgi.sock
 ;或者这样写,php-fpm 通常在本地使用,php和nginx 通常在一台机器,所以可写127.0.0.1,别的机器 连接,需用本机ip
 listen = 127.0.0.1:9000
 ;sock 文件的权限
 listen.mode = 666
 listen.owner = nobody
 listen.group = nobody
 user = php-fpm
 group = php-fpm
 pm = dynamic
 pm.max_children = 50
 pm.start_servers = 20
 pm.min_spare_servers = 5
 pm.max_spare_servers = 35
 pm.max_requests = 500
 rlimit_files = 1024

加入 systemtl 服务:

 # cp 源代码目录/sapi/fpm/php-fpm.service /usr/lib/systemd/system/

修改error_log文件位置: vim /usr/local/php/etc/php-fpm.conf

 把(第24行附近)
 ;error_log = log/php-fpm.log
 改为
 error_log = /var/log/php-fpm.log

启动:

 # systemctl start php-fpm

查看状态:

 # systemctl status php-fpm -l

显示如下:

# systemctl status php-fpm -l
● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2019-12-06 05:21:57 CST; 2s ago
 Main PID: 28900 (php-fpm)
   CGroup: /system.slice/php-fpm.service
           ├─28900 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)                             
           ├─28901 php-fpm: pool www                                                                     
           ├─28902 php-fpm: pool www                                                                     
           ├─28903 php-fpm: pool www                                                                     
           ├─28904 php-fpm: pool www                                                                     
           ├─28905 php-fpm: pool www                                                                     
           ├─28906 php-fpm: pool www                                                                     
           ├─28907 php-fpm: pool www                                                                     
           ├─28908 php-fpm: pool www                                                                     
           ├─28909 php-fpm: pool www                                                                     
           ├─28910 php-fpm: pool www                                                                     
           ├─28911 php-fpm: pool www                                                                     
           ├─28912 php-fpm: pool www                                                                     
           ├─28913 php-fpm: pool www                                                                     
           ├─28914 php-fpm: pool www                                                                     
           ├─28915 php-fpm: pool www                                                                     
           ├─28916 php-fpm: pool www                                                                     
           ├─28917 php-fpm: pool www                                                                     
           ├─28918 php-fpm: pool www                                                                     
           ├─28919 php-fpm: pool www                                                                     
           └─28920 php-fpm: pool www                                                                     

Dec 06 05:21:57 edwin systemd[1]: Started The PHP FastCGI Process Manager.
Dec 06 05:21:57 edwin systemd[1]: Starting The PHP FastCGI Process Manager...

创建开机自启:

# systemctl enable php-fpm

2.PHP7.4安装扩展模块方法

方法一:

PHP 自身提供了很多扩展,比如 curl、mbstring 等等。我们在编译安装 PHP 时候不可能将所有的扩展全部安装。那么在安装 PHP 后,如果想单独安装某个 PHP 扩展模块应该如何安装?

在编译安装 PHP 完成后,在 PHP 安装目录下有个 ext 目录就是我们已经安装的一些 PHP 扩展模块。

PECL 是通过 PEAR 打包系统来的 PHP 扩展库仓库,我们可以在 PECL 网站上获取 PHP 支持的扩展模块。

本次以php源码目录下的 ext/gd 扩展模块的安装为例说明如何单独添加扩展。

cd php源码目录/ext/gd

/usr/local/php/bin/phpize

注意:如果你的机器上有多个 PHP 版本,一定要执行你准备安装扩展的 PHP 版本对应的 phpize 命令。

此时显示:

Configuring for:
PHP Api Version:         20190902
Zend Module Api No:      20190902
Zend Extension Api No:   320190902

编译安装

在编译扩展时,如果安装有多个 PHP 版本,可以在配置时用 --with-php-config 选项来指定使用哪一个版本编译,该选项指定了相对应的 php-config 脚本的路径。

./configure --with-php-config=/usr/local/php/bin/php-config

make && make install

方法二:

/usr/local/php/bin/pecl install gd

参考: https://www.xbzdr.com/601.html

版权声明:本文内容由互联网用户自发贡献,版权归作者所有,本网站不拥有所有权,也不承担相关法律责任。如果您发现本网站中有涉嫌抄袭的内容,欢迎发送邮件至: 1559179387@qq.com 进行举报,并提供相关证据,一经查实,本网站将立刻删除涉嫌侵权内容。

文章作者: Amelie
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 个人技术心得
运维 php
喜欢就支持一下吧