1. 程式人生 > 實用技巧 >vagrant 中 php 7.2 升級到 php 7.3

vagrant 中 php 7.2 升級到 php 7.3

在本地用 vagrant 給 php 7.2 升級到 7.3 的時候,直接修改了 box/config.yml裡面 php 版本 然後就 vagrant reload --provision 進行重新啟動,然後 php 升級成功,但是在build xdebug的時候報錯了。

TASK [geerlingguy.php-xdebug : Build Xdebug.] **********************************
failed: [專案名稱] (item=make) => {"changed": true, "cmd": ["make"], "delta": "0:00:00.149477
", "end": "2020-07-17 06:59:21.346123", "item": "make", "msg": "non-zero return code", "rc": 2, "start": "2020-07-17 06:59:21.196646", "stderr": "/root/php7.3/xdebug-2.6.1/xdebug_compat.c: In function 'xdebug_zval_ptr':\n/root/php7.3/xdebug-2.6.1/xdebug_compat.c:56:27: warning: passing argument 1 of 'zend_get_zval_ptr' makes pointer from integer without a cast [-Wint-conversion]\n return zend_get_zval_ptr(op_type, node, zdata, &should_free, BP_VAR_R);\n ^\nIn file included from /usr/include/php/20180731/Zend/zend_API.h:29:0,\n from /usr/include/php/20180731/main/php.h:38,\n from /root/php7.3/xdebug-2.6.1/xdebug_compat.c:43:\n/usr/include/php/20180731/Zend/zend_execute.h:331:16: note: expected 'const zend_op * {aka const struct _zend_op *}' but argument is of type 'int'\n ZEND_API zval *zend_get_zval_ptr(const zend_op *opline, int op_type, const znode_op *node, const zend_execute_data *execute_data, zend_free_op *should_free, int type);\n ^\n/root/php7.3/xdebug-2.6.1/xdebug_compat.c:56:36: warning: passing argument 2 of 'zend_get_zval_ptr' makes integer from pointer without a cast [-Wint-conversion]\n return zend_get_zval_ptr(op_type, node, zdata, &should_free, BP_VAR_R);\n ^\nIn file included from /usr/include/php/20180731/Zend/zend_API.h:29:0,\n from /usr/include/php/20180731/main/php.h:38,\n from /root/php7.3/xdebug-2.6.1/xdebug_compat.c:43:\n/usr/include/php/20180731/Zend/zend_execute.h:331:16: note: expected 'int' but argument is of type 'const znode_op * {aka const union _znode_op *}'\n ZEND_API zval *zend_get_zval_ptr(const zend_op *opline, int op_type, const znode_op *node, const zend_execute_data *execute_data, zend_free_op *should_free, int type);\n ^\n/root/php7.3/xdebug-2.6.1/xdebug_compat.c:56:42: warning: passing argument 3 of 'zend_get_zval_ptr' from incompatible pointer type [-Wincompatible-pointer-types]\n return zend_get_zval_ptr(op_type, node, zdata, &should_free, BP_VAR_R);\n ^\nIn file included from /usr/include/php/20180731/Zend/zend_API.h:29:0,\n from /usr/include/php/20180731/main/php.h:38,\n from /root/php7.3/xdebug-2.6.1/xdebug_compat.c:43:\n/usr/include/php/20180731/Zend/zend_execute.h:331:16: note: expected 'const znode_op * {aka const union _znode_op *}' but argument is of type 'zend_execute_data * {aka struct _zend_execute_data *}'\n ZEND_API zval *zend_get_zval_ptr(const zend_op *opline, int op_type, const znode_op *node, const zend_execute_data *execute_data, zend_free_op *should_free, int type);\n ^\n/root/php7.3/xdebug-2.6.1/xdebug_compat.c:56:49: warning: passing argument 4 of 'zend_get_zval_ptr' from incompatible pointer type [-Wincompatible-pointer-types]\n return zend_get_zval_ptr(op_type, node, zdata, &should_free, BP_VAR_R);\n ^\nIn file included from /usr/include/php/20180731/Zend/zend_API.h:29:0,\n from /usr/include/php/20180731/main/php.h:38,\n from /root/php7.3/xdebug-2.6.1/xdebug_compat.c:43:\n/usr/include/php/20180731/Zend/zend_execute.h:331:16: note: expected 'const zend_execute_data * {aka const struct _zend_execute_data *}' but argument is of type 'zval ** {aka struct _zval_struct **}'\n ZEND_API zval *zend_get_zval_ptr(const zend_op *opline, int op_type, const znode_op *node, const zend_execute_data *execute_data, zend_free_op *should_free, int type);\n ^\n/root/php7.3/xdebug-2.6.1/xdebug_compat.c:56:9: error: too few arguments to function 'zend_get_zval_ptr'\n return zend_get_zval_ptr(op_type, node, zdata, &should_free, BP_VAR_R);\n ^\nIn file included from /usr/include/php/20180731/Zend/zend_API.h:29:0,\n from /usr/include/php/20180731/main/php.h:38,\n from /root/php7.3/xdebug-2.6.1/xdebug_compat.c:43:\n/usr/include/php/20180731/Zend/zend_execute.h:331:16: note: declared here\n ZEND_API zval *zend_get_zval_ptr(const zend_op *opline, int op_type, const znode_op *node, const zend_execute_data *execute_data, zend_free_op *should_free, int type);\n ^\n/root/php7.3/xdebug-2.6.1/xdebug_compat.c: In function 'xdebug_setcookie':\n/root/php7.3/xdebug-2.6.1/xdebug_compat.c:194:80: warning: passing argument 8 of 'php_setcookie' makes pointer from integer without a cast [-Wint-conversion]\n php_setcookie(name_s, value_s, expires, path_s, domain_s, secure, url_encode, httponly);\n ^\nIn file included from /root/php7.3/xdebug-2.6.1/xdebug_compat.h:25:0,\n from /root/php7.3/xdebug-2.6.1/xdebug_compat.c:45:\n/usr/include/php/20180731/ext/standard/head.h:40:12: note: expected 'zend_string * {aka struct _zend_string *}' but argument is of type 'int'\n PHPAPI int php_setcookie(zend_string *name, zend_string *value, time_t expires, zend_string *path, zend_string *domain, int secure, int httponly, zend_string *samesite, int url_encode);\n ^\n/root/php7.3/xdebug-2.6.1/xdebug_compat.c:194:2: error: too few arguments to function 'php_setcookie'\n php_setcookie(name_s, value_s, expires, path_s, domain_s, secure, url_encode, httponly);\n ^\nIn file included from /root/php7.3/xdebug-2.6.1/xdebug_compat.h:25:0,\n from /root/php7.3/xdebug-2.6.1/xdebug_compat.c:45:\n/usr/include/php/20180731/ext/standard/head.h:40:12: note: declared here\n PHPAPI int php_setcookie(zend_string *name, zend_string *value, time_t expires, zend_string *path, zend_string *domain, int secure, int httponly, zend_string *samesite, int url_encode);\n ^\nmake: *** [xdebug_compat.lo] Error 1
", "stderr_lines": ["/root/php7.3/xdebug-2.6.1/xdebug_compat.c: In function 'xdebug_zval_ptr':", "/root/php7.3/xdebug-2.6.1/xdebug_compat.c:56:27: warning: passing argument 1 of 'zend_get_zval_ptr' makes pointer from integer without a cast [-Wint-conversion]", " return zend_get_zval_ptr(op_type, node, zdata, &should_free, BP_VAR_R);
", " ^", "In file included from /usr/include/php/20180731/Zend/zend_API.h:29:0,", " from /usr/include/php/20180731/main/php.h:38,", " from /root/php7.3/xdebug-2.6.1/xdebug_compat.c:43:", "/usr/include/php/20180731/Zend/zend_execute.h:331:16: note: expected 'const zend_op * {aka const struct _zend_op *}' but argument is of type 'int'", " ZEND_API zval *zend_get_zval_ptr(const zend_op *opline, int op_type, const znode_op *node, const zend_execute_data *execute_data, zend_free_op *should_free, int type);", " ^", "/root/php7.3/xdebug-2.6.1/xdebug_compat.c:56:36: warning: passing argument 2 of 'zend_get_zval_ptr' makes integer from pointer without a cast [-Wint-conversion]", " return zend_get_zval_ptr(op_type, node, zdata, &should_free, BP_VAR_R);", " ^", "In file included from /usr/include/php/20180731/Zend/zend_API.h:29:0,", " from /usr/include/php/20180731/main/php.h:38,", " from /root/php7.3/xdebug-2.6.1/xdebug_compat.c:43:", "/usr/include/php/20180731/Zend/zend_execute.h:331:16: note: expected 'int' but argument is of type 'const znode_op * {aka const union _znode_op *}'", " ZEND_API zval *zend_get_zval_ptr(const zend_op *opline, int op_type, const znode_op *node, const zend_execute_data *execute_data, zend_free_op *should_free, int type);", " ^", "/root/php7.3/xdebug-2.6.1/xdebug_compat.c:56:42: warning: passing argument 3 of 'zend_get_zval_ptr' from incompatible pointer type [-Wincompatible-pointer-types]", " return zend_get_zval_ptr(op_type, node, zdata, &should_free, BP_VAR_R);", " ^", "In file included from /usr/include/php/20180731/Zend/zend_API.h:29:0,", " from /usr/include/php/20180731/main/php.h:38,", " from /root/php7.3/xdebug-2.6.1/xdebug_compat.c:43:", "/usr/include/php/20180731/Zend/zend_execute.h:331:16: note: expected 'const znode_op * {aka const union _znode_op *}' but argument is of type 'zend_execute_data * {aka struct _zend_execute_data *}'", " ZEND_API zval *zend_get_zval_ptr(const zend_op *opline, int op_type, const znode_op *node, const zend_execute_data *execute_data, zend_free_op *should_free, int type);", " ^", "/root/php7.3/xdebug-2.6.1/xdebug_compat.c:56:49: warning: passing argument 4 of 'zend_get_zval_ptr' from incompatible pointer type [-Wincompatible-pointer-types]", " return zend_get_zval_ptr(op_type, node, zdata, &should_free, BP_VAR_R);", " ^", "In file included from /usr/include/php/20180731/Zend/zend_API.h:29:0,", " from /usr/include/php/20180731/main/php.h:38,", " from /root/php7.3/xdebug-2.6.1/xdebug_compat.c:43:", "/usr/include/php/20180731/Zend/zend_execute.h:331:16: note: expected 'const zend_execute_data * {aka const struct _zend_execute_data *}' but argument is of type 'zval ** {aka struct _zval_struct **}'", " ZEND_API zval *zend_get_zval_ptr(const zend_op *opline, int op_type, const znode_op *node, const zend_execute_data *execute_data, zend_free_op *should_free, int type);", " ^", "/root/php7.3/xdebug-2.6.1/xdebug_compat.c:56:9: error: too few arguments to function 'zend_get_zval_ptr'", " return zend_get_zval_ptr(op_type, node, zdata, &should_free, BP_VAR_R);", " ^", "In file included from /usr/include/php/20180731/Zend/zend_API.h:29:0,", " from /usr/include/php/20180731/main/php.h:38,", " from /root/php7.3/xdebug-2.6.1/xdebug_compat.c:43:", "/usr/include/php/20180731/Zend/zend_execute.h:331:16: note: declared here", " ZEND_API zval *zend_get_zval_ptr(const zend_op *opline, int op_type, const znode_op *node, const zend_execute_data *execute_data, zend_free_op *should_free, int type);", " ^", "/root/php7.3/xdebug-2.6.1/xdebug_compat.c: In function 'xdebug_setcookie':", "/root/php7.3/xdebug-2.6.1/xdebug_compat.c:194:80: warning: passing argument 8 of 'php_setcookie' makes pointer from integer without a cast [-Wint-conversion]", " php_setcookie(name_s, value_s, expires, path_s, domain_s, secure, url_encode, httponly);", " ^", "In file included from /root/php7.3/xdebug-2.6.1/xdebug_compat.h:25:0,", " from /root/php7.3/xdebug-2.6.1/xdebug_compat.c:45:", "/usr/include/php/20180731/ext/standard/head.h:40:12: note: expected 'zend_string * {aka struct _zend_string *}' but argument is of type 'int'", " PHPAPI int php_setcookie(zend_string *name, zend_string *value, time_t expires, zend_string *path, zend_string *domain, int secure, int httponly, zend_string *samesite, int url_encode);", " ^", "/root/php7.3/xdebug-2.6.1/xdebug_compat.c:194:2: error: too few arguments to function 'php_setcookie'", " php_setcookie(name_s, value_s, expires, path_s, domain_s, secure, url_encode, httponly);", " ^", "In file included from /root/php7.3/xdebug-2.6.1/xdebug_compat.h:25:0,", " from /root/php7.3/xdebug-2.6.1/xdebug_compat.c:45:", "/usr/include/php/20180731/ext/standard/head.h:40:12: note: declared here", " PHPAPI int php_setcookie(zend_string *name, zend_string *value, time_t expires, zend_string *path, zend_string *domain, int secure, int httponly, zend_string *samesite, int url_encode);", " ^", "make: *** [xdebug_compat.lo] Error 1"], "stdout": "/bin/bash /root/php7.3/xdebug-2.6.1/libtool --mode=compile cc -I. -I/root/php7.3/xdebug-2.6.1 -DPHP_ATOM_INC -I/root/php7.3/xdebug-2.6.1/include -I/root/php7.3/xdebug-2.6.1/main -I/root/php7.3/xdebug-2.6.1 -I/usr/include/php/20180731 -I/usr/include/php/20180731/main -I/usr/include/php/20180731/TSRM -I/usr/include/php/20180731/Zend -I/usr/include/php/20180731/ext -I/usr/include/php/20180731/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /root/php7.3/xdebug-2.6.1/xdebug_compat.c -o xdebug_compat.lo \nlibtool: compile: cc -I. -I/root/php7.3/xdebug-2.6.1 -DPHP_ATOM_INC -I/root/php7.3/xdebug-2.6.1/include -I/root/php7.3/xdebug-2.6.1/main -I/root/php7.3/xdebug-2.6.1 -I/usr/include/php/20180731 -I/usr/include/php/20180731/main -I/usr/include/php/20180731/TSRM -I/usr/include/php/20180731/Zend -I/usr/include/php/20180731/ext -I/usr/include/php/20180731/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /root/php7.3/xdebug-2.6.1/xdebug_compat.c -fPIC -DPIC -o .libs/xdebug_compat.o\nMakefile:234: recipe for target 'xdebug_compat.lo' failed", "stdout_lines": ["/bin/bash /root/php7.3/xdebug-2.6.1/libtool --mode=compile cc -I. -I/root/php7.3/xdebug-2.6.1 -DPHP_ATOM_INC -I/root/php7.3/xdebug-2.6.1/include -I/root/php7.3/xdebug-2.6.1/main -I/root/php7.3/xdebug-2.6.1 -I/usr/include/php/20180731 -I/usr/include/php/20180731/main -I/usr/include/php/20180731/TSRM -I/usr/include/php/20180731/Zend -I/usr/include/php/20180731/ext -I/usr/include/php/20180731/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /root/php7.3/xdebug-2.6.1/xdebug_compat.c -o xdebug_compat.lo ", "libtool: compile: cc -I. -I/root/php7.3/xdebug-2.6.1 -DPHP_ATOM_INC -I/root/php7.3/xdebug-2.6.1/include -I/root/php7.3/xdebug-2.6.1/main -I/root/php7.3/xdebug-2.6.1 -I/usr/include/php/20180731 -I/usr/include/php/20180731/main -I/usr/include/php/20180731/TSRM -I/usr/include/php/20180731/Zend -I/usr/include/php/20180731/ext -I/usr/include/php/20180731/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /root/php7.3/xdebug-2.6.1/xdebug_compat.c -fPIC -DPIC -o .libs/xdebug_compat.o", "Makefile:234: recipe for target 'xdebug_compat.lo' failed"]}

然後也不知道到底怎麼回事,是不是該修改Xdebug相關配置,就去box配置裡面找網上找,只發現了 這些。

# XDebug configuration.
php_xdebug_version: 2.6.1
# Change this value to 1 in order to enable xdebug by default.
php_xdebug_default_enable: 0
php_xdebug_coverage_enable: 0
php_xdebug_cli_disable: 'yes'
php_xdebug_remote_enable: 1
php_xdebug_remote_connect_back: 1
# Use PHPSTORM for PHPStorm, sublime.xdebug for Sublime Text.
php_xdebug_idekey: PHPSTORM
php_xdebug_max_nesting_level: 256
php_xdebug_remote_port: '9000'
php_memory_limit: 512M

然後就按

php_xdebug_version:

這個關鍵字搜 發現了這篇文章

https://blog.csdn.net/longxingjiang/article/details/83505559

讓我根據phpinifo() 去找對應需要安裝的xdebug版本

於是我就把phpinfo()複製出來然後去了這個網站

https://xdebug.org/wizard

然後得到了結果

好的 ,看來是我需要安裝 2.9.6 版本的xdebug,因為我現在用的是php7.3了。老版本 2.6.1 是對 php 7.2 使用的。

這 vagrant 裡面升級 php 版本真方便啊,改改配置,重新reload就好了。