PHP源码编译安装

1.在PHP官网下载PHP的源码包官网下载地址

2.解压并进入文件夹中

 tar -zxvfg php-7.1.13

3.安装命令

 ./configure 
--prefix=/usr/local/php     #安装地址
--with-config-file-path=/etc      #配置文件
--enable-inline-optimization    #开启功能
--disable-debug   #关闭debug
--disable-rpath 
--enable-shared
--enable-opcache 
--enable-fpm                       #运行php-fpm
--with-fpm-user=www               #运行用户
--with-fpm-group=www 
--with-mysql=mysqlnd 
--with-mysqli=mysqlnd 
--with-pdo-mysql=mysqlnd 
--with-gettext 
--enable-mbstring 
--with-iconv 
--with-mcrypt 
--with-mhash 
--with-openssl 
--enable-bcmath 
--enable-soap -
-with-libxml-dir 
--enable-pcntl 
--enable-shmop 
--enable-sysvmsg -
-enable-sysvsem 
--enable-sysvshm 
--enable-sockets 
--with-curl 
--with-zlib 
--enable-zip 
--with-bz2 
--with-readline 
--without-sqlite3 
--without-pdo-sqlite 
--with-pear
--enable-maintainer-zts# pthreads的前置包
--enable-dtrace #静态探针
--with-png-dir --with-freetype-dir --with-jpeg-dir --with-gd #gd库安装

集成命令如下:

 ./configure --prefix=/usr/local/php --with-config-file-path=/etc --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-opcache --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gettext --enable-mbstring --with-iconv --with-mcrypt --with-mhash --with-openssl --enable-bcmath --enable-soap --with-libxml-dir --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-zlib --enable-zip --enable-dtrace --enable-maintainer-zts --with-bz2 --with-readline --without-sqlite3 --without-pdo-sqlite --with-pear

安装过程中可能会出现依赖问题,可能出现的依赖问题如下[可以先运行依赖安装]:

yum install gcc #安装gcc

yum install libxml2-devel #安装lib

yum install openssl openssl-devel #安装openssl

yum install bzip2 bzip2-devel #安装bzip

yum -y install curl-devel #安装curl

yum install libmcrypt #安装libmcrypt 相关信息

yum install libmcrypt-devel

yum install mcrypt

yum install mhash

yum install readline-devel #安装readline

yum install systemtap-sdt-devel #静态指针前置包

如果没有找到对应的源码需要扩展yum源
 yum install epel-release
 #yum  install epel-release
 yum update

4.编译安装

 make && make install

 安装完后 会提示对应的安装地址
  对应的php安装地址
  /usr/loacl/php/bin 配置系统变量

5.配置php-fpm
  cd /usr/local/php/etc
  cp php-fpm.conf.default php-fpm.conf #生成配置文件

6.启动

 /usr/local/php/sbin/php-fpm #可能会报php-fpm.d的错误

 cd /usr/local/php/etc/php-fpm.d
  cp www.conf.default www.conf   #文件中的用户和组都是www最好新建一个www用户

7.没有php.ini
  如果安装过后没有对应的php.ini
  /usr/local/php/bin/php --ini //查看ini的对应目录
  搜索php.ini相关配置
  find / -name php.ini*
  复制一份开发配置到对应的php ini目录
  --with-config-file-path=/etc (这里指定的目录是etc)

8.PHP扩展安装

 建议在php对应的安装目录运行安装,或者把

 PHP相关命令配置到系统中具体如下

  vi /etc/profile
  添加
  PATH=$PATH:/(对应php的安装运行目录[bin])
  export PATH
   source /etc/profile  配置生效
   echo $PATH 查看 

  /usr/local/php/bin

 eg: pecl install msgpack

  如果没有报错,那么恭喜你,安装成功.如果有报错,示例如下:
 PHP Startup: Unable to load dynamic library '/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/msgpack.so' - /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/msgpack.so: cannot open shared object file: No such file or directory in Unknown on line 0
      对应安装的扩展没有在php.ini的扩展目录中
      find / -name msgpack.so //新安装的扩展(复制到对应php扩展目录) 
      /usr/local/lib/php/extensions/no-debug-non-zts-20160303/msgpack.so  //系统pecl安装的默认扩展目录
/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/msgpack.so //php.ini系统扩展目录

这里有线性安全和非线性安全的问题,它会自动生成两个扩展目录,具体使用什么参照你使用的线性安全即可.

9.其他扩展安装

 a.mongodb

 pecl install mongodb (如果无法连接或者报版本限制,解决如下)

下载mongodb的压缩包运行安装命令[pecl也可以安装压缩包哟]
pecl install mongodb-1.13.14.tgz


10.PHP的启动

 a.一般的办法

 /usr/local/php/sbin/php-fpm (start|stop|reload) #比较老的版本
 ps aux | grep php-fpm 
 kill 15891 # 对应的master进程ID 


b.可以开启php-fpm.pid

  系统对应的pid记录地址/usr/local/php/var/run/php-fpm.pid

 kill `cat /usr/local/php/var/run/php-fpm.pid`


c.使用基础命令杀死进程

  pkill php-fpm

d.PHP启动

 /usr/local/php/sbin/php-fpm #找到你PHP对应的安装目录



11.其他

 a.php版本信息不一致[浏览器版本信息php.7.2和CLI模式的版本信息php.5.4]

  初步判断是系统php命令冲突

  $PATH 查看php命令是否在环境变量中

  php -v  #查看环境变量中的版本信息
      /usr/local/php/bin/php -v #查看php安装目录的版本信息

  如果两个版本不一样可以选择你想要的版本,这里选择最新的

 type php #查看php的系统目录
      把最新版本的/usr/local/php/bin/php复制到 type php的目录中


12.待续...


你可能感兴趣的:(PHP源码编译安装)