Maison >développement back-end >PHP7 >Compiler et installer PHP7.4 (ubuntu)

Compiler et installer PHP7.4 (ubuntu)

จุ๊บ陈
จุ๊บ陈original
2021-12-13 16:34:024334parcourir

Cet article est écrit par la rubrique PHP7tutorial pour vous présenter comment compiler et installer PHP7.4 (ubuntu). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Téléchargez le package source PHP7.4

wget https://www.php.net/distributions/php-7.4.26.tar.gz

Décompressez

tar -zxvf php-7.4.26.tar.gz

Installez la bibliothèque de dépendances PHP

apt-get install libxml2 libxml2-dev sqlite3 libsqlite3-dev libcurl3-dev libxml-dev

Exécutez ./configure

# cd 到php源码目录
./configure --prefix=/usr/local/php7 \
--with-config-file-path=/etc \
--with-fpm-user=test \
--with-fpm-group=test \
--with-curl --enable-fpm

Remarque : il n'y a qu'un quelques extensions ici, car là sont nombreux Le temps de compilation sera très long. Il n'est utilisé que pour tester la compilation et l'installation de PHP, donc peu d'extensions sont ajoutées. Une fois l'installation terminée, si vous souhaitez ajouter plus d'extensions ultérieurement et oublier les paramètres de compilation précédents, vous pouvez voir les paramètres de compilation précédents dans le répertoire du code source cat config.nice. Ajoutez ensuite de nouveaux paramètres et recompilez (n'oubliez pas d'installer d'abord la bibliothèque de dépendances étendues).
Exécutez make && make install
Vous pouvez ajouter le paramètre -j lors de l'exécution de make install, ce qui signifie que plusieurs tâches fonctionnent en même temps et que la vitesse de compilation sera plus rapide.

make install -j 2

Définir les variables d'environnement PHP

1. Ouvrez le fichier

vim /etc/profile

2 Écrivez le contenu

PATH=$PATH:/usr/local/php7/bin
export PATH

3. Faites en sorte que les variables d'environnement prennent effet immédiatement

source /etc/profile

4. , les variables d'environnement sont définies avec succès

Fichier de configuration

# 修改配置文件 
cd /usr/local/php7/etc 
cp php-fpm.conf.default php-fpm.conf 
cp php-fpm.d/www.conf.default php-fpm.d/www.conf  

# 修改pid文件位置
vim php-fpm.conf
# 添加这行
pid = /run/php-fpm.pid

# 创建php-fpm软链接  
ln -s /usr/local/php7/sbin/php-fpm /usr/sbin/php-fpm

Démarrer et arrêter php-fpm

# 启动 
/usr/sbin/php-fpm 
# 关闭 
kill -INT `cat /run/php-fpm.pid` 
# 重启 
kill -USR2 `cat /run/php-fpm.pid`

Gestion des erreurs

ERREUR : [pool www] ne peut pas obtenir l'uid pour l'utilisateur 'test'

1. Raison : en raison d'une compilation précédente Lors de la configuration, l'utilisateur et le groupe d'utilisateurs de php-fpm sont testés [définis avec désinvolture] (--with-fpm-user=test --with-fpm-group=test In). en fait, cet utilisateur n'existe pas. Il y a deux façons de le gérer :

  • Créez un utilisateur et un groupe d'utilisateurs pour le test

  • Modifiez php-fpm.conf et définissez l'utilisateur et le groupe d'utilisateurs pour qu'ils soient identiques. en tant que groupe d'utilisateurs nginx ou apache

# 打开php-fpm.conf 
vim /usr/local/php7/etc/php-fpm.conf
# 找到位置修改为(我nignx用户组是 www-data user = www-data) 
group = www-data

2. ERREUR : échec de récupération de TCP_INFO pour le socket : protocole non disponible (92)

Cause : j'utilise le sous-système Linux (système Ubuntu) sous Windows, qui n'est pas un système complètement virtuel. Il y aura quelques problèmes, mais cela ne l'affecte pas. Vérifiez dans le gestionnaire de tâches hôte que php-fpm a été démarré.

Compiler et installer PHP7.4 (ubuntu)

Solution : Modifier php-fpm.conf

# 方法1: 
listen = /run/php-fpm.sock 
# 方法2 设置 
log_level = alert

Ajouter un démon

# PHP源码里有自带的服务脚本,只需要复制到/etc/init.d 目录,加上执行权限就可以了。
# 要注意保持 /usr/local/php7/etc/php-fpm.conf 里面的 pid 文件位置是初始值。原来的是 pid = run/php-fpm.pid
# 在源码目录执行
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
systemctl daemon-reload

# 使用方法与上面相同,也可以使用 systemctl
service php-fpm start 
service php-fpm stop 
service php-fpm restart 
service php-fpm status
# 或者
systemctl start php-fpm
systemctl stop php-fpm
systemctl restart php-fpm
systemctl status php-fpm

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn