0

I've encountered problems compiling PHP from source at one 'a bit custom' Centos 6/cPanel server.In general it worked in the past, right now it does not. There were many different PHPs compiled at this box and without greater problems. Right now, any version of PHP is stuck at:

'Generating phar.phar'. 

Some output:

Prerequisite `/root/php-7.0.13/ext/phar/phar/phar.inc' is older than target `ext/phar/phar/phar.inc'. No need to remake target `ext/phar/phar/phar.inc'. Pruning file `/root/php-7.0.13/ext/phar/phar/clicommand.inc'. Pruning file `/root/php-7.0.13/ext/phar/phar/directorygraphiterator.inc'. Pruning file `/root/php-7.0.13/ext/phar/phar/directorytreeiterator.inc'. Pruning file `/root/php-7.0.13/ext/phar/phar/invertedregexiterator.inc'. Pruning file `/root/php-7.0.13/ext/phar/phar/pharcommand.inc'. Pruning file `/root/php-7.0.13/ext/phar/phar/phar.inc'. Pruning file `/root/php-7.0.13/ext/phar/phar/phar.php'. Pruning file `sapi/cli/php'. Finished prerequisites of target file ext/phar/phar.phar'. Must remake target ext/phar/phar.phar'. Putting child 0x022ef310 (ext/phar/phar.phar) PID 22348 on the chain. Live child 0x022ef310 (ext/phar/phar.phar) PID 22348 Generating phar.phar Reaping winning child 0x022ef310 PID 22348 Live child 0x022ef310 (ext/phar/phar.phar) PID 22349 Reaping winning child 0x022ef310 PID 22349 Live child 0x022ef310 (ext/phar/phar.phar) PID 22350 Reaping winning child 0x022ef310 PID 22350 Live child 0x022ef310 (ext/phar/phar.phar) PID 22351 

I've tried make'ing and only 1 thread, and it did not help.

After 'clean' make:

Considering target file `/root/php-7.0.13/ext/phar/phar/phar.inc'. File `/root/php-7.0.13/ext/phar/phar/phar.inc' was considered already. Considering target file `/root/php-7.0.13/ext/phar/phar/phar.php'. File `/root/php-7.0.13/ext/phar/phar/phar.php' was considered already. Considering target file `sapi/cli/php'. File `sapi/cli/php' was considered already. Finished prerequisites of target file `ext/phar/phar.phar'. Must remake target `ext/phar/phar.phar'. Need a job token; we don't have children Putting child 0x00d53610 (ext/phar/phar.phar) PID 17444 on the chain. Commands of `ext/phar/phar.phar' are being run. Finished prerequisites of target file `pharcmd'. The prerequisites of `pharcmd' are being made. Finished prerequisites of target file `all'. The prerequisites of `all' are being made. Live child 0x00d53610 (ext/phar/phar.phar) PID 17444 Generating phar.phar Reaping winning child 0x00d53610 PID 17444 Live child 0x00d53610 (ext/phar/phar.phar) PID 17445 Reaping winning child 0x00d53610 PID 17445 Live child 0x00d53610 (ext/phar/phar.phar) PID 17446 Reaping winning child 0x00d53610 PID 17446 Live child 0x00d53610 (ext/phar/phar.phar) PID 17447 

I've tried to use make-4.2 instead of default make-3.81, but it changes nothing.

Some strace output:

stat("/root/php-7.0.13/ext/phar/phar/phar.php", {st_mode=S_IFREG|0755,,st_size=992, ...}) = 0 stat("ext/phar/phar.phar", 0x7ffc5f1a4930) = -1 ENOENT (No such file or directory) stat("ext/phar/phar/phar.inc", {st_mode=S_IFREG|0644, st_size=790, ...}) = 0 wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 16875 rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT TERM XCPU XFSZ], NULL, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 stat("/root/php-7.0.13/ext/json/json_scanner.c", {st_mode=S_IFREG|0644, st_size=29634, ...}) = 0 rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT TERM XCPU XFSZ], NULL, 8) = 0 fcntl(3, F_SETFD, FD_CLOEXEC) = 0 fcntl(4, F_SETFD, FD_CLOEXEC) = 0 vfork() = 16877 fcntl(3, F_GETFD) = 0x1 (flags FD_CLOEXEC) fcntl(3, F_SETFD, 0) = 0 fcntl(4, F_GETFD) = 0x1 (flags FD_CLOEXEC) fcntl(4, F_SETFD, 0) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 wait4(-1, Generating phar.phar [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 16877 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=16877, si_status=0, si_utime=0, si_stime=0} --- rt_sigreturn() = 16877 rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT TERM XCPU XFSZ], NULL, 8) = 0 fcntl(3, F_SETFD, FD_CLOEXEC) = 0 fcntl(4, F_SETFD, FD_CLOEXEC) = 0 vfork() = 16878 fcntl(3, F_GETFD) = 0x1 (flags FD_CLOEXEC) fcntl(3, F_SETFD, 0) = 0 fcntl(4, F_GETFD) = 0x1 (flags FD_CLOEXEC) fcntl(4, F_SETFD, 0) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 16878 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=16878,si_status=0, si_utime=0, si_stime=0} --- rt_sigreturn() = 16878 rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT TERM XCPU XFSZ], NULL, 8) = 0 fcntl(3, F_SETFD, FD_CLOEXEC) = 0 fcntl(4, F_SETFD, FD_CLOEXEC) = 0 vfork() = 16879 fcntl(3, F_GETFD) = 0x1 (flags FD_CLOEXEC) fcntl(3, F_SETFD, 0) = 0 fcntl(4, F_GETFD) = 0x1 (flags FD_CLOEXEC) fcntl(4, F_SETFD, 0) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 16879 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=16879, si_status=0, si_utime=0, si_stime=0} --- rt_sigreturn() = 16879 rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT TERM XCPU XFSZ], NULL, 8) = 0 fcntl(3, F_SETFD, FD_CLOEXEC) = 0 fcntl(4, F_SETFD, FD_CLOEXEC) = 0 vfork() = 16880 fcntl(3, F_GETFD) = 0x1 (flags FD_CLOEXEC) fcntl(3, F_SETFD, 0) = 0 fcntl(4, F_GETFD) = 0x1 (flags FD_CLOEXEC) fcntl(4, F_SETFD, 0) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 wait4(-1, 
2
  • Why do you want to compile php? Isn't it enough to install it from yum? Commented Feb 9, 2017 at 9:50
  • It can't be installed with yum, I need it as separate version for dev purposes. At this box it used to work, it stopped somehow, and I cannot trace the reason of such behavior. It is important for me to find solution, not workaround. Commented Feb 9, 2017 at 10:36

1 Answer 1

0

Solution found, right now it seems simple, shame I did not found it earlier. After strace'ing child processes it showed that it was using phar composer of another broken PHP build - and this child process was hung due to library dependency errors, so that's why process in question was waiting. After pointing to correct binary, it worked.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.