web-dev-qa-db-fra.com

Comment construire PHP 7.3?

J'ai un problème avec la construction du paquet pour PHP 7.3 à partir de git. En ce moment, j'utilise Ubuntu 16.04 avec utdatet php 7.0.x. (Il est impossible de mettre à niveau Ubuntu 16.04 à 18.04 sur mon VPS, car il se bloque au démarrage. Je n'ai que Virtuozzo à déboguer et je ne trouve pas le point où il se bloque, la mise à niveau vers 18.04 n'est pas encore une option.)

Mes pas jusqu'ici:

J'ai installé tous les programmes pour build, (git, build essential, libtool, bison et re2c).

J'ai cloné le git de GitHub avec:

git clone https://github.com/php/php-src.git 

Ensuite, j'ai sélectionné la branche que je veux:

git checkout PHP-7.3 

Puis j'ai couru:

./buildconf

Quelle est la prochaine étape?

J'ai besoin des packages suivants:

php7.3
Libapache2-mod-php7.3
Php7.3-mysql
Mysql-server

Je n'ai pas cherché de PPA, parce que je voulais le faire moi-même pour apprendre en le faisant.

3
roket
  1. Installez des dépendances.

    Sudo apt install autoconf automake bison build-essential curl flex \
      libtool libssl-dev libcurl4-openssl-dev libxml2-dev libreadline7 \
      libreadline-dev libsqlite3-dev libzip-dev libzip4 nginx openssl \
      pkg-config re2c sqlite3 zlib1g-dev
    

    Afin de ne pas écraser les installations de PHP existantes sur votre système, installez PHP dans votre répertoire personnel. Créez un répertoire pour les fichiers binaires PHP.

    mkdir -p ~/bin/php7-latest/
    
  2. Téléchargez le PHP 7.3 à partir de GitHub , décompressez-le, puis changez de répertoire en utilisant cd dans le nouveau répertoire. Vous pouvez également télécharger PHP 7.3 à partir de php.net/downloads.php et les instructions d'installation sont exactement les mêmes. Normalement, ce serait la méthode préférée pour télécharger PHP 7.3, mais j'utilise PHP 7.3 de https://github.com/php/ in cette réponse au lieu de cela afin de correspondre à l'archive PHP 7.3 qui est demandé dans la question.

  3. Configurez PHP. Supprimez toutes les options inutiles (comme MySQL ou Postgres (--with-pdo-pgsql))

    ./configure --prefix=$HOME/bin/php-latest \
        --enable-mysqlnd \
        --with-pdo-mysql \
        --with-pdo-mysql=mysqlnd \
        --with-pdo-pgsql=/usr/bin/pg_config \
        --enable-bcmath \
        --enable-fpm \
        --with-fpm-user=www-data \
        --with-fpm-group=www-data \
        --enable-mbstring \
        --enable-phpdbg \
        --enable-shmop \
        --enable-sockets \
        --enable-sysvmsg \
        --enable-sysvsem \
        --enable-sysvshm \
        --enable-Zip \
        --with-libzip=/usr/lib/x86_64-linux-gnu \
        --with-zlib \
        --with-curl \
        --with-pear \
        --with-openssl \
        --enable-pcntl \
        --with-readline
    

    Vous n'aurez probablement besoin de supprimer aucune des options sauf pour --with-pdo-pgsql=/usr/bin/pg_config si PostgreSQL n'est pas installé. Si vous ne supprimez pas une option spécifique à un package non installé, cette commande renverra un message d'erreur vous indiquant quelle option doit être supprimée pour que la commande s'exécute correctement.

  4. Compiler les fichiers binaires:

    make # wait until make is finished
    make install
    
  5. Copiez le fichier PHP.ini dans le répertoire d'installation

    cp php.ini-development ~/bin/php-latest/lib/
    
  6. Renommez deux fichiers.

    cd ~/bin/php-latest/etc/  
    mv php-fpm.conf.default php-fpm.conf
    mv php-fpm.d/www.conf.default php-fpm.d/www.conf
    
  7. Créez des liens symboliques pour votre fichier binaire.

    cd ~/bin
    ln -s php-latest/bin/php php
    ln -s php-latest/bin/php-cgi php-cgi
    ln -s php-latest/bin/php-config php-config
    ln -s php-latest/bin/phpize phpize
    ln -s php-latest/bin/phar.phar phar
    ln -s php-latest/bin/pear pear
    ln -s php-latest/bin/phpdbg phpdbg
    ln -s php-latest/sbin/php-fpm php-fpm
    
  8. Liez votre PHP local à la commande php. Vous devrez vous déconnecter puis vous reconnecter pour que php puisse basculer vers la version locale au lieu de la version installée à partir des référentiels Ubuntu par défaut.

    # add this to .bashrc
    if [ -d "$HOME/bin" ] ; then
      PATH="$HOME/bin:$PATH"
    fi
    
  9. Démarrer PHP-FPM

    Sudo ~/bin/php-latest/sbin/php-fpm  
    

    Si vous exécutez la commande ci-dessus en tant qu'utilisateur normal sans Sudo, les notifications suivantes s'afficheront:

    NOTICE: [pool www] 'user' directive is ignored when FPM is not running as root.    
    NOTICE: [pool www] 'group' directive is ignored when FPM is not running as root.    
    

La source: Le fichier d'installation du répertoire php-src-master à partir de https://github.com/php/php-src.git contient un lien vers https://php.net/install de quelle source ces instructions ont été révisées. En plus de plusieurs petites révisions, j'ai ajouté des informations sur la façon d'installer PHP 7.3 localement dans votre répertoire personnel sans nécessiter d'autorisations root.

5
karel