我最近遇到了一个情况,我在从源代码构建 PHP 7.1.13。配置和 make 运行良好,但是当我运行 make install 时,它挂起了。事实证明,如果您使用 Apache(apxs)构建 PHP,make 文件会使用 -a 标志调用 apxs,该标志告诉它修改 httpd.conf 文件。如果由于任何原因,该文件不可写,那么它将失败,您会遇到挂起。
我 Makefile 中的第 108 行如下所示
INSTALL_IT = $(mkinstalldirs) '$(INSTALL_ROOT)/usr/lib64/httpd/modules' && $(mkinstalldirs) '$(INSTALL_ROOT)/etc/httpd/conf' && /usr/sbin/apxs -S LIBEXECDIR='$(INSTALL_ROOT)/usr/lib64/httpd/modules' -S SYSCONFDIR='$(INSTALL_ROOT)/etc/httpd/conf' -i -a -n php7 libphp7.la
我不得不删除 -a 标志,然后它就正常了。