1.php下载
https://www.php.net/
需要下载7.2以后的版本,这里我使用的是7.2.33
2.安装依赖包
注意,这里不能安装postgresql12,可能是因为pg12太新,php还没有匹配
yum -y install tar gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel libxml2 libxml2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel openldap openldap-devel libmcrypt libmcrypt-devel
yum install \
libxml2 \
libxml2-devel \
openssl \
openssl-devel \
libcurl \
libcurl-devel \
libjpeg \
libjpeg-devel \
libpng \
libpng-devel \
freetype \
freetype-devel \
libmcrypt \
libmcrypt-devel \
bzip2 \
bzip2-devel \
zip \
-y
3.编译安装php
解压缩安装文件,进入文件,进行安装配置
首先configure:
echo '/usr/local/lib64 /usr/local/lib /usr/lib /usr/lib64'>>/etc/ld.so.conf
ldconfig -v
cp /usr/lib64/libldap* /usr/lib/
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-ctype \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--with-bz2 \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-gd \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-soap \
--with-gettext \
--with-pgsql=/usr/bin \
--with-kerberos \
--enable-libxml \
--enable-xml \
--with-ldap \
--enable-sockets \
--enable-json \
--with-gettext
make:
make之前需要修改下面的配置:
make过程中出错:
ext/ldap/.libs/ldap.o: undefined reference to symbol 'ber_strdup'
//usr/lib/x86_64-linux-gnu/liblber-2.4.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
解决办法:遇到这种类似的情况,说明「./configure 」沒抓好一些环境变数值。解决方法,来自老外的一篇文章:
在PHP源码目录下 vi Makefile 找到 EXTRA_LIBS 开头行,在行末添加 ‘ -llber ‘ 保存退出再次make即可。
最后make install
1. 将php可执行程序连接到bin下
/usr/local/php/bin/php -v
ln -s /usr/local/php/bin/php /usr/local/bin/
php -v
ln -s /usr/local/php/sbin/php-fpm /usr/local/bin
php-fpm -t
2. php的管理命令
php -i|grep ini #查看配置文件路径
php -m #查看php的模块
php -i|grep config #查看编译参数
php-fpm #启动php-fpm,目前还无法启动,得拷贝个配置文件
3.添加fpm自动启动
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
3.配置php
1.拷贝php配置文件 :
cp php.ini-production /usr/local/php/etc/php.ini
2.拷贝php-fpm配置文件:
mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
mv /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
3.启动php-fpm
[root@zabbix-server php-fpm.d]# service php-fpm start
Starting php-fpm done
[root@zabbix-server php-fpm.d]#
[root@zabbix-server php-fpm.d]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 14408/php-fpm: mast
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3367/sshd
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 12784/postgres
tcp6 0 0 :::22 :::* LISTEN 3367/sshd
tcp6 0 0 :::5432 :::* LISTEN 12784/postgres
4.测试php连通pg
创建php文件,注意修改下面的ip地址用户名密码,数据库名
<?php
$conn_string = "host=192.168.56.51 port=5432 dbname=postgres user=postgres password=postgres" ;
$dbconn = pg_connect($conn_string);
if (!$dbconn)
echo "连接失败!!!!!/r/n";
else
echo "连接成功!!!!!/r/n";
pg_close($dbconn);
?>
使用php进行测试:
[root@zabbix-server ~]# php test.php
连接成功!!!!!/r/n[root@zabbix-server ~]#