CentOs7 安装php7和postgresql9.6安装及php pgsql扩展模块

php yum安装会有很多不必要的东西随着安装进来,所以这里我选择用PHP源码包的形式安装。

安装php

1.下载php源码包

我在官网随便找了个地址下载

http://am1.php.net/distributions/php-7.1.9.tar.gz

解压php7

tar -xvf php-7.1.9.tar.gz

进入php目录

cd  php-7.1.9

安装依赖包

yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel

2.编译配置
# ./configure \
--prefix=/usr/local/php \
--with-config-file-path=/etc \
--enable-fpm \
--with-fpm-user=nginx  \
--with-fpm-group=nginx \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared  \
--enable-soap \
--with-libxml-dir \
--with-xmlrpc \
--with-openssl \
--with-mcrypt \
--with-mhash \
--with-pcre-regex \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir  \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-zlib-dir \
--with-pdo-sqlite \
--with-readline \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets  \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-opcache
3.正式安装
# make && make install

配置环境变量

vim /etc/profile

末尾追加

PATH=$PATH:/usr/local/php/bin
export PATH

执行命令使改动生效

# source /etc/profile
4.配置php-fpm

把所需的几个配置文件放到需要的位置

# cp php.ini-production /etc/php.ini
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
# chmod +x /etc/init.d/php-fpm

启动php-fpm

# /etc/init.d/php-fpm start
配置nginx 支持php应用:
vim /etc/nginx/conf.d/default.conf

修改默认location块,支持.php文件:

location / {
    root   html;
    index  index.php index.html index.htm;
}
下一步配置来保证对于 .php 文件的请求将被传送到后端的 PHP-FPM 模块, 取消默认的 PHP 配置块的注释,并修改为下面的内容:
location ~* \.php$ {
    fastcgi_index   index.php;
    fastcgi_pass    127.0.0.1:9000;
    include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME    /usr/share/nginx/html$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
}

创建测试文件

rm /usr/share/nginx/html/index.html
echo "<?php phpinfo(); ?>" >> /usr/share/nginx/html/index.php

重启或开启nginx

service nginx restart 
service nginx start

打开浏览器,访问 http://localhost,将会显示 phpinfo() 


追加postgresql扩展

1.安装postgresql

可以直接按照官网的方式yum 安装

yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

安装PostgreSQL 9.6

yum install postgresql96

安装服务器软件包

yum install postgresql96-server postgresql96-contrib

初始化数据库并自动启动服务

/usr/pgsql-9.6/bin/postgresql96-setup initdb
systemctl enable postgresql-9.6
systemctl start postgresql-9.6

修改配置文件

vim  /var/lib/pgsql/9.6/data/pg_hba.conf

找到host    all             all             127.0.0.1/32 这行,修改为

host    all             all             127.0.0.1/32            trust

重启postgresql

systemctl restart postgresql-9.6

修改用户名密码

su - postgres  切换用户,执行后提示符会变为 '-bash-4.2$'

psql -U postgres 登录数据库,执行后提示符变为 'postgres=#'

ALTER USER postgres WITH PASSWORD 'abc123' 

设置postgres用户密码 \q  退出数据库

2.追加php pgsql扩展模块

追加前先把相关软件安装下

yum install m4
yum install autoconf
yum install postgresql-devel

1.进入php编译目录下的ext/pgsql/

2.根据php安装路径执行/usr/local/php/bin/phpize

3.运行./configure --with-php-config=/usr/local/php/bin/php-config

4.make && make install

5.修改php配置文件/etc/php.ini,添加pgsql.so模块

vim /etc/php.ini

添加

extension=pgsql.so

完成后,检测php扩展,也可以浏览器打开localhost,查看phpinfo中是否有pgsql模块

php -m | grep pgsql

参考

CentOS 7 安装 PHP 7

CentOS 7 安装、配置、使用 PostgreSQL 9.5(一)安装及基础配置
https://secure.php.net/manual/zh/install.unix.nginx.php

https://www.postgresql.org/download/linux/redhat/

编译php增加postgresql的pgsql和pdo_pgsql扩展模块

运行phpize时出现:Cannot find autoconf

重新编译PHP7支持PostgreSQL


暂无评论
发表新评论