Linux下編譯安裝PHP7.3.1

https://blog.csdn.net/oZhengTuoJiaSuo/article/details/86496501

 

【準備工作】

所有操作需要在root用戶下

本機測試案例系統信息:centos7.4

安裝路徑:/usr/local/php

 

【安裝PHP】

先安裝如下依賴包$ 


 
  1. yum install -y gcc gcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

  2.  

下載PHP7.3

http://php.net/downloads.php#v7.3.1

解壓php-7.3.1.tar.gz  然後進入目錄,編譯。命令如下:


 
  1. tar -zxvf php-7.3.1tar.gz

  2.  
  3. cd php-7.3.1

  4.  
  5. ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --enable-mbstring --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --enable-sockets --with-freetype-dir=/usr --with-zlib --with-libxml-dir=/usr --with-xmlrpc --enable-zip --enable-fpm --enable-xml --enable-sockets --with-gd --with-zlib --with-iconv --enable-zip --with-freetype-dir=/usr/lib/ --enable-soap --enable-pcntl --enable-cli --with-curl --with-openssl

 

編譯選項:

/configure \
    --prefix=/usr/local/php \                                  [php安裝的根目錄]
    --exec-prefix=/usr/local/php \                               [php執行文件所在目錄]
    --bindir=/usr/local/php/bin \                            [php/bin目錄]
    --sbindir=/usr/local/php/sbin \                            [php/sbin目錄]
    --includedir=/usr/local/php/include \                    [php包含文件所在目錄]
    --libdir=/usr/local/php/lib/php \                        [php/lib目錄]
    --mandir=/usr/local/php/php/man \                        [php/man目錄]
    --with-config-file-path=/usr/local/php/etc \               [php的配置目錄]
    --with-mysql-sock=/tmp/mysql.sock \           [php的Unix socket通信文件]
    --with-mcrypt \                                         [是php裏面重要的加密支持擴展庫,linux環境下該庫在默認情況下不開啓]
    --with-mhash \                                            [Mhash是基於離散數學原理的不可逆向的php加密方式擴展庫,其在默認情況下不開啓]
    --with-openssl \                                        [OpenSSL 是一個安全套接字層密碼庫]
    --with-mysqli=shared,mysqlnd \                          [php依賴mysql庫]
    --with-pdo-mysql=shared,mysqlnd \                       [php依賴mysql庫]
    --with-gd \                                                [gd庫]                                                
    --with-iconv \                                            [關閉iconv函數,種字符集間的轉換]                        
    --with-zlib \                                            [zlib是提供數據壓縮用的函式庫]
    --enable-zip \                                            [打開對zip的支持]
    --enable-inline-optimization \                            [優化線程]
    --disable-debug \                                        [關閉調試模式]
    --disable-rpath \                                        [關閉額外的運行庫文件]
    --enable-shared \                                        [啓用動態庫]
    --enable-xml \                                            [開啓xml擴展]
    --enable-bcmath \                                        [打開圖片大小調整,用到zabbix監控的時候用到了這個模塊]
    --enable-shmop \                                        [共享內存]
    --enable-sysvsem \                                        [內存共享方案]
    --enable-mbregex \                                        [開啓多字節正則表達式的字符編碼。]
    --enable-mbstring \                                        [開啓多字節字符串函數]
    --enable-ftp \                                            [開啓ftp]
    --enable-gd-native-ttf \                                [開啓gd庫原有字體]
    --enable-pcntl \                                        [PHP的進程控制支持實現了Unix方式的多進程創建]        
    --enable-sockets \                                        [開啓套節字]
    --with-xmlrpc \                                            [打開xml-rpc的c語言]
    --enable-soap \                                            [開啓簡單對象訪問協議簡單對象訪問協議]
    --without-pear \                                        [開啓php擴展與應用庫]
    --with-gettext \                                        [開戶php在當前域中查找消息]
    --enable-session \                                      [允許php會話session]
    --with-curl \                                           [允許curl擴展]
    --with-openssl \                                         [允許openssl 擴展 下載composer 會用到]
    --with-jpeg-dir \                                        [指定jpeg安裝目錄yum安裝過後不用再次指定會自動找到]
    --with-freetype-dir \                                    [指定freetype安裝目錄yum安裝過後不用再次指定會自動找到]
    --enable-opcache \                                      [開啓使用opcache緩存]
    --enable-fpm \                                            [開啓fpm]
    --with-fpm-user=nginx \                                 [php-fpm的用戶]
    --with-fpm-group=nginx \                                [php-fpm的用戶組]
    --without-gdbm \                                        [數據庫函數使用可擴展散列和類似於標準UNIX dbm的工作]
    --enable-fast-install \                                    [爲快速安裝優化]
    --disable-fileinfo

 

說明:由於PHP7.3不再支持mysql,而是用mysqli取代。因此會出現上面圖中所示的warning。不過沒關係,如果需要安裝php的mysql擴展,文章後面會有說明。

編譯完成之後,執行安裝命令:

$ make && make install 

說明:如果是在阿里雲購買的雲服務器,可能由於內存不足導致保存報錯:virtual memory exhausted: Cannot allocate memory阿里雲服務器,未給你分配虛擬內存,所以可以通過自行增加虛擬內存的方法予以解決:


 
  1. dd if=/dev/zero of=/swap bs=1024 count=1M

  2. mkswap /swap

  3. swapon /swap

  4. echo "/swap swap swap sw 0 0" >> /etc/fstab

 

【配置PHP】

在之前編譯的源碼包中,找到 php.ini-production,複製到/usr/local/php下,並改名爲php.ini:

$ cp php.ini-production /usr/local/php/php.ini

[可選項] 設置讓PHP錯誤信息打印在頁面上 

$ vim /usr/local/php/php.ini 

1

display_errors = On

 

複製啓動腳本:

$ cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

$ chmod +x /etc/init.d/php-fpm

修改php-fpm配置文件:

$ cd /usr/local/php/etc

$ cp php-fpm.conf.default php-fpm.conf

$ vim php-fpm.conf

1

① 去掉 pid = run/php-fpm.pid 前面的分號

$ cd php-fpm.d

$ cp www.conf.default www.conf

$ vim www.conf

1

② 修改user和group的用戶爲當前用戶(也可以不改,默認會添加nobody這個用戶和用戶組)

 

【啓動PHP】

$ /etc/init.d/php-fpm start        #php-fpm啓動命令

$ /etc/init.d/php-fpm stop         #php-fpm停止命令

$ /etc/init.d/php-fpm restart        #php-fpm重啓命令

$ ps -ef | grep php 或者 ps -A | grep -i php  #查看是否已經成功啓動PHP

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章