如何在centos8自定义目录安装php7.3

在本文中我们将给大家介绍如何在centos8自定义目录安装php7.3,在选择要安装的PHP版本之前,请确保你的应用程序支持它,我们还将向你展示如何将PHP与Nginx和Apache集成,感兴趣的朋友跟随小编一起看看吧。

1.目录结构

源码目录:/home/werben/pkgsrc/php-7.3.11

安装目录:/home/werben/application/php7.3.11

2.下载php源码

# 官网地址:https://www.php.net/downloads.php

wget https://www.php.net/distributions/php-7.3.11.tar.bz2

3.解压源码

tar --bzip -xvf php-7.3.11.tar.bz2 php-7.3.11

4.安装编译工具和库

yum install -y gcc gcc-c++

yum -y install libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel libicu-devel freetype-devel openldap-devel openldap openldap-devel

5.配置编译参数

  1. #创建用户组和用户
  2. groupadd www
  3. useradd -g www www
  4. #配置fpm的用户组和用户,以及安装其他扩展
  5. ./configure --prefix=/home/werben/application/php7.3.11 \
  6. --enable-fpm \
  7. --with-fpm-user=www \
  8. --with-fpm-group=www \
  9. --enable-mysqlnd \
  10. --with-mysqli=mysqlnd \
  11. --with-pdo-mysql=mysqlnd \
  12. --enable-mysqlnd-compression-support \
  13. --with-iconv-dir \
  14. --with-freetype-dir \
  15. --with-jpeg-dir \
  16. --with-png-dir \
  17. --with-zlib \
  18. --with-libxml-dir \
  19. --enable-xml \
  20. --disable-rpath \
  21. --enable-bcmath \
  22. --enable-shmop \
  23. --enable-sysvsem \
  24. --enable-inline-optimization \
  25. --with-curl \
  26. --enable-mbregex \
  27. --enable-mbstring \
  28. --enable-intl \
  29. --with-mcrypt \
  30. --with-libmbfl \
  31. --enable-ftp \
  32. --with-gd \
  33. --enable-gd-jis-conv \
  34. --enable-gd-native-ttf \
  35. --with-openssl \
  36. --with-mhash \
  37. --enable-pcntl \
  38. --enable-sockets \
  39. --with-xmlrpc \
  40. --enable-zip \
  41. --enable-soap \
  42. --with-gettext \
  43. --disable-fileinfo \
  44. --enable-opcache \
  45. --with-pear \
  46. --enable-maintainer-zts \
  47. --with-ldap=shared \
  48. --without-gdbm
  49. #上面的步骤可能会出现很多问题,如需要重新安装libzip,需要安装ldap,需要安装cmake
  50. #重新安装libzip需要安装cmake,这里记录一下cmake的安装步骤,其他问题自己百度解决了,
  51. #不记录了,中间自己去官网下了几个最新的cmake版本,编译过程中都出错了。
  52. #发现宝塔用的是2.8.X的版本。这里我用的版本是3.5.2的版本
  53. wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz
  54. tar xvf cmake-3.5.2.tar.gz
  55. cd cmake-3.5.2
  56. ./bootstrap --prefix=/usr/local/cmake
  57. gmake
  58. gmake install
  59. cd /usr/local/cmake/bin
  60. ln -s /usr/local/cmake/bin/cmake /usr/bin/
  61. cmake --version
  62. #接下来安装libzip
  63. wget https://libzip.org/download/libzip-1.5.2.tar.gz
  64. tar -zxf libzip-1.5.2.tar.gz
  65. cd libzip-1.5.2
  66. mkdir build
  67. cd build
  68. cmake ..
  69. make -j4
  70. make install

6.安装make工具

#如果提示make命令找不到,则才需要安装make工具

yum -y install gcc automake autoconf libtool make

7.编译安装

make && make install

8.映射全局命令

ln -s /home/werben/application/php7.3.11/sbin/* /usr/local/sbin/

ln -s /home/werben/application/php7.3.11/bin/* /usr/local/bin/

9.配置php.ini

  1. #查看php.ini的位置
  2. php -r "phpinfo();" | grep 'php.ini'
  3. #将源码中的php.ini*拷贝到php.ini的位置
  4. cp /home/werben/pkgsrc/php-7.3.11/php.ini-* /home/werben/application/php7.3.11/lib/
  5. #重命名php.ini文件
  6. cp /home/werben/application/php7.3.11/lib/php.ini-production /home/werben/application/php7.3.11/lib/php.ini

10.安装目录结构

  1. #/home/werben/pkgsrc/php-7.3.11安装目录的结构
  2. ├── bin
  3. │ ├── pear
  4. │ ├── peardev
  5. │ ├── pecl
  6. │ ├── phar -> phar.phar
  7. │ ├── phar.phar
  8. │ ├── php
  9. │ ├── php-cgi
  10. │ ├── php-config
  11. │ ├── phpdbg
  12. │ └── phpize
  13. ├── etc
  14. │ ├── pear.conf
  15. │ ├── php-fpm.conf.default
  16. │ └── php-fpm.d
  17. ├── include
  18. │ └── php
  19. ├── lib
  20. │ ├── php
  21. │ ├── php.ini
  22. │ ├── php.ini-development
  23. │ └── php.ini-production
  24. ├── php
  25. │ ├── man
  26. │ └── php
  27. ├── sbin
  28. │ └── php-fpm
  29. └── var
  30. ├── log
  31. └── run

ps:下面将展示如何将PHP与Nginx和Apache集成。

配置PHP以与Apache一起使用

如果你将Apache用作Web服务器,请使用以下命令重新启动httpd服务,可以使用:

$ sudo systemctl restart httpd

配置PHP以与Nginx一起使用

默认情况下,PHP FPM以用户apache的身份运行,为避免权限问题,我们将用户更改为nginx,为此,请编辑相关的行,即user = nginx和group = nginx:

  1. $ sudo nano /etc/php-fpm.d/www.conf
  2. ...
  3. user = nginx
  4. ..
  5. group = nginx

确保/var/lib/php目录具有正确的所有权:

$ chown -R root:nginx /var/lib/php

完成后,重新启动PHP FPM服务:

$ sudo systemctl restart php-fpm

接下来,编辑Nginx主机指令,并添加以下位置块,以便Nginx可以处理PHP文件:

  1. server {
  2.  # . . . other code
  3.  location ~ \.php$ {
  4.   try_files $uri =404;
  5.   fastcgi_pass unix:/run/php-fpm/www.sock;
  6.   fastcgi_index index.php;
  7.   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  8.   include fastcgi_params;
  9.  }
  10. }

为了使新配置生效,请重新启动Nginx服务:

$ sudo systemctl restart nginx