一、下载php7.3的源码
https://www.php.net/downloads.php
下载php-7.3.4.tar.gz
二、安装gcc,gcc-c++,kernel-devel
yum -y install gcc gcc-c++ kernel-devel
三、安装php需要的依赖库
yum -y install wget pcre pcre-devel openssl openssl-devel libicu-devel autoconf libjpeg libjpeg-devel \ libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel \ glib2 glib2-devel ncurses ncurses-devel curl curl-devel krb5-devel libidn libidn-devel openldap \ openldap-devel nss_ldap jemalloc-devel cmake boost-devel bison automake libevent libevent-devel \ gd gd-devel libtool* libmcrypt libmcrypt-devel mcrypt mhash libxslt libxslt-devel readline \ readline-devel gmp gmp-devel libcurl libcurl-devel openjpeg-devel
四、创建用户和组,并解压
groupadd wwwuseradd -g www wwwtar xf php-7.3.4.tar.gzcd php-7.3.4
五、进行编译安装
php的路径 --prefix 和配置文件 --with-config-file-path 路径大家可以自行设置
./configure --prefix=/data/nmp/php \--with-config-file-path=/data/nmp/php/etc \--with-fpm-user=www \--with-fpm-group=www \--with-mysqli=mysqlnd \--with-pdo-mysql=mysqlnd \--with-iconv-dir \--with-freetype-dir \--with-jpeg-dir \--with-png-dir \--with-zlib \--with-libxml-dir \--with-ldap=shared \--with-gdbm \--with-pear \--with-gettext \--with-curl \--with-xmlrpc \--with-openssl \--with-mhash \--with-gd \--enable-fpm \--enable-mysqlnd \--enable-mysqlnd-compression-support \--enable-xml \--enable-rpath \--enable-bcmath \--enable-shmop \--enable-sysvsem \--enable-inline-optimization \--enable-mbregex \--enable-mbstring \--enable-intl \--enable-ftp \--enable-gd-jis-conv \--enable-pcntl \--enable-sockets \--enable-zip \--enable-soap \--enable-fileinfo \--enable-opcache \--enable-maintainer-zts \
编译安装
make -j 4 && make install
上面的步骤有可能出现的问题:
1、configure: WARNING: unrecognized options: --with-mcrypt, --with-libmbfl, --enable-gd-native-ttf
说明上面的配置参数已经弃用了,删除即可。
2、configure: error: DBA: Could not find necessary header file(s).
安装下 yum install gdbm-devel
3、configure: error: Cannot find ldap libraries in /usr/lib
拷贝下文件 cp -frp /usr/lib64/libldap* /usr/lib/
4、configure: error: off_t undefined; check your library configuration
进行如下操作:
vi /etc/ld.so.conf# 添加如下几行/usr/local/lib64/usr/local/lib/usr/lib/usr/lib64# 保存退出:wq# 使之生效ldconfig -v
5、configure: error: Please reinstall the libzip distribution
在 https://libzip.org/download/ 下载源码,进行安装
tar xf libzip-1.5.2.tar.gzcd libzip-1.5.2mkdir build && cd build && cmake .. && make && make install
6、CMake 3.0.2 or higher is required. You are running version 2.8.12.2
说明你的cmake版本过低,需要重新安装
先删除原有cmake
yum remove cmake
在 https://cmake.org/download/ 下载源码
tar xf cmake-3.14.3.tar.gzcd cmake-3.14.3./bootstrap && make && make install
然后修改 vi /etc/profile,并加入如下内容
PATH=/usr/local/bin:$PATHexport PATH
source /etc/profile
六、配置php.ini文件
具体的路径,大家可自行修改。
cp php.ini-development /data/nmp/php/etc/php.inicp /data/nmp/php/etc/php-fpm.conf.default /data/nmp/php/etc/php-fpm.confcp /data/nmp/php/etc/php-fpm.d/www.conf.default /data/nmp/php/etc/php-fpm.d/www.conf
配置php.ini文件
max_execution_time = 120max_input_time = 120memory_limit = 1024Mpost_max_size = 128Mdate.timezone = PRCextension_dir = "/data/nmp/php/lib/php/extensions/no-debug-zts-20180731"
七、配置Systemd服务
其实php-fpm.service文件php已经帮我们配置好了,只需要我们复制到指定位置,并启用就行了。
cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
php-fpm.service文件内容如下:
[Unit]Description=The PHP FastCGI Process ManagerAfter=network.target[Service]Type=simplePIDFile=/data/nmp/php/var/run/php-fpm.pidExecStart=/data/nmp/php/sbin/php-fpm --nodaemonize --fpm-config /data/nmp/php/etc/php-fpm.confExecReload=/bin/kill -USR2 $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.target
启用php-fpm.service
systemctl enable php-fpm.service
启动php-fpm
systemctl start php-fpm.service