Category Archive Programming

Byphunsanit

PHP: UPGRADE / Build php version 8.5.0

เห็นแว๊บ ๆ จากเพื่อนในเฟสว่า PHP 8.5 ออกมาใหม่ ( ยังไม่ตาย ) ด้วยความเคยชิน เลยถามไปว่า รู้มั๋ย Ubuntu ออกใหม่ เมื่อไหร่ แถมเค้าตอบมาว่า ไม่ build เองละ ลืมไป Ubuntu ว่ามันเพิ่งออก version ใหม่มาไม่กี่เดือนเอง ถ้ารอพี่แกทำให้ มันน่าจะรออีกนานเลย เลยตัดสินใจใช่วิธีที่เมื่อก่อนทำไม่สำเร็จจากหลาย ๆ อย่าง เช่น เน็ตกาก เครื่องช้าเกินใจจะทน เลย เอาเป็น ลอง build เองดูละกัน

  1. update upgrade ก่อนโดย
    sudo apt-get update && sudo apt-get upgrade
  2. ติดตั้งตัวที่จำเป็นในการ buildติดตั้งตัวที่จำเป็นในการ build
    sudo apt install -y build-essential pkg-config autoconf bison re2c \
    libxml2-dev libsqlite3-dev libssl-dev libcurl4-openssl-dev \
    libpng-dev libjpeg-dev libonig-dev libzip-dev libreadline-dev \
    libfreetype6-dev libsodium-dev libffi-dev
  3. Download PHP 8.5.0 Source
    cd /usr/local/src
    # Download the tarball (Adjust URL if a specific RC or Alpha is required)
    sudo wget https://www.php.net/distributions/php-8.5.0.tar.gz
    # Extract it
    sudo tar -xvf php-8.5.0.tar.gz cd php-8.5.0
  4. Configure the Build
    sudo ./configure \
    --prefix=/usr/local/php85 \
    --with-config-file-path=/usr/local/php85/etc \
    --with-config-file-scan-dir=/usr/local/php85/etc/conf.d \
    --enable-fpm \
    --with-fpm-user=www-data \
    --with-fpm-group=www-data \
    --enable-mbstring \
    --enable-opcache \
    --enable-intl \
    --enable-pcntl \
    --enable-bcmath \
    --enable-sockets \
    --enable-soap \
    --with-curl \
    --with-openssl \
    --with-zlib \
    --with-zip \
    --with-mysqli \
    --with-pdo-mysql \
    --with-sodium \
    --with-readline \
    --with-ffi
  5. Compile
    make -j$(nproc)
  6. Install
    sudo make install
  7. Copy the php.ini file
    sudo cp php.ini-production /usr/local/php85/etc/php.ini
  8. Configure PHP-FPM:
    cd /usr/local/php85/etc
    sudo cp php-fpm.conf.default php-fpm.conf
    sudo cp php-fpm.d/www.conf.default php-fpm.d/www.conf
  9. Create a Systemd Service
    sudo nano /lib/systemd/system/php-8.5-fpm.service
  10. ใส่เนื้อหา
    [Unit]
    Description=The PHP 8.5 FastCGI Process Manager
    After=network.target
    [Service]
    Type=simple
    PIDFile=/usr/local/php85/var/run/php-fpm.pid
    ExecStart=/usr/local/php85/sbin/php-fpm –nodaemonize –fpm-config /usr/local/php85/etc/php-fpm.conf
    ExecReload=/bin/kill -USR2 $MAINPID
    PrivateTmp=true
    [Install]
    WantedBy=multi-user.target
  11. Start
    sudo systemctl daemon-reload
    sudo systemctl start php-8.5-fpm
    sudo systemctl enable php-8.5-fpm
  12. Verify
    /usr/local/php85/bin/php -v

ถ้าตอบมาเป็น
PHP 8.5.0 (cli) (built: Nov 23 2025 21:10:04) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.5.0, Copyright (c) Zend Technologies
with Zend OPcache v8.5.0, Copyright (c), by Zend Technologies
คือ ทำได้แล้ว