Maison  >  Article  >  développement back-end  >  Compilez php7.2 sous Windows et étendez Judy

Compilez php7.2 sous Windows et étendez Judy

不言
不言original
2018-04-08 09:21:142630parcourir

Le contenu partagé dans cet article concerne la compilation de php7.2 sous Windows et l'extension de Judy. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent se référer au contenu de cet article

Je prévois de mettre à niveau php. à 7.2. J'utilise php7.2, mais il n'existe pas de version compilée officielle de Judy, une extension que j'utilise souvent... donc je prévois de la compiler moi-même..

Article de référence : http://blog.51cto .com/lancelot/2054953 Compilation de php7.2 sous Windows pour étendre memcache

1 Construction de l'environnement de compilation

(1) Il existe plusieurs différences importantes dans le. compilation de php7.2 (environnement Windows).

1.php7.2 est compilé avec vc15 (vs2017)

Le dsp php-sdk de 2.php7.2 n'est plus disponible en téléchargement sur la page précédente (l'adresse a été modifiée)

3. Construire l'environnement de compilation est plus facile.


(2) Construire l'environnement spécifique

1. Installez le compilateur vc15


vs2017 sépare le compilateur et l'ide Parce que nous n'avons besoin que du compilateur, nous n'avons pas besoin d'installer vs2017 (vous pouvez également. installez directement la version gratuite vs2017)

http://landinghub .visualstudio.com/visual-cpp-build-tools

Cliquez sur l'adresse de téléchargement pour accéder à la page de téléchargement et trouver "Visual Studio 2017 Build Tools" ci-dessous Installez-le simplement (lors de l'installation, veuillez noter qu'il vous suffit de vérifier les outils pertinents pour la compilation vc)

2. Téléchargez php-sdk et décompressez

https://github.com/ Microsoft/php-sdk-binary-tools

Extraire vers d:php_sdk (en supposant que nous allons utiliser d:php_sdk comme répertoire de compilation)

À ce moment-là, il devrait y avoir


Exécutez phpsdk-vc15-x86. .bat dans d:php_sdk

Maintenez la touche Maj enfoncée et faites un clic droit sur "Ici" dans le répertoire php_sdk Ouvrez la fenêtre de ligne de commande "

Exécutez "phpsdk-vc15-x86.bat" dans la fenêtre de ligne de commande

Remarque : Si vous souhaitez compiler la version 64 bits, exécutez x64,

result Comme indiqué ci-dessous (le répertoire phpsdk est différent)


4. Exécutez php

sdk_buildtree phpdev

À ce stade, il devrait y avoir un répertoire phpdev sous d:php_sdk

5. Téléchargez le code source php et extrayez-le dans d:php_sdkphpdevvc15x86php-src

Créez le répertoire php-src

Téléchargez le code source php et extrayez dans le répertoire php-src

À ce moment d:php_sdkphp Le répertoire devvc15x86php-src doit être le suivant (les fichiers du répertoire peuvent être différents mais il s'agit du répertoire racine du code source)


6. Entrez php- src, exécutez la ligne de commande

"cd d:php_sdkphpdevvc15x86php-src" pour entrer dans le répertoire php-src

ligne de commande "phpsdk_deps --update --branch master" PHP téléchargera automatiquement les packages de dépendances requis (auparavant, vous deviez télécharger le fichier php-dsp manuellement)

Attendez la fin du téléchargement (probablement comme indiqué ci-dessous)

Processing package zlib-1.2.11-vc15-x64.zip
Processing package libsodium-1.0.15-vc15-x64.zip
Updates performed successfully.
Old dependencies backed up into 'D:\php_sdk\phpdev\vc15\x86\deps.201712260650'.

D:\php_sdk\phpdev\vc15\x86\php-src
$

7. Exécutez "buildconf"

Exécution de la ligne de commande "buildconf"

Si vous êtes invité à "Aucune extension de fichier" .js "moteur de script

Baidu "Aucune extension de fichier ".js" moteur de script"

Suivez ce https://blog .csdn.net/ctthuangcheng/article /details/16951361

Réexécutez buildconf

Les résultats sont les suivants

$ buildconf
Rebuilding configure.js
Now run 'configure --help'

D:\php_sdk\phpdev\vc15\x86\php-src
$

8. Compilez php

configure --disable-all --enable-cli --enable-zlib --enable-hash --enable-session --without-gd --with-bz2  --enable-fd-setsize=2048 --enable-sanitizer

Puis exécutez "nmake" pour démarrer la compilation

Après avoir attendu quelques minutes (ou 10 minutes ), vous devriez pouvoir trouver Release_TS (ou Release_NTS) dans le répertoire php-src Ou x64Release_TS ) un tel répertoire

Si la compilation est normale, il y aura un fichier php.exe ci-dessous pour prouver que le php est compilé avec succès.

Exécutez le "php.exe -v" compilé pour vérifier s'il est normal. Exécutez

Remarque : d'autres paramètres de configuration de la ligne de commande

--disable-cgi   编译出 windows 版本和 php-cgi.exe
--disable-zts   nts 非线程安全
--enable-shmop=shared   以dll 方式编译 php shmop 扩展
<.> 2. Compilez l'extension Judy

La compilation réussie du php ci-dessus signifie que l'environnement de compilation php est terminé, commencez maintenant à compiler l'extension Judy

1.下载judy源码

http://pecl.php.net/package/judy  这里是php-judy 官网 但是这个源码好久没有更新了 最高只支持php5.6

https://github.com/esminis/php_pecl_judy  这个是github 上面 有用户升级过的php-judy 测试支持php7.2

根据 php_pecl_judy 的说明按如下步骤编译

2.编译judy.lib

到https://sourceforge.net/projects/judy/ 下载 源码 

解压到任意目录 

然后 在 judy-1.0.5\src\ 中右键 shift 点击 "在此处打开命令行窗口"  

运行 "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars32.bat" 注意路径可能不一样

然后运行 "build"

然后会编译出一个 judy.lib

3.拷贝judy.lib文件

一.重命名 judy.lib 文件为 "libJudy.lib" 复制到 D:\php_sdk\phpdev\vc15\x86\deps\lib\ 目录下

注释:也有可能是  D:\php_sdk\phpdev\vc15\x86\deps.xxxxxxx\lib\ 文件(看看哪个lib下面有 文件 就拷贝到哪个目录)

二.复制 judy.h 到deps\include 下面(同上 目录可能 为deps.xxxx )

4.复制 phpjudy(https://github.com/esminis/php_pecl_judy)源码到 php-src\ext\judy\

在 ext\judy\ 下面应该有文件


5.在刚刚编译php的cmd窗口执行 

configure --disable-all --enable-cli --enable-zlib --enable-hash --enable-session --without-gd --with-bz2 --with-judy=shared --enable-fd-setsize=2048 --enable-sanitizer


(如果关闭了 需要重新 执行 phpsdk-vc15-x86.bat 然后进入 php-src目录 执行 "build")

然后执行 nmake 然后就可以在 Release_TS 目录看见 php-judy.dll了(编译成功)

相关推荐:

PHP编译安装过程以及各编译参数配置详解

PHP7.1安装yaf扩展的方法


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