1、下載php7.3的源碼php
https://www.php.net/downloads.php
下載php-7.3.4.tar.gzmysql
2、安裝gcc,gcc-c++,kernel-develc++
yum -y install gcc gcc-c++ kernel-devel
3、安裝php須要的依賴庫sql
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
4、建立用戶和組,並解壓bootstrap
groupadd www useradd -g www www tar xf php-7.3.4.tar.gz cd php-7.3.4
5、進行編譯安裝api
php的路徑 --prefix 和配置文件 --with-config-file-path 路徑你們能夠自行設置php7
./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 \
編譯安裝curl
make -j 4 && make install
上面的步驟有可能出現的問題:socket
一、configure: WARNING: unrecognized options: --with-mcrypt, --with-libmbfl, --enable-gd-native-ttfphp-fpm
說明上面的配置參數已經棄用了,刪除便可。
二、configure: error: DBA: Could not find necessary header file(s).
安裝下 yum install gdbm-devel
三、configure: error: Cannot find ldap libraries in /usr/lib
拷貝下文件 cp -frp /usr/lib64/libldap* /usr/lib/
四、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
五、configure: error: Please reinstall the libzip distribution
在 https://libzip.org/download/ 下載源碼,進行安裝
tar xf libzip-1.5.2.tar.gz cd libzip-1.5.2 mkdir build && cd build && cmake .. && make && make install
六、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.gz cd cmake-3.14.3 ./bootstrap && make && make install
而後修改 vi /etc/profile,並加入以下內容
PATH=/usr/local/bin:$PATH export PATH
source /etc/profile
6、配置php.ini文件
具體的路徑,你們可自行修改。
cp php.ini-development /data/nmp/php/etc/php.ini cp /data/nmp/php/etc/php-fpm.conf.default /data/nmp/php/etc/php-fpm.conf cp /data/nmp/php/etc/php-fpm.d/www.conf.default /data/nmp/php/etc/php-fpm.d/www.conf
配置php.ini文件
max_execution_time = 120 max_input_time = 120 memory_limit = 1024M post_max_size = 128M date.timezone = PRC extension_dir = "/data/nmp/php/lib/php/extensions/no-debug-zts-20180731"
7、配置Systemd服務
其實php-fpm.service文件php已經幫咱們配置好了,只須要咱們複製到指定位置,並啓用就好了。
cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
php-fpm.service文件內容以下:
[Unit] Description=The PHP FastCGI Process Manager After=network.target [Service] Type=simple PIDFile=/data/nmp/php/var/run/php-fpm.pid ExecStart=/data/nmp/php/sbin/php-fpm --nodaemonize --fpm-config /data/nmp/php/etc/php-fpm.conf ExecReload=/bin/kill -USR2 $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
啓用php-fpm.service
systemctl enable php-fpm.service
啓動php-fpm
systemctl start php-fpm.service