1. 获取php软件

搜狐镜像站提供了php各种版本,网址是http://mirrors.sohu.com/php/ ,我们本次要下载
的PHP版本是5.5.26

下载php命令:
wget http://mirrors.sohu.com/php/php-5.5.26.tar.gz

2. 解压配置PHP

执行如下命令解压并配置PHP软件:
tar xf php-5.5.26.tar.gz
cd php-5.5.26
./configure \
—prefix=/app/php5.5.26 \
—with-mysql=/app/mysql/ \
—with-pdo-mysql=mysqlnd \
—with-iconv-dir=/usr/local/libiconv \
—with-freetype-dir \
—with-jpeg-dir \
—with-png-dir \
—with-zlib \
—with-libxml-dir \
—enable-xml \
—disable-rpath \
—enable-bcmath \
—enable-shmop \
—enable-sysvsem \
—enable-inline-optimization \
—with-curl \
—enable-mbregex \
—enable-fpm \
—enable-mbstring \
—with-mcrypt \
—with-gd \
—enable-gd-native-ttf \
—with-openssl \
—with-mhash \
—enable-pcntl \
—enable-sockets \
—with-xmlrpc \
—enable-soap \
—enable-short-tags \
—enable-static \
—with-xsl \
—with-fpm-user=nginx \
—with-fpm-group=nginx \
—enable-ftp \
—enable-opcache=no

特别强调:上述每行结尾的换行符反斜线(\)之后不能再有任何字符包括空格。

执行上述命令后,最后的正确输出提示如下图所示。
编译安装PHP - 图1
对于上面的命令,部分参数说明如下:

  • —prefix=/app/php.5.5.26 :表示指定PHP的安装路径为/app/php.5.5.26
  • —with-mysql=/app/mysql :表示需要指定mysql的安装路径,安装PHP需要mysql的相关内容。当然,如果没有MySQL软件包,也可以不单独安装,这样的情况可使用

—with-mysql=mysqld替代—with-mysql=/app/mysql,因为PHP里已经自带了连接MySQL的客户端工具。
□ —with-fpm-user=nginx : nginx表示指定PHP-FPM进程管理的用户为Nginx,此处最好和
Nginx服务用户统一。
□ —with-fpm-group=nginx : nginx表示指定PHP-FPM进程管理的用户组为Nginx,此处最好和
Nginx服务用户组统一。

  • –enable-fpm :表示激活PHP-FPM方式服务,即FastCGI方式运行PHP服务。
  • 还可以通过执行./configure —help命令来查看以上各个参数的用途。
  • 以上配置中的”\”反斜线表示换一行输入。

编译安装PHP - 图2

3. 编译PHP

正确执行前文配置PHP软件的./configure系列命令后,就可以编译PHP软件了,具体操作
过程如下。

[root@web01 php-5.5.32]# ln -s /app/mysql/lib/libmysqlclient.so.18 /usr/lib64/
[root@web01 php-5.5.32]# touch ext/phar/phar.phar
[root@web01 php-5.5.32]# make

编译成功的标志:
Build complete.
Don’t forget to run ‘make test’.

4. 安装PHP

[root@web01 php-5.5.26]#make install

5. 创建软连接

ln -s /app/php5.5.26/ /app/php

6. 拷贝php的配置文件

[root@web01 php-5.5.32]# cp php.ini-production /app/php/lib/php.ini
[root@web01 php-5.5.32]# cd /app/php/etc/
[root@web01 etc]# cp php-fpm.conf.default php-fpm.conf
[root@web01 etc]# sed -i 's@;pid@pid@' /app/php/etc/php-fpm.conf

7. 启动PHP服务(fastCGI)

[root@web01 etc]# /app/php/sbin/php-fpm
[root@web01 etc]# lsof -i :9000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
php-fpm 17134 root 7u IPv4 126725 0t0 TCP localhost:cslistener (LISTEN)
php-fpm 17135 nginx 0u IPv4 126725 0t0 TCP localhost:cslistener (LISTEN)
php-fpm 17136 nginx 0u IPv4 126725 0t0 TCP localhost:cslistener (LISTEN)

8. PHP安装命令参数总结

1.配置PHP
./configure --prefix=/app/php5.5.26 --with-mysql=/app/mysql/ --with-pdo-mysql=mysqlnd --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --enable-short-tags --enable-static --with-xsl --with-fpm-user=nginx --with-fpm-group=nginx --enable-ftp --enable-opcache=no

2、创建Link文件并touch一个phar.phar文件
ln -s /app/mysql/lib/libmysqlclient.so.18 /usr/lib64/
touch ext/phar/phar.phar

3、编译
make

4、编译安装
make install

5、创建软连接
ln -s /app/php5.5.26/ /app/php

6、拷贝配置文件
cd /app/php/etc/
cp php-fpm.conf.default php-fpm.conf

7、启动PHP服务
/app/php/sbin/php-fpm
8、检查启动结果
lsof -i :9000

编译安装PHP7.4.20版本脚本

  1. #!/bin/bash
  2. yum install openldap openldap-devel zlib-devel libjpeg-turbo-devel libcurl-devel -y
  3. yum -y install gcc gcc-c++ make autoconf bzip2 bzip2-devel libpng libpng-devel freetype-devel gmp-devel readline-devel curl-devel libxml2-devel libjpeg-devel bison openssl-devel uw-imap-devel libc-client sqlite-devel libicu-devel libedit-devel libxslt-devel oniguruma oniguruma-devel gd-devel libwebp-devel
  4. cp -frp /usr/lib64/libldap* /usr/lib/
  5. #安装依赖包
  6. wget https://www.php.net/distributions/php-7.4.20.tar.gz &&\
  7. tar xf php-7.4.20.tar.gz &&\
  8. cd php-7.4.20 &&\
  9. ./configure --prefix=/app/php-7.4.20 --with-config-file-path=/app/php/etc --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-iconv-dir --with-zlib --with-libxml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-intl --enable-ftp --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --with-gettext --disable-fileinfo --enable-opcache=no --with-pear --enable-maintainer-zts --with-ldap=shared --without-gdbm --enable-short-tags --enable-static --with-xsl --enable-gd --with-freetype --with-jpeg --with-webp --with-xpm &&\
  10. make && make install &&\
  11. ln -s /app/php-7.4.20 /app/php &&\
  12. #ln -s -f phar.phar /app/php-7.4.20/bin/phar
  13. #./build/shtool install -c ext/phar/phar.phar /app/php-7.4.20/bin/phar.phar
  14. cp php.ini-production /app/php-7.4.20/etc/php.ini
  15. cp /app/php/etc/php-fpm.conf.default /app/php/etc/php-fpm.conf &&\
  16. sed -i 's@;pid@pid@g' /app/php/etc/php-fpm.conf
  17. cp /app/php/etc/php-fpm.d/www.conf.default /app/php/etc/php-fpm.d/www.conf

编译错误解决方法

  1. configure: error: Cannot find ldap libraries in /usr/lib
    解决方法:

    cp -frp /usr/lib64/libldap* /usr/lib/

    make clean

No package ‘oniguruma’ found错误
#解决方法:
wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz

  1. tar -xvf oniguruma-6.9.4.tar.gz

cd oniguruma-6.9.4/

  1. ./autogen.sh
  2. ./configure --prefix=/usr --libdir=/lib64

64位的系统一定要标识 —libdir=/lib64 否则还是不行
make && make install