php服务部署安装

php服务部署安装

开发给的另一个参考:https://blog.51cto.com/frankch/1746232

环境说明:

Centos7.6

安装包路径:/usr/local/src/

安装路径:/usr/local/php

 

1、版本确定7.2.21

2、依赖安装

yum -y install gcc-c++ glibc-headers openssl openssl-devel bzip2 bzip2-devel curl-devel libwebp libwebp-devel libjpeg-devel libpng  libpng-devel libXpm-devel freetype-devel gmp-devel libicu-devel readline-devel recode-devel libXpm libwebp libicu libxml2-devel libmcrypt libmcrypt-devel mcrypt mhash openldap-devel openldap postgresql-devel autoconf msodbcsql mssql-tools unixODBC-devel libxslt libxslt-devel

 

 

rpm -ivh oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm

rpm -ivh oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm

(该包存在于/usr/local/src下)

  

3、源码编译安装过程

tar fvxz php-7.2.21.tar.gz
cd php-7.2.21 
./configure  --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc/ --with-config-file-scan-dir=/usr/local/php/etc/ini.d/ --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-phar --with-iconv-dir=/usr/local/libiconv --with-openssl --with-pcre-regex --with-pcre-jit --with-zlib --enable-bcmath --with-bz2 --enable-calendar --with-curl --enable-exif --enable-filter --enable-ftp --with-openssl-dir --with-gd --with-webp-dir --with-jpeg-dir --with-png-dir --with-xpm-dir --with-freetype-dir --enable-gd-native-ttf --enable-gd-jis-conv --with-gettext --with-gmp --with-mhash --enable-intl --enable-mbstring --enable-mbregex --enable-mbregex-backtrack --with-mysqli --enable-embedded-mysqli --enable-pcntl --with-pdo-mysql --with-readline --with-recode --enable-shmop --enable-soap --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-xmlrpc --with-libxml-dir --with-iconv-dir --enable-zip --with-pcre-dir --enable-embed  --with-xsl --enable-opcache

make
make install

4、配置文件设置

cp -fr /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 -fr  /usr/local/src/php-7.2.21/php.ini-development  /usr/local/php/etc/php.ini

5、启动脚本设置

1)Centos6的方式:
cp -fr sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

2)Centos7的方式:
创建一个脚本,脚本如下
cat /usr/lib/systemd/system/php-fpm.service 
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=forking
PIDFile=/usr/local/php/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

6、服务验证

/usr/local/php/sbin/php-fpm -t

7、服务启停命令

Centos6如下:
/etc/init.d/php-fpm start
/etc/init.d/php-fpm stop

Centos7如下(我们使用的是该种)
systemctl start php-fpm.service
systemctl stop php-fpm.service

8、增加php环境变量

cp -fr /usr/local/php/bin/* /usr/sbin/
cp -fr /usr/local/php/sbin/* /usr/sbin/

特殊点:

1、后续追加了pgsql、oci8模块的流程:

1)cd /usr/local/src/php-7.2.21/ext/pgsql
2)phpize 
3)./configure --with-php-config=/usr/local/php/bin/php-config 
4make && make install
然后验证,问题消失
1)cd /usr/local/src/php-7.2.21/ext/oci8/
2)phpize
3)./configure --with-php-config=/usr/local/php/bin/php-config
4make && make install

2、后续追加的mcrypt模块

1)cd /usr/local/src/
2wget http://pecl.php.net/get/mcrypt-1.0.1.tgz 
3tar xf mcrypt-1.0.1.tgz
4)cd mcrypt-1.0.1
5)phpize
6)./configure --with-php-config=/usr/local/php/bin/php-config
7make  &&  make install

3、后续追加pdo_oci模块

1)cd /usr/local/src/php-7.2.21/ext/pdo_oci
2)phpize
3)./configure  --with-php-config=/usr/local/php/bin/php-config --with-pdo-oci=instantclient,/usr/lib/oracle/12.1/client64/lib
4make && make install
开启pdo_oci模块功能
cat /usr/local/php/etc/ini.d/pdo_oci.ini  
extension=pdo_oci.so

4、后续追加的swoole模块

1wget http://pecl.php.net/get/swoole-4.5.2.tgz
2tar fvxz swoole-4.5.2.tgz 
3)cd swoole-4.5.2
4)  phpize  && ./configure --with-php-config=/usr/local/php/bin/php-config  && make  && make install

5)后续追加cphalcon3.1.2的模块

自行下载该版本包
1) tar  fvxz  cphalcon-3.1.2.tar.gz
2) cd  cphalcon/build/php7/64bits
3)  phpize  && ./configure --with-php-config=/usr/local/php/bin/php-config  && make  && make 

升级7.3的时候需要用更新的包,流程如下,东西都在/usr/local/src/cphalcon-new下面

下载git clone http://github.com/phalcon/cphalcon

解压完后

cd cphalcon-master/build

./install  --php-config /usr/local/php7.3/bin/php-config  --phpize  /usr/local/php7.3/bin/phpize 

make && make install

因为安装的是cphalcon4.0的版本,所以依赖于psr需要安装,流程如下

git clone https://github.com/jbboehr/php-psr.git

cd php-psr/

/usr/local/php7.3/bin/phpize

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

make && make install

6、追加zookeeper

cd /usr/local/src/
wget http://mirror.bit.edu.cn/apache/zookeeper/stable/zookeeper-3.4.12.tar.gz 
tar -zxvf zookeeper-3.4.12.tar.gz
cd zookeeper-3.4.12/src/c/
./configure --prefix=/usr/local/zookeeper  //指定一下安装目录
make && make install
wget http://pecl.php.net/get/zookeeper-0.6.2.tgz,然后解压
cd /usr/local/src/zookeeper-0.6.4
./configure --with-php-config=/usr/local/php/bin/php-config  --with-libzookeeper-dir=/usr/local/zookeeper
make && make install
注意:
移植到别的机器使用要自行将jenkins机器的/usr/local/zookeeper 拷贝走到后端机器即可使用

7、追加主数据必须的连接sqlserver的odbc模块

1)curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
2yum -y install msodbcsql17
备注:如果还有问题,再安装后续两个,通常安装完msodbcsql17就可以了
yum -y install mssql-tools
yum -y install unixODBC-devel
参考
https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15
https://blog.csdn.net/zhaodongku/article/details/106982575
https://blog.csdn.net/weixin_33875564/article/details/91922485

8、追加mongodb模块

wget https://pecl.php.net/get/mongodb-1.6.0.tgz
tar fvxz mongodb-1.6.0.tgz 
cd /usr/local/src/mongodb-1.6.0
 /usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config 
make &&  make install

9、追加安装xsl、ldap模块

/usr/local/src/php-7.3.22/ext/xsl   
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config 
make &&  make install

cd /usr/local/src/php-7.3.22/ext/ldap
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config 
make &&  make install

10、追加安装人力需要的xlswriter 1.3.*

参考https://xlswriter-docs.viest.me/zh-cn/an-zhuang/ubuntu
cd /usr/local/src/
git clone https://github.com/viest/php-ext-excel-export
cd php-ext-excel-export/
git submodule update --init
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config  --enable-reader
make &&  make install

11、问题汇总

如出现启动服务时候报ldap.so.so相关问题,可以将线上老的机器下的
/opt/php72/lib/php/extensions/no-debug-non-zts-20170718/ldap.so  拷贝到新机器的
/usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/路径下,再启动,即恢复正常
2、
参考文章
https://www.cnblogs.com/yangwenxin/p/6653450.html
报错参考:https://blog.csdn.net/u011608531/article/details/50756112

composer安装部署

php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"

php composer-setup.php

mv composer.phar /usr/local/sbin/composer

composer --version

redis扩展安装

wget http://pecl.php.net/get/redis-5.3.1.tgz
解压到/usr/local下
tar -zxvf redis-5.3.1.tgz
cd /usr/local/redis-5.3.1/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
cd /usr/local/php/etc
vi php.ini
在; extension_dir = "ext"下面增加
extension=redis.so

swoole-openssl扩展安装

cd /usr/local/
wget http://pecl.php.net/get/swoole-4.5.3.tgz
tar -zxvf swoole-4.5.3.tgz 
cd swoole-4.5.3
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-openssl 
make
make install
systemctl restart php-fpm

xlswriter扩展安装

wget https://pecl.php.net/get/xlswriter-1.3.2.tgz
tar xf xlswriter-1.3.2.tgz
cd xlswriter-1.3.2
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-reade 
 make && make install


这个没加[xlswriter]
extension=/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/xlswriter.so

pecl扩展安装

cd /usr/local/php/bin/
wget http://pear.php.net/go-pear.phar -O go-pear.php
php go-pear.php
使用pecl插件安装插件的步骤
pecl install XXX插件
追加/usr/local/php/etc/ini.d/xxx.ini配置文件

php-rdkafka扩展安装

参考文档:https://segmentfault.com/a/1190000016310618
1)先安装个依赖包
 git clone https://github.com/edenhill/librdkafka.git
$ cd librdkafka
$ ./configure
$ make && make install

2)再安装主安装包
1、cd /usr/local/php/bin
2、./pecl install rdkafka
3、添加扩展
vim /usr/local/php/etc/ini.d/rdkafka.ini 
extension=rdkafka.so

php igbinary扩展安装

[root@nginx ~]# cd /usr/local/src/
[root@nginx src]# wget http://pecl.php.net/get/igbinary-3.1.2.tgz
[root@nginx src]# tar  -zxvf igbinary-3.1.2.tgz
[root@nginx src]# cd igbinary-3.1.2
[root@nginx igbinary-3.1.2]# /usr/local/php/bin/phpize
[root@nginx igbinary-3.1.2]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@nginx igbinary-3.1.2]# make
[root@nginx igbinary-3.1.2]# make install
[root@nginx igbinary-3.1.2]# vim /usr/local/php/etc/php.ini
;extension_dir = "./"      # 增加改成下面路径
extension_dir = "/usr/local/php-7.2.31/lib/php/extensions/no-debug-non-zts-20170718/"
extension = memcache.so
extension = redis.so
extension = igbinary.so   # 增加
 
 
# 重启php-fpm
[root@nginx ~]# systemctl restart php-fpm
原文地址:https://www.cnblogs.com/litzhiai/p/15578656.html