centos使用SCL搭建开发环境

安装SCL

yum install centos-release-scl-rh
# 改变为阿里源,加速度,编辑
nano /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
# [centos-sclo-rh]的baseurl改为mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/7/sclo/$basearch/rh/
yum makecache
# 安装的软件
/opt/rh/
# 配置文件
/etc/opt/rh/

安装rh-php71&&php71-fpm

yum search php
# 找到php,安装
yum install -y rh-php71 rh-php71-php-fpm
# 查看SCL安装了哪些软件
scl -l
# 是不能使用php -v的,请进入scl软件的bash环境

进入scl软件的bash环境 如:安装php扩展的时候

# 进入一个开启php71的bash/zsh
scl enable rh-php71 bash
scl enable rh-php71 zsh
# 退出bash
exit

服务,centos7+

# 查看rh
systemctl list-unit-files | grep rh-
# 启动
systemctl start rh-php71-php-fpm.service

注意php-fpm配置 如果服务启动不了,请手动进入/opt/rh/rh-App/root/sbin||bin/启动

# 如果是使用的wsl,php-fpm启动提示Protocol not available (92)
# 修改fpm配置文件
nano /etc/opt/rh/rh-php71/php-fpm.d/www.conf
# 修改为文件监听
listen = /run/rh-php-fpm/php7.sock
# 保存,并创建文件夹
mkdir -p /run/rh-php-fpm/

# 如果502,查看nginx的log
# 查看phpfpm的运行权限
ls -la /run/rh-php-fpm/php7.sock
# 是apache
# 修改nginx配置文件,保证fpm和nginx运行权限一致
user = apache

编译php扩展

# 安装对应版本的php-devel,安装之后有php-config等文件
yum install rh-php71-php-devel
# 进入环境
scl enable rh-php71 bash

# 剩下的就是扩展编译,自行编译安装,配置

# 直接使用
/opt/rh/rh-php71/root/bin/phpize
./configure --with-php-config=/opt/rh/rh-php71/root/bin/php-config

# 编译完成之后,退出环境
exit

# 扩展配置目录
ls /etc/opt/rh/rh-php71/php.d/
# 增加编译好的扩展
touch /etc/opt/rh/rh-php71/php.d/99-phalcon.ini
nano /etc/opt/rh/rh-php71/php.d/99-phalcon.ini
# extension=phalcon.so
# 重启php