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, 
adoado0
  • 101
  • 7
  • Why do you want to compile php? Isn't it enough to install it from `yum`? – Khaled Feb 09 '17 at 09: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. – adoado0 Feb 09 '17 at 10:36

1 Answers1

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.

adoado0
  • 101
  • 7