添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

PHP is a general purpose scripting language that is used mainly for web development, it is pragmatic, easy to learn and use, it is constantly evolving with a wide community of developers who are in charge of enriching this popular programming language with new features, therefore it is constantly evolving.

PHP 8.0 introduced modern features such as: Union Types, Named arguments, Match expressions, Just In Time Compilation.

PHP-FPM should be integrated with a web server such as Apache or NGINX, PHP-FPM serves dynamic content while the web server takes care of static content also acts as reverse proxy for PHP-FPM service.

Today we are going to install PHP 8.0 on Alpine Linux.

Reading you must check:

  • How to Compile PHP 8.0 in Debian 10?
  • How to install PHP 7.4 in Ubuntu 20.04?
  • How To Compile PHP From The Source Code
  • PHP New Features
  • How to install NGINX on Alpine Linux?
  • How to install Apache on Ubuntu 20.04?
  • Install

    PHP-FPM introduces the concept of pools, each pool can receive connections on a TPC/IP socket (IP:Port) or UNIX socket, and can run under a different user and group. Each pool has its configuration file.

    Verify you have the community repository active.

    https://ams.edge.kernel.org/alpine/v3.14/community
    

    Proceed with the installation:

    # apk add php8 php8-fpm
    fetch https://ams.edge.kernel.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
    fetch https://ams.edge.kernel.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
    (1/3) Installing php8-common (8.0.9-r0)
    (2/3) Installing php8 (8.0.9-r0)
    (3/3) Installing php8-fpm (8.0.9-r0)
    Executing busybox-1.33.1-r3.trigger
    OK: 303 MiB in 77 packages
    

    Once the process is finished you can explore the default settings, here is a sample of the directory structure:

    # tree  /etc/php8/
    /etc/php8/
    ├── conf.d
    ├── php-fpm.conf
    ├── php-fpm.d
    │   └── www.conf
    └── php.ini
    2 directories, 3 files
    

    You can find out the value of the listen directive by running the command:

    # grep 'listen =' -R /etc/php8/
    /etc/php8/php-fpm.d/www.conf:listen = 127.0.0.1:9000
    
    

    The community repository provides 2 versions of PHP: 7.4, 8.0 so we must create a symbolic link to the corresponding version

    # ln -s /usr/bin/php8 /usr/bin/php
    

    Show installed version

    php -v
    PHP 8.0.9 (cli) (built: Jul 30 2021 03:43:07) ( NTS )
    

    Show installed modules

    php -m
    [PHP Modules]
    filter
    libxml
    readline
    Reflection
    standard
    [Zend Modules]
    

    You can lists all modules available for installing with:

    # apk search php8
    php8-imap-8.0.9-r0
    php8-ftp-8.0.9-r0
    php8-pspell-8.0.9-r0
    php8-phar-8.0.9-r0
    

    To install additional modules, for example curl and mysqli run:

    # apk add php8-curl php8-mysqli
    (1/4) Installing php8-curl (8.0.9-r0)
    (2/4) Installing php8-openssl (8.0.9-r0)
    (3/4) Installing php8-mysqlnd (8.0.9-r0)
    (4/4) Installing php8-mysqli (8.0.9-r0)
    OK: 304 MiB in 81 packages
    

    Manage the php-fpm8 service

    In this part we will learn how to start, stop or restart the php-fpm8 service, using the OpenRC initialization system. OpenRC is the default init system in distributions like Gentoo and Alpine Linux.

    Check status

    # rc-service php-fpm8 status
     * status: stopped
    

    Start

    # rc-service php-fpm8 start
     * Caching service dependencies ...                     [ ok ]
     * Checking /etc/php8/php-fpm.conf ...
     * /run/php-fpm8: creating directory
     * Starting PHP FastCGI Process Manager ...             [ ok ]
    

    Now you can check if the service started successfully:

    rc-service php-fpm8 status
     * status: started
    

    Start with the Operating System

    Start automatically after a system reboot with:

    # rc-update add php-fpm8 default
     * service php-fpm8 added to runlevel default
    

    Reload the configurations

    Every time you make a change to the configuration files, first verify the changes with:

    # php-fpm8 -t
    [31-Jul-2021 23:17:01] NOTICE: configuration file /etc/php8/php-fpm.conf test is successful
    

    the reload the configurations:

    # rc-service php-fpm8 reload
     * Reloading PHP FastCGI Process Manager ...    [ ok ]
    

    Restart

    # rc-service php-fpm8 restart
     * Stopping PHP FastCGI Process Manager ...        [ ok ]
     * Checking /etc/php8/php-fpm.conf ...
     * Starting PHP FastCGI Process Manager ...        [ ok ]
    
    # rc-service php-fpm8 stop
     * Stopping PHP FastCGI Process Manager ...       [ ok ]
    

    To integrate PHP-FPM and NGINX see: How to install NGINX on Alpine Linux?

    Leave a Comment Cancel Reply

    Your email address will not be published. Required fields are marked *