{"id":17,"date":"2008-08-10T13:23:39","date_gmt":"2008-08-10T17:23:39","guid":{"rendered":"http:\/\/www.compdigitec.com\/labs\/?p=17"},"modified":"2010-02-27T20:02:15","modified_gmt":"2010-02-28T01:02:15","slug":"install-bcompiler-for-php-on-ubuntu-linux","status":"publish","type":"post","link":"http:\/\/www.compdigitec.com\/labs\/2008\/08\/10\/install-bcompiler-for-php-on-ubuntu-linux\/","title":{"rendered":"Install bcompiler for PHP on Ubuntu Linux"},"content":{"rendered":"<p>The <a href=\"http:\/\/php.net\/bcompiler\">PHP bytecode compiler<\/a> is a useful way to convert PHP to bytecode, which can then be converted to binaries. However, the <a rel=\"nofollow\" href=\"http:\/\/www.ubuntu.com\/\">Ubuntu<\/a> packaging team has not yet made a binary package of bcompiler available. However, you can install this bytecode compiler yourself with these 9 easy to follow steps. A binary build is availible, but you should try to compile\/install it yourself because the binary extension might not be suitable for your computer.<\/p>\n<ol>\n<li>Install the basic dependencies with <strong>sudo apt-get install automake m4 php5-dev<\/strong><br \/>\n<code>Reading package lists... Done<br \/>\nBuilding dependency tree<br \/>\nReading state information... Done<br \/>\nThe following extra packages will be installed:<br \/>\nautoconf automake1.4 autotools-dev libtool shtool<br \/>\nSuggested packages:<br \/>\nautoconf2.13 autobook autoconf-archive gnu-standards autoconf-doc gfortran fortran95-compiler libtool-doc<br \/>\nRecommended packages:<br \/>\nautomaken libltdl3-dev<br \/>\nThe following NEW packages will be installed:<br \/>\nautoconf automake automake1.4 autotools-dev libtool m4 php5-dev shtool<br \/>\n0 upgraded, 8 newly installed, 0 to remove and 67 not upgraded.<br \/>\nNeed to get 2371kB of archives.<br \/>\nAfter this operation, 9540kB of additional disk space will be used.<br \/>\nDo you want to continue [Y\/n]? y<br \/>\nGet:1 http:\/\/us.archive.ubuntu.com hardy\/main m4 1.4.10-1 [207kB]<br \/>\nGet:2 http:\/\/us.archive.ubuntu.com hardy\/main autoconf 2.61-4 [448kB]<br \/>\nGet:3 http:\/\/us.archive.ubuntu.com hardy\/main autotools-dev 20070725.1 [61.9kB]<br \/>\nGet:4 http:\/\/us.archive.ubuntu.com hardy\/main automake 1:1.10.1-2 [519kB]<br \/>\nGet:5 http:\/\/us.archive.ubuntu.com hardy\/main automake1.4 1:1.4-p6-12 [272kB]<br \/>\nGet:6 http:\/\/us.archive.ubuntu.com hardy\/main libtool 1.5.26-1ubuntu1 [340kB]<br \/>\nGet:7 http:\/\/us.archive.ubuntu.com hardy\/main shtool 2.0.7-1 [159kB]<br \/>\nGet:8 http:\/\/us.archive.ubuntu.com hardy-updates\/main php5-dev 5.2.4-2ubuntu5.3 [364kB]<br \/>\nFetched 2371kB in 32s (72.5kB\/s)<br \/>\nSelecting previously deselected package m4.<br \/>\n(Reading database ... 123151 files and directories currently installed.)<br \/>\nUnpacking m4 (from ...\/archives\/m4_1.4.10-1_i386.deb) ...<br \/>\nSelecting previously deselected package autoconf.<br \/>\nUnpacking autoconf (from ...\/autoconf_2.61-4_all.deb) ...<br \/>\nSelecting previously deselected package autotools-dev.<br \/>\nUnpacking autotools-dev (from ...\/autotools-dev_20070725.1_all.deb) ...<br \/>\nSelecting previously deselected package automake.<br \/>\nUnpacking automake (from ...\/automake_1%3a1.10.1-2_all.deb) ...<br \/>\nSelecting previously deselected package automake1.4.<br \/>\nUnpacking automake1.4 (from ...\/automake1.4_1%3a1.4-p6-12_all.deb) ...<br \/>\nSelecting previously deselected package libtool.<br \/>\nUnpacking libtool (from ...\/libtool_1.5.26-1ubuntu1_i386.deb) ...<br \/>\nSelecting previously deselected package shtool.<br \/>\nUnpacking shtool (from ...\/shtool_2.0.7-1_all.deb) ...<br \/>\nSelecting previously deselected package php5-dev.<br \/>\nUnpacking php5-dev (from ...\/php5-dev_5.2.4-2ubuntu5.3_i386.deb) ...<br \/>\nSetting up m4 (1.4.10-1) ...<\/code><\/p>\n<p>Setting up autoconf (2.61-4) &#8230;<\/p>\n<p>Setting up autotools-dev (20070725.1) &#8230;<br \/>\nSetting up automake (1:1.10.1-2) &#8230;<\/p>\n<p>Setting up automake1.4 (1:1.4-p6-12) &#8230;<\/p>\n<p>Setting up libtool (1.5.26-1ubuntu1) &#8230;<br \/>\nSetting up shtool (2.0.7-1) &#8230;<br \/>\nSetting up php5-dev (5.2.4-2ubuntu5.3) &#8230;<\/li>\n<li>Then, install the secondary dependencies with <strong>sudo apt-get install re2c libbz2-dev<\/strong>:<br \/>\n<code>Reading package lists... Done<br \/>\nBuilding dependency tree<br \/>\nReading state information... Done<br \/>\nThe following NEW packages will be installed:<br \/>\nlibbz2-dev re2c<br \/>\n0 upgraded, 2 newly installed, 0 to remove and 67 not upgraded.<br \/>\nNeed to get 219kB of archives.<br \/>\nAfter this operation, 582kB of additional disk space will be used.<br \/>\nGet:1 http:\/\/us.archive.ubuntu.com hardy\/main libbz2-dev 1.0.4-2ubuntu4 [32.1kB]<br \/>\nGet:2 http:\/\/us.archive.ubuntu.com hardy\/main re2c 0.12.1-1build1 [187kB]<br \/>\nFetched 219kB in 1s (113kB\/s)<br \/>\nSelecting previously deselected package libbz2-dev.<br \/>\n(Reading database ... 123871 files and directories currently installed.)<br \/>\nUnpacking libbz2-dev (from ...\/libbz2-dev_1.0.4-2ubuntu4_i386.deb) ...<br \/>\nSelecting previously deselected package re2c.<br \/>\nUnpacking re2c (from ...\/re2c_0.12.1-1build1_i386.deb) ...<br \/>\nSetting up libbz2-dev (1.0.4-2ubuntu4) ...<br \/>\nSetting up re2c (0.12.1-1build1) ...<\/code><\/li>\n<li>Compile and install bcompiler with <strong>sudo pecl install bcompiler-0.8<\/strong>:<br \/>\n<code>downloading bcompiler-0.8.tgz ...<br \/>\nStarting to download bcompiler-0.8.tgz (46,667 bytes)<br \/>\n.............done: 46,667 bytes<br \/>\n10 source files, building<br \/>\nrunning: phpize<br \/>\nConfiguring for:<br \/>\nPHP Api Version: 20041225<br \/>\nZend Module Api No: 20060613<br \/>\nZend Extension Api No: 220060519<br \/>\nbuilding in \/var\/tmp\/pear-build-root\/bcompiler-0.8<br \/>\nrunning: \/tmp\/pear\/cache\/bcompiler-0.8\/configure<br \/>\nchecking for grep that handles long lines and -e... \/bin\/grep<br \/>\nchecking for egrep... \/bin\/grep -E<br \/>\nchecking for a sed that does not truncate output... \/bin\/sed<br \/>\nchecking for gcc... gcc<br \/>\nchecking for C compiler default output file name... a.out<br \/>\nchecking whether the C compiler works... yes<br \/>\nchecking whether we are cross compiling... no<br \/>\nchecking for suffix of executables...<br \/>\nchecking for suffix of object files... o<br \/>\nchecking whether we are using the GNU C compiler... yes<br \/>\nchecking whether gcc accepts -g... yes<br \/>\nchecking for gcc option to accept ISO C89... none needed<br \/>\nchecking whether gcc and cc understand -c and -o together... yes<br \/>\nchecking for system library directory... lib<br \/>\nchecking if compiler supports -R... no<br \/>\nchecking if compiler supports -Wl,-rpath,... yes<br \/>\nchecking build system type... i686-pc-linux-gnu<br \/>\nchecking host system type... i686-pc-linux-gnu<br \/>\nchecking target system type... i686-pc-linux-gnu<br \/>\nchecking for PHP prefix... \/usr<br \/>\nchecking for PHP includes... -I\/usr\/include\/php5 -I\/usr\/include\/php5\/main -I\/usr\/include\/php5\/TSRM -I\/usr\/include\/php5\/Zend -I\/usr\/include\/php5\/ext -I\/usr\/include\/php5\/ext\/date\/lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64<br \/>\nchecking for PHP extension directory... \/usr\/lib\/php5\/20060613+lfs<br \/>\nchecking for PHP installed headers prefix... \/usr\/include\/php5<br \/>\nchecking for re2c... re2c<br \/>\nchecking for re2c version... 0.12.1 (ok)<br \/>\nchecking for gawk... gawk<br \/>\nchecking whether to enable bcompiler support... yes, shared<br \/>\nchecking for BZip2 in default path... found in \/usr<br \/>\nchecking for BZ2_bzerror in -lbz2... yes<br \/>\nchecking for ld used by gcc... \/usr\/bin\/ld<br \/>\nchecking if the linker (\/usr\/bin\/ld) is GNU ld... yes<br \/>\nchecking for \/usr\/bin\/ld option to reload object files... -r<br \/>\nchecking for BSD-compatible nm... \/usr\/bin\/nm -B<br \/>\nchecking whether ln -s works... yes<br \/>\nchecking how to recognize dependent libraries... pass_all<br \/>\nchecking how to run the C preprocessor... gcc -E<br \/>\nchecking for ANSI C header files... yes<br \/>\nchecking for sys\/types.h... yes<br \/>\nchecking for sys\/stat.h... yes<br \/>\nchecking for stdlib.h... yes<br \/>\nchecking for string.h... yes<br \/>\nchecking for memory.h... yes<br \/>\nchecking for strings.h... yes<br \/>\nchecking for inttypes.h... yes<br \/>\nchecking for stdint.h... yes<br \/>\nchecking for unistd.h... yes<br \/>\nchecking dlfcn.h usability... yes<br \/>\nchecking dlfcn.h presence... yes<br \/>\nchecking for dlfcn.h... yes<br \/>\nchecking for g77... no<br \/>\nchecking for xlf... no<br \/>\nchecking for f77... no<br \/>\nchecking for frt... no<br \/>\nchecking for pgf77... no<br \/>\nchecking for cf77... no<br \/>\nchecking for fort77... no<br \/>\nchecking for fl32... no<br \/>\nchecking for af77... no<br \/>\nchecking for xlf90... no<br \/>\nchecking for f90... no<br \/>\nchecking for pgf90... no<br \/>\nchecking for pghpf... no<br \/>\nchecking for epcf90... no<br \/>\nchecking for gfortran... no<br \/>\nchecking for g95... no<br \/>\nchecking for xlf95... no<br \/>\nchecking for f95... no<br \/>\nchecking for fort... no<br \/>\nchecking for ifort... no<br \/>\nchecking for ifc... no<br \/>\nchecking for efc... no<br \/>\nchecking for pgf95... no<br \/>\nchecking for lf95... no<br \/>\nchecking for ftn... no<br \/>\nchecking whether we are using the GNU Fortran 77 compiler... no<br \/>\nchecking whether accepts -g... no<br \/>\nchecking the maximum length of command line arguments... 98304<br \/>\nchecking command to parse \/usr\/bin\/nm -B output from gcc object... ok<br \/>\nchecking for objdir... .libs<br \/>\nchecking for ar... ar<br \/>\nchecking for ranlib... ranlib<br \/>\nchecking for strip... strip<br \/>\nchecking if gcc supports -fno-rtti -fno-exceptions... no<br \/>\nchecking for gcc option to produce PIC... -fPIC<br \/>\nchecking if gcc PIC flag -fPIC works... yes<br \/>\nchecking if gcc static flag -static works... yes<br \/>\nchecking if gcc supports -c -o file.o... yes<br \/>\nchecking whether the gcc linker (\/usr\/bin\/ld) supports shared libraries... yes<br \/>\nchecking whether -lc should be explicitly linked in... no<br \/>\nchecking dynamic linker characteristics... GNU\/Linux ld.so<br \/>\nchecking how to hardcode library paths into programs... immediate<br \/>\nchecking whether stripping libraries is possible... yes<br \/>\nchecking if libtool supports shared libraries... yes<br \/>\nchecking whether to build shared libraries... yes<br \/>\nchecking whether to build static libraries... no<br \/>\nconfigure: creating libtool<br \/>\nappending configuration tag \"CXX\" to libtool<br \/>\nappending configuration tag \"F77\" to libtool<br \/>\nconfigure: creating .\/config.status<br \/>\nconfig.status: creating config.h<br \/>\nrunning: make<br \/>\n\/bin\/bash \/var\/tmp\/pear-build-root\/bcompiler-0.8\/libtool --mode=compile gcc -I. -I\/tmp\/pear\/cache\/bcompiler-0.8 -DPHP_ATOM_INC -I\/var\/tmp\/pear-build-root\/bcompiler-0.8\/include -I\/var\/tmp\/pear-build-root\/bcompiler-0.8\/main -I\/tmp\/pear\/cache\/bcompiler-0.8 -I\/usr\/include\/php5 -I\/usr\/include\/php5\/main -I\/usr\/include\/php5\/TSRM -I\/usr\/include\/php5\/Zend -I\/usr\/include\/php5\/ext -I\/usr\/include\/php5\/ext\/date\/lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -c \/tmp\/pear\/cache\/bcompiler-0.8\/bcompiler.c -o bcompiler.lo<br \/>\nmkdir .libs<br \/>\ngcc -I. -I\/tmp\/pear\/cache\/bcompiler-0.8 -DPHP_ATOM_INC -I\/var\/tmp\/pear-build-root\/bcompiler-0.8\/include -I\/var\/tmp\/pear-build-root\/bcompiler-0.8\/main -I\/tmp\/pear\/cache\/bcompiler-0.8 -I\/usr\/include\/php5 -I\/usr\/include\/php5\/main -I\/usr\/include\/php5\/TSRM -I\/usr\/include\/php5\/Zend -I\/usr\/include\/php5\/ext -I\/usr\/include\/php5\/ext\/date\/lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -c \/tmp\/pear\/cache\/bcompiler-0.8\/bcompiler.c -fPIC -DPIC -o .libs\/bcompiler.o<br \/>\n\/tmp\/pear\/cache\/bcompiler-0.8\/bcompiler.c:1342:8: warning: extra tokens at end of #endif directive<br \/>\n\/bin\/bash \/var\/tmp\/pear-build-root\/bcompiler-0.8\/libtool --mode=link gcc -DPHP_ATOM_INC -I\/var\/tmp\/pear-build-root\/bcompiler-0.8\/include -I\/var\/tmp\/pear-build-root\/bcompiler-0.8\/main -I\/tmp\/pear\/cache\/bcompiler-0.8 -I\/usr\/include\/php5 -I\/usr\/include\/php5\/main -I\/usr\/include\/php5\/TSRM -I\/usr\/include\/php5\/Zend -I\/usr\/include\/php5\/ext -I\/usr\/include\/php5\/ext\/date\/lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -o bcompiler.la -export-dynamic -avoid-version -prefer-pic -module -rpath \/var\/tmp\/pear-build-root\/bcompiler-0.8\/modules bcompiler.lo -lbz2<br \/>\ngcc -shared .libs\/bcompiler.o -lbz2 -Wl,-soname -Wl,bcompiler.so -o .libs\/bcompiler.so<br \/>\ncreating bcompiler.la<br \/>\n(cd .libs &amp;&amp; rm -f bcompiler.la &amp;&amp; ln -s ..\/bcompiler.la bcompiler.la)<br \/>\n\/bin\/bash \/var\/tmp\/pear-build-root\/bcompiler-0.8\/libtool --mode=install cp .\/bcompiler.la \/var\/tmp\/pear-build-root\/bcompiler-0.8\/modules<br \/>\ncp .\/.libs\/bcompiler.so \/var\/tmp\/pear-build-root\/bcompiler-0.8\/modules\/bcompiler.so<br \/>\ncp .\/.libs\/bcompiler.lai \/var\/tmp\/pear-build-root\/bcompiler-0.8\/modules\/bcompiler.la<br \/>\nPATH=\"$PATH:\/sbin\" ldconfig -n \/var\/tmp\/pear-build-root\/bcompiler-0.8\/modules<br \/>\n----------------------------------------------------------------------<br \/>\nLibraries have been installed in:<br \/>\n\/var\/tmp\/pear-build-root\/bcompiler-0.8\/modules<\/code><\/p>\n<p>If you ever happen to want to link against installed libraries<br \/>\nin a given directory, LIBDIR, you must either use libtool, and<br \/>\nspecify the full pathname of the library, or use the `-LLIBDIR&#8217;<br \/>\nflag during linking and do at least one of the following:<br \/>\n&#8211; add LIBDIR to the `LD_LIBRARY_PATH&#8217; environment variable<br \/>\nduring execution<br \/>\n&#8211; add LIBDIR to the `LD_RUN_PATH&#8217; environment variable<br \/>\nduring linking<br \/>\n&#8211; use the `-Wl,&#8211;rpath -Wl,LIBDIR&#8217; linker flag<br \/>\n&#8211; have your system administrator add LIBDIR to `\/etc\/ld.so.conf&#8217;<\/p>\n<p>See any operating system documentation about shared libraries for<br \/>\nmore information, such as the ld(1) and ld.so(8) manual pages.<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>Build complete.<br \/>\nDon&#8217;t forget to run &#8216;make test&#8217;.<\/p>\n<p>running: make INSTALL_ROOT=&#8221;\/var\/tmp\/pear-build-root\/install-bcompiler-0.8&#8243; install<br \/>\nInstalling shared extensions: \/var\/tmp\/pear-build-root\/install-bcompiler-0.8\/usr\/lib\/php5\/20060613+lfs\/<br \/>\nrunning: find &#8220;\/var\/tmp\/pear-build-root\/install-bcompiler-0.8&#8221; -ls<br \/>\n191629 4 drwxr-xr-x 3 root root 4096 Aug 10 12:20 \/var\/tmp\/pear-build-root\/install-bcompiler-0.8<br \/>\n191686 4 drwxr-xr-x 3 root root 4096 Aug 10 12:20 \/var\/tmp\/pear-build-root\/install-bcompiler-0.8\/usr<br \/>\n191687 4 drwxr-xr-x 3 root root 4096 Aug 10 12:20 \/var\/tmp\/pear-build-root\/install-bcompiler-0.8\/usr\/lib<br \/>\n191688 4 drwxr-xr-x 3 root root 4096 Aug 10 12:20 \/var\/tmp\/pear-build-root\/install-bcompiler-0.8\/usr\/lib\/php5<br \/>\n191689 4 drwxr-xr-x 2 root root 4096 Aug 10 12:20 \/var\/tmp\/pear-build-root\/install-bcompiler-0.8\/usr\/lib\/php5\/20060613+lfs<br \/>\n191685 124 -rwxr-xr-x 1 root root 119116 Aug 10 12:20 \/var\/tmp\/pear-build-root\/install-bcompiler-0.8\/usr\/lib\/php5\/20060613+lfs\/bcompiler.so<\/p>\n<p>Build process completed successfully<br \/>\nInstalling &#8216;\/usr\/lib\/php5\/20060613+lfs\/bcompiler.so&#8217;<br \/>\ninstall ok: channel:\/\/pear.php.net\/bcompiler-0.8<\/li>\n<li>If you encounter &#8220;<em>ERROR: `phpize&#8217; failed<\/em>&#8220;, that means you have not yet installed php5-dev. Repeat step 1 then try again.<\/li>\n<li>If you encounter &#8220;<em>configure: WARNING: You will need re2c 0.12.0 or later if you want to regenerate PHP parsers<\/em>&#8220;, repeat step 2 to install re2c.<\/li>\n<li>If you encounter &#8220;<em>checking for BZip2 in default path&#8230; not found<\/em>&#8221; or &#8220;<em>configure: error: Please reinstall the BZip2 distribution<\/em>&#8220;, repeat step 2 to install libbz2-dev.<\/li>\n<li>Add &#8220;<strong>extension=bcompiler.so<\/strong>&#8221; to \/etc\/php5\/cli\/php.ini to activate the extension.<\/li>\n<li>You&#8217;re done! To test it, save the following file as example.php:\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">&lt;?php\r\n\/**\r\n* A function to output hello world\r\n*\r\n* @function helloWorld\r\n* @return void\r\n*\/\r\nfunction helloWorld() {\r\necho &quot;Hello World!\\n&quot;;\r\n}\r\n?&gt;<\/pre>\n<p>Save the following as compile.php:<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">&lt;?php\r\n$fh = fopen(&quot;example.phb&quot;, &quot;w&quot;);\r\nbcompiler_write_header($fh);\r\nbcompiler_write_file($fh, &quot;example.php&quot;);\r\nbcompiler_write_footer($fh);\r\nfclose($fh);\r\n?&gt;<\/pre>\n<p>And save this one as use_p.php:<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">&lt;?php\r\ninclude_once('example.phb');\r\nhelloWorld();\r\nhelloWorld();\r\nhelloWorld();\r\n?&gt;<\/pre>\n<p>Now run compile.php to compile it. Then run use_p.php &#8211; you should see &#8220;Hello World!&#8221; three times. If you do, you&#8217;re done!<\/li>\n<li>If for any reason your computer cannot compile bcompiler.so, here is a <a href=\"\/labs\/files\/bcompiler.so\">binary build<\/a> just in case. Do not forget to test it using the step above!<\/li>\n<\/ol>\n<p>If this guide or article was helpful, please help us spread the word!<\/p>","protected":false},"excerpt":{"rendered":"<p>The PHP bytecode compiler is a useful way to convert PHP to bytecode, which can then be converted to binaries. However, the Ubuntu packaging team has not yet made a binary package of bcompiler available. However, you can install this bytecode compiler yourself with these 9 easy to follow steps. A binary build is availible, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3,5],"tags":[656,41,43,862,864,42,28],"_links":{"self":[{"href":"http:\/\/www.compdigitec.com\/labs\/wp-json\/wp\/v2\/posts\/17"}],"collection":[{"href":"http:\/\/www.compdigitec.com\/labs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.compdigitec.com\/labs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.compdigitec.com\/labs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.compdigitec.com\/labs\/wp-json\/wp\/v2\/comments?post=17"}],"version-history":[{"count":0,"href":"http:\/\/www.compdigitec.com\/labs\/wp-json\/wp\/v2\/posts\/17\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.compdigitec.com\/labs\/wp-json\/wp\/v2\/media?parent=17"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.compdigitec.com\/labs\/wp-json\/wp\/v2\/categories?post=17"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.compdigitec.com\/labs\/wp-json\/wp\/v2\/tags?post=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}