【准备工作】

所有操作需要在root用户下

本机测试案例系统信息:centos7.4

安装路径:/usr/local/php

 

【安装PHP】

先安装如下依赖包$ 

yum install -y gcc gcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

下载PHP7.3

http://php.net/downloads.php#v7.3.1

解压php-7.3.1.tar.gz  然后进入目录,编译。命令如下:

tar -zxvf php-7.3.1tar.gz

cd php-7.3.1

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --enable-mbstring --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --enable-sockets --with-freetype-dir=/usr --with-zlib --with-libxml-dir=/usr --with-xmlrpc --enable-zip --enable-fpm --enable-xml --enable-sockets --with-gd --with-zlib --with-iconv --enable-zip --with-freetype-dir=/usr/lib/ --enable-soap --enable-pcntl --enable-cli --with-curl --with-openssl

 

编译选项:

/configure \
    --prefix=/usr/local/php \                                  [php安装的根目录]
    --exec-prefix=/usr/local/php \                               [php执行文件所在目录]
    --bindir=/usr/local/php/bin \                            [php/bin目录]
    --sbindir=/usr/local/php/sbin \                            [php/sbin目录]
    --includedir=/usr/local/php/include \                    [php包含文件所在目录]
    --libdir=/usr/local/php/lib/php \                        [php/lib目录]
    --mandir=/usr/local/php/php/man \                        [php/man目录]
    --with-config-file-path=/usr/local/php/etc \               [php的配置目录]
    --with-mysql-sock=/tmp/mysql.sock \           [php的Unix socket通信文件]
    --with-mcrypt \                                         [是php里面重要的加密支持扩展库,linux环境下该库在默认情况下不开启]
    --with-mhash \                                            [Mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启]
    --with-openssl \                                        [OpenSSL 是一个安全套接字层密码库]
    --with-mysqli=shared,mysqlnd \                          [php依赖mysql库]
    --with-pdo-mysql=shared,mysqlnd \                       [php依赖mysql库]
    --with-gd \                                                [gd库]                                                
    --with-iconv \                                            [关闭iconv函数,种字符集间的转换]                        
    --with-zlib \                                            [zlib是提供数据压缩用的函式库]
    --enable-zip \                                            [打开对zip的支持]
    --enable-inline-optimization \                            [优化线程]
    --disable-debug \                                        [关闭调试模式]
    --disable-rpath \                                        [关闭额外的运行库文件]
    --enable-shared \                                        [启用动态库]
    --enable-xml \                                            [开启xml扩展]
    --enable-bcmath \                                        [打开图片大小调整,用到zabbix监控的时候用到了这个模块]
    --enable-shmop \                                        [共享内存]
    --enable-sysvsem \                                        [内存共享方案]
    --enable-mbregex \                                        [开启多字节正则表达式的字符编码。]
    --enable-mbstring \                                        [开启多字节字符串函数]
    --enable-ftp \                                            [开启ftp]
    --enable-gd-native-ttf \                                [开启gd库原有字体]
    --enable-pcntl \                                        [PHP的进程控制支持实现了Unix方式的多进程创建]        
    --enable-sockets \                                        [开启套节字]
    --with-xmlrpc \                                            [打开xml-rpc的c语言]
    --enable-soap \                                            [开启简单对象访问协议简单对象访问协议]
    --without-pear \                                        [开启php扩展与应用库]
    --with-gettext \                                        [开户php在当前域中查找消息]
    --enable-session \                                      [允许php会话session]
    --with-curl \                                           [允许curl扩展]
    --with-openssl \                                         [允许openssl 扩展 下载composer 会用到]
    --with-jpeg-dir \                                        [指定jpeg安装目录yum安装过后不用再次指定会自动找到]
    --with-freetype-dir \                                    [指定freetype安装目录yum安装过后不用再次指定会自动找到]
    --enable-opcache \                                      [开启使用opcache缓存]
    --enable-fpm \                                            [开启fpm]
    --with-fpm-user=nginx \                                 [php-fpm的用户]
    --with-fpm-group=nginx \                                [php-fpm的用户组]
    --without-gdbm \                                        [数据库函数使用可扩展散列和类似于标准UNIX dbm的工作]
    --enable-fast-install \                                    [为快速安装优化]
    --disable-fileinfo

 

说明:由于PHP7.3不再支持mysql,而是用mysqli取代。因此会出现上面图中所示的warning。不过没关系,如果需要安装php的mysql扩展,文章后面会有说明。

编译完成之后,执行安装命令:

$ make && make install 

说明:如果是在阿里云购买的云服务器,可能由于内存不足导致保存报错:virtual memory exhausted: Cannot allocate memory阿里云服务器,未给你分配虚拟内存,所以可以通过自行增加虚拟内存的方法予以解决:

dd if=/dev/zero of=/swap bs=1024 count=1M
mkswap /swap
swapon /swap
echo "/swap  swap  swap  sw  0  0" >> /etc/fstab

 

【配置PHP】

在之前编译的源码包中,找到 php.ini-production,复制到/usr/local/php下,并改名为php.ini:

$ cp php.ini-production /usr/local/php/php.ini

[可选项] 设置让PHP错误信息打印在页面上 

$ vim /usr/local/php/php.ini 

1

display_errors = On

 

复制启动脚本:

$ cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

$ chmod +x /etc/init.d/php-fpm

修改php-fpm配置文件:

$ cd /usr/local/php/etc

$ cp php-fpm.conf.default php-fpm.conf

$ vim php-fpm.conf

1

① 去掉 pid = run/php-fpm.pid 前面的分号

$ cd php-fpm.d

$ cp www.conf.default www.conf

$ vim www.conf

1

② 修改user和group的用户为当前用户(也可以不改,默认会添加nobody这个用户和用户组)

 

【启动PHP】

$ /etc/init.d/php-fpm start        #php-fpm启动命令

$ /etc/init.d/php-fpm stop         #php-fpm停止命令

$ /etc/init.d/php-fpm restart        #php-fpm重启命令

$ ps -ef | grep php 或者 ps -A | grep -i php  #查看是否已经成功启动PHP

 

Logo

更多推荐