1. 程式人生 > 實用技巧 >編譯安裝php

編譯安裝php

  1. 準備編譯環境
    yum -y install gcc gcc-c++ make autoconf bzip2 bzip2-devel libpng libpng-devel freetype-devel gmp-devel readline-devel curl-devel libxml2-devel libjpeg-devel bison openssl-devel uw-imap-devel libc-client sqlite-devel libicu-devel libedit-devel libxslt-devel oniguruma oniguruma-devel libzip-devel

  2. 下載原始碼包
    wget https://www.php.net/distributions/php-8.0.0.tar.xz

  3. 配置並構建 PHP。在此步驟您可以使用很多選項自定義 PHP,例如啟用某些擴充套件等。 執行 ./configure –help 命令來獲得完整的可用選項清單。 在本示例中,我們僅進行包含 PHP-FPM 和 MySQL 支援的簡單配置。
    ./configure --prefix=/usr/local/php \
       --sysconfdir=/etc/php \
       --with-config-file-path=/etc/php \
       --with-config-file-scan-dir=/etc/php/php.d \
       --bindir=/usr/bin \
       --docdir=/usr/share/doc \
       --sbindir=/usr/sbin \
       --libdir=/usr/lib64/php \
       --with-libdir=/usr/lib64/php \
       --libexecdir=/usr/libexec \
       --localstatedir=/var \
       --includedir=/usr/include \
       --localedir=/usr/local \
       --datarootdir=/usr/share \
       --datadir=/usr/share/php \
       --mandir=/usr/share/man \
       --infodir=/usr/share/info \
       --enable-fpm \
       --with-fpm-user=www-data \
       --with-fpm-group=www-data \
       --enable-mysqlnd \
       --enable-mysqlnd-compression-support \
       --enable-json \
       --with-openssl-dir \
       --with-zlib-dir \
       --with-freetype \
       --enable-gd-jis-conv \
       --enable-ftp \
       --enable-filter \
       --enable-fileinfo \
       --with-curl \
       --with-iconv \
       --with-bz2 \
       --with-zlib \
       --with-zip \
       --with-xsl \
       --with-jpeg \
       --with-webp \
       --with-xpm \
       --without-iconv \
       --with-kerberos \
       --with-imap-ssl \
       --with-openssl \
       --enable-dom \
       --with-gettext \
       --with-mysqli=mysqlnd \
       --enable-pdo \
       --with-pdo-mysql=mysqlnd \
       --enable-simplexml \
       --enable-session \
       --enable-sysvsem \
       --enable-sysvmsg \
       --enable-sockets \
       --with-pear \
       --with-xmlrpc \
       --with-mhash \
       --enable-bcmath \
       --with-cdb \
       --enable-exif \
       --with-gmp \
       --enable-mbstring \
       --enable-mbregex \
       --with-readline \
       --enable-shmop \
       --enable-soap \
       --enable-sockets \
       --enable-pcntl \
       --enable-intl \
       --enable-re2c-cgoto \
       --with-libedit

  4. 建立配置檔案,並將其複製到正確的位置。
    cp php.ini-production /etc/php/php.ini
    cp sapi/fpm/php-fpm.conf /etc/php/php-fpm.conf
    cp sapi/fpm/www.conf /etc/php/php-fpm.d/www.conf
    cp sapi/fpm/php-fpm.service /etc/systemd/system/php-fpm.service

  5. 需要著重提醒的是,如果檔案不存在,則阻止 Nginx 將請求傳送到後端的 PHP-FPM 模組, 以避免遭受惡意指令碼注入的攻擊。
    將 php.ini 檔案中的配置項 cgi.fix_pathinfo 設定為 0 。

    cgi.fix_pathinfo=0
    groupadd www-data
    useradd --group www-data -s /sbin/nologin --no-create-home www-data
    systemctl start php-fpm