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.
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/
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.
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.
Compiler les fichiers binaires:
make # wait until make is finished
make install
Copiez le fichier PHP.ini dans le répertoire d'installation
cp php.ini-development ~/bin/php-latest/lib/
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
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
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
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.