# phpMyAdmin install pecl-APC error



## rjka (Jul 19, 2013)

FreeBSD 9.1
Apache 2.4
MySQL 5.5
PHP 5.5

and

trying to install phpMyAdmin I get this error:


```
/usr/ports/www/pecl-APC/work/APC-3.1.13/apc_compile.c:304: warning: 'hot' attrib                                      ute directive ignored
/usr/ports/www/pecl-APC/work/APC-3.1.13/apc_compile.c: In function 'my_copy_clas                                      s_entry':
/usr/ports/www/pecl-APC/work/APC-3.1.13/apc_compile.c:755: warning: assignment f                                      rom incompatible pointer type
/usr/ports/www/pecl-APC/work/APC-3.1.13/apc_compile.c: At top level:
/usr/ports/www/pecl-APC/work/APC-3.1.13/apc_compile.c:952: warning: 'hot' attrib                                      ute directive ignored
/usr/ports/www/pecl-APC/work/APC-3.1.13/apc_compile.c: In function 'apc_copy_cla                                      ss_entry_for_execution':
/usr/ports/www/pecl-APC/work/APC-3.1.13/apc_compile.c:1956: warning: assignment                                       from incompatible pointer type
/usr/ports/www/pecl-APC/work/APC-3.1.13/apc_compile.c: In function 'apc_copy_tra                                      it_alias':
/usr/ports/www/pecl-APC/work/APC-3.1.13/apc_compile.c:2379: error: 'zend_trait_a                                      lias' has no member named 'function'
/usr/ports/www/pecl-APC/work/APC-3.1.13/apc_compile.c:2380: error: 'zend_trait_a                                      lias' has no member named 'function'
/usr/ports/www/pecl-APC/work/APC-3.1.13/apc_compile.c:2380: error: 'zend_trait_a                                      lias' has no member named 'function'
/usr/ports/www/pecl-APC/work/APC-3.1.13/apc_compile.c: In function 'apc_copy_tra                                      it_precedence':
/usr/ports/www/pecl-APC/work/APC-3.1.13/apc_compile.c:2416: error: 'zend_trait_p                                      recedence' has no member named 'function'
/usr/ports/www/pecl-APC/work/APC-3.1.13/apc_compile.c:2417: error: 'zend_trait_p                                      recedence' has no member named 'function'
/usr/ports/www/pecl-APC/work/APC-3.1.13/apc_compile.c:2417: error: 'zend_trait_p                                      recedence' has no member named 'function'
*** [apc_compile.lo] Error code 1
1 error
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** [do-build] Error code 1

Stop in /usr/ports/www/pecl-APC.
*** [install] Error code 1

Stop in /usr/ports/www/pecl-APC.
*** [run-depends] Error code 1

Stop in /usr/ports/databases/phpmyadmin.
*** [install] Error code 1

Stop in /usr/ports/databases/phpmyadmin.
```

Can anybody help?


----------



## ShelLuser (Jul 19, 2013)

There are several points where this could have gone wrong.

The most obvious cause for problems like these is an inconsistency in your ports collection. For example, when looking at www/pecl-APC you'll notice that it depends on other ports such as Perl, PHP and apr1.

And two of those have been updated not too long ago and required specific action as stipulated in /usr/ports/UPDATING, which is where I'd start looking.

Second it's also important to be sure that you're using an updated ports collection.

So summing up:

Have you updated Perl recently using the commands as they were explained in /usr/ports/UPDATING?

Also important: Is there anything specific in your /etc/make.conf file? That could be a factor too.

I just tried building www/pecl-APC myself and experienced no issues. So it's most likely caused by your environment.


----------



## rjka (Jul 19, 2013)

I temporarily switch off APC in config during installation of phpMyAdmin and it is ok now. Ports are updated. 

/etc/make.conf - I didn't touch it.

I will try to find the answer in /usr/ports/UPDATING.

Thanks.


----------



## cpm@ (Jul 19, 2013)

```
<snip>
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** [do-build] Error code 1
<snip>
```
This error message is due to some changes that were introduced in bsd.port.mk file. See concretely r323100.

http://lists.freebsd.org/pipermail/freebsd-ports/2013-June/084622.html.

Quoted from 6.3.1. Building Ports in Parallel:


> The FreeBSD ports framework supports parallel building using multiple make sub-processes, which allows SMP systems to utilize all of their available CPU power, allowing port builds to be faster and more effective.
> 
> This is achieved by passing -jX flag to make(1) running on vendor code. Unfortunately, not all ports handle parallel building well. Therefore it is required to explicitly enable this feature by adding MAKE_JOBS_SAFE=yes somewhere below the dependency declaration section of the Makefile.
> 
> Another option for controlling this feature from the maintainer's point of view is the MAKE_JOBS_UNSAFE=yes variable. It is used when a port is known to be broken with -jX and a user forces the use of multi processor compilations for all ports in /etc/make.conf with the FORCE_MAKE_JOBS=yes variable.


----------



## xtaz (Jul 20, 2013)

The www/pecl-APC port doesn't compile with PHP 5.5. I found this out when I tried to upgrade. It turns out that it's not developed any longer anyway and it's now recommended to replace it with www/pecl-zendopcache which is included in PHP 5.5 and actively developed. The ini settings are different so have a read of http://uk1.php.net/manual/en/book.opcache.php and if you want a web GUI for it https://github.com/rlerdorf/opcache-status works well for me.


----------



## windependence (Aug 3, 2013)

I'm still lost on how to fix this. can someone take me through the "n00b" version, even though I'm not new to FreeBSD or building software for that matter. 

I'm trying to build phpmyadmin, and I get a stop at the pecl compile just like the OP. What specifically can I do to get it to build. I tried the directive in the Makefile with no success.

Thanks,

-Tim


----------



## ShelLuser (Aug 3, 2013)

windependence said:
			
		

> I'm trying to build phpmyadmin, and I get a stop at the pecl compile just like the OP. What specifically can I do to get it to build. I tried the directive in the Makefile with no success.


For starters read and follow the things being said in the thread.

The possibility which I explained isn't very specific but something every FreeBSD user should know and keep in mind. The other option heavily depends on which PHP version you use, so it would be helpful if you could mention that as well.


----------



## xtaz (Aug 4, 2013)

If you want a quick fix then go into /usr/ports/databases/phpmyadmin and type `make config`. Deselect the PHP APC option at the top and click OK. Then type `make deinstall install clean`. As I mentioned, this port won't compile with PHP 5.5 so you either need to not use APC, or downgrade PHP back to 5.4.


----------



## windependence (Aug 6, 2013)

That is the problem, I'm using PHP 5.5 and I didn't need APC anyway  so rather than going back to 5.4 I just reconfigured the port. Thanks to all for the tip. PHP 5.3 is soon to be end of life anyway so I wanted to stay with 5.5.

-Tim


----------

