#### 1. 下载php安装包 新建一个文件夹/home/php文件夹存放php的安装文件。 php的官网:http://www.php.net/ 下载php的最新版本php-7.4.1 `axel -n 10 http://cn2.php.net/distributions/php-7.4.1.tar.gz` ![](https://box.kancloud.cn/f3c172de5bacce97d44dfae3cae47a34_1387x554.png =770x279) #### 2. 解压压缩包 ~~~ tar -zxvf php-7.4.1.tar.gz cd php-7.4.1 ~~~ #### 3. 安装依赖库 先安装php需要的依赖库(直接复制进去一次性安装好) ~~~ yum -y install libxml2 yum -y install libxml2-devel yum -y install openssl yum -y install openssl-devel yum -y install curl-devel yum -y install libjpeg-devel yum -y install libpng-devel yum -y install freetype-devel yum -y install bzip2-devel yum -y install libmcrypt libmcrypt-devel yum -y install postgresql-devel yum -y install aspell-devel yum -y install readline-devel yum -y install libxslt-devel yum -y install net-snmp-devel yum -y install unixODBC-devel yum -y install libicu-devel yum -y install libc-client-devel yum -y install libXpm-devel yum -y install libvpx-devel yum -y install enchant-devel yum -y install openldap yum -y install openldap-devel yum -y install db4-devel yum -y install gmp-devel yum -y install sqlite-devel yum -y install mysql-devel ~~~ 如果cmake版本低于3.0.2需要升级 ``` wget https://cmake.org/files/v3.13/cmake-3.13.0.tar.gz tar -zxvf cmake-3.13.0.tar.gz cd cmake-3.13.0 ./bootstrap --prefix=/usr/ make && make install cmake --version ``` libzip安装 ``` wget https://libzip.org/download/libzip-1.5.1.tar.gz tar -zxvf libzip-1.5.1.tar.gz cd libzip-1.5.1 mkdir build && cd build && cmake .. && make && make install echo '/usr/local/lib64 /usr/local/lib /usr/lib /usr/lib64'>>/etc/ld.so.conf&&ldconfig -v ``` oniguruma安装(php 7.4需要安装) ~~~ git clone https://github.com/kkos/oniguruma cd oniguruma autoreconf -vfi ./configure make make install # 再执行 autoreconf -fi export PKG_CONFIG_PATH= 'oniguruma的路径' ~~~ libiconv的安装(php 7.4需要安装) ~~~ wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz tar -zxvf libiconv-1.16.tar.gz cd libiconv-1.16 ./configure --prefix=/usr/local make make install ldconfig 编译php7.4的时候加上-liconv make ZEND_EXTRA_LIBS='-liconv' ~~~ 在更新php版本后,所有的php扩展都需要使用make clean 清理编译缓存,重新编译安装。否则会由于版本不一致报 Unable to initialize module 无法初始化对应模块的错误 #### 4. 添加用户和组 `groupadd -r www && adduser -r -g www -s /bin/false -d /alidata/www -M www` 查看用户 `cat /etc/passwd` 查看组 `cat /etc/group` #### 5. 对php7进行配置 下面代码按需求修改后全部复制进去一次性执行(php7.3去掉 --with-mcrypt, --enable-gd-native-ttf, --with-libmbfl ) ~~~ ./configure \ --prefix=/alidata/server/php \ --with-config-file-path=/alidata/server/php/etc \ --enable-fpm \ --with-fpm-user=www \ --with-fpm-group=www \ --enable-inline-optimization \ --disable-debug \ --disable-rpath \ --enable-shared \ --enable-soap \ --with-xmlrpc \ --with-openssl \ --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-freetype-dir \ --with-gettext \ --with-gmp \ --with-mhash \ --enable-json \ --enable-mbstring \ --enable-mbregex \ --enable-mbregex-backtrack \ --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 \ --enable-pcntl \ --enable-posix ~~~ ![](https://box.kancloud.cn/ab7c3b76b741ca6a5286d880816f0eec_975x739.PNG) #### 6. 编译安装php7 `make && make install` 看到下图信息说明安装成功 (如果重新编译需要先make clean清理之前的已经编译的可执行文件) #### 7. 查看php版本 `/alidata/server/php/bin/php -v` ![](https://box.kancloud.cn/3c3ab7c0d3c458bcdc03826b4478d496_974x744.PNG) #### 8. 创建配置文件 创建www.conf配置文件 ~~~ cd /alidata/server/php/etc/php-fpm.d cp www.conf.default www.conf ~~~ 创建php-fpm.conf配置文件 ~~~ cd /alidata/server/php/etc cp php-fpm.conf.default php-fpm.conf ~~~ 创建php.ini配置文件 将安装源文件目录里的php.ini-production或者php.ini-development修改后缀拷贝到php安装目录的etc文件夹内 ~~~ cd /home/php/php-7.4.1 cp php.ini-production /alidata/server/php/etc/php.ini ~~~ #### 9. 将bin和sbin路径加入到path变量中。 配置环境变量 `vim /etc/profile` 加入下面内容 ~~~ PATH=/user/local/cmake/bin:$PATH PATH=/alidata/server/mysql/bin:$PATH PATH=/alidata/server/php/bin:$PATH export PATH ~~~ 保存后执行source命令使配置立即生效 `source /etc/profile` #### 10. 配置php-fpm到系统服务 ~~~ cp /home/php/php-7.4.1/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod 755 /etc/init.d/php-fpm ~~~ 配置php-fpm.conf `vim /alidata/server/php/etc/php-fpm.conf ` 将pid(;pid = run/php-fpm.pid)前的;去掉。 #### 12. 配置开机自动启动 ``` chkconfig --add /etc/init.d/php-fpm chkconfig php-fpm on ``` #### 13. 配置nginx解析php文件 ~~~ cd /alidata/server/nginx/conf vim nginx.conf ~~~ 将php解析前的#都去掉,如下图。然后保存修改。 ~~~ location ~ .*\.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } ~~~ nginx重新加载配置文件 `service nginx reload` ![](https://box.kancloud.cn/4544e3b0046bc8226014fd25539127ff_833x594.PNG) #### 14. 创建一个php文件 如果设置了根目录,在根目录里面新建 `vi /alidata/server/nginx/html/phpinfo.php` 输入如下代码 `<?php phpinfo(); ?>` 保存 配置没问题就会看到下面的页面 ![](https://box.kancloud.cn/9b21c89f4d4bff06aaaf6e59a8e07313_1886x686.PNG =770x280)