如何在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.配置编译参数
- #创建用户组和用户
- groupadd www
- useradd -g www www
- #配置fpm的用户组和用户,以及安装其他扩展
- ./configure --prefix=/home/werben/application/php7.3.11 \
- --enable-fpm \
- --with-fpm-user=www \
- --with-fpm-group=www \
- --enable-mysqlnd \
- --with-mysqli=mysqlnd \
- --with-pdo-mysql=mysqlnd \
- --enable-mysqlnd-compression-support \
- --with-iconv-dir \
- --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-mbstring \
- --enable-intl \
- --with-mcrypt \
- --with-libmbfl \
- --enable-ftp \
- --with-gd \
- --enable-gd-jis-conv \
- --enable-gd-native-ttf \
- --with-openssl \
- --with-mhash \
- --enable-pcntl \
- --enable-sockets \
- --with-xmlrpc \
- --enable-zip \
- --enable-soap \
- --with-gettext \
- --disable-fileinfo \
- --enable-opcache \
- --with-pear \
- --enable-maintainer-zts \
- --with-ldap=shared \
- --without-gdbm
- #上面的步骤可能会出现很多问题,如需要重新安装libzip,需要安装ldap,需要安装cmake
- #重新安装libzip需要安装cmake,这里记录一下cmake的安装步骤,其他问题自己百度解决了,
- #不记录了,中间自己去官网下了几个最新的cmake版本,编译过程中都出错了。
- #发现宝塔用的是2.8.X的版本。这里我用的版本是3.5.2的版本
- wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz
- tar xvf cmake-3.5.2.tar.gz
- cd cmake-3.5.2
- ./bootstrap --prefix=/usr/local/cmake
- gmake
- gmake install
- cd /usr/local/cmake/bin
- ln -s /usr/local/cmake/bin/cmake /usr/bin/
- cmake --version
- #接下来安装libzip
- wget https://libzip.org/download/libzip-1.5.2.tar.gz
- tar -zxf libzip-1.5.2.tar.gz
- cd libzip-1.5.2
- mkdir build
- cd build
- cmake ..
- make -j4
- 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
- #查看php.ini的位置
- php -r "phpinfo();" | grep 'php.ini'
- #将源码中的php.ini*拷贝到php.ini的位置
- cp /home/werben/pkgsrc/php-7.3.11/php.ini-* /home/werben/application/php7.3.11/lib/
- #重命名php.ini文件
- cp /home/werben/application/php7.3.11/lib/php.ini-production /home/werben/application/php7.3.11/lib/php.ini
10.安装目录结构
- #/home/werben/pkgsrc/php-7.3.11安装目录的结构
- ├── bin
- │ ├── pear
- │ ├── peardev
- │ ├── pecl
- │ ├── phar -> phar.phar
- │ ├── phar.phar
- │ ├── php
- │ ├── php-cgi
- │ ├── php-config
- │ ├── phpdbg
- │ └── phpize
- ├── etc
- │ ├── pear.conf
- │ ├── php-fpm.conf.default
- │ └── php-fpm.d
- ├── include
- │ └── php
- ├── lib
- │ ├── php
- │ ├── php.ini
- │ ├── php.ini-development
- │ └── php.ini-production
- ├── php
- │ ├── man
- │ └── php
- ├── sbin
- │ └── php-fpm
- └── var
- ├── log
- └── run
ps:下面将展示如何将PHP与Nginx和Apache集成。
配置PHP以与Apache一起使用
如果你将Apache用作Web服务器,请使用以下命令重新启动httpd服务,可以使用:
$ sudo systemctl restart httpd
配置PHP以与Nginx一起使用
默认情况下,PHP FPM以用户apache的身份运行,为避免权限问题,我们将用户更改为nginx,为此,请编辑相关的行,即user = nginx和group = nginx:
- $ sudo nano /etc/php-fpm.d/www.conf
- ...
- user = nginx
- ..
- group = nginx
确保/var/lib/php目录具有正确的所有权:
$ chown -R root:nginx /var/lib/php
完成后,重新启动PHP FPM服务:
$ sudo systemctl restart php-fpm
接下来,编辑Nginx主机指令,并添加以下位置块,以便Nginx可以处理PHP文件:
- server {
- # . . . other code
- location ~ \.php$ {
- try_files $uri =404;
- fastcgi_pass unix:/run/php-fpm/www.sock;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
- }
为了使新配置生效,请重新启动Nginx服务:
$ sudo systemctl restart nginx