![从 12.04 下的源代码编译 php 5.2,apxs2(通过 libtools)忽略了 ./configure 使用的 -prefix](https://linux22.com/image/832062/%E4%BB%8E%2012.04%20%E4%B8%8B%E7%9A%84%E6%BA%90%E4%BB%A3%E7%A0%81%E7%BC%96%E8%AF%91%20php%205.2%EF%BC%8Capxs2%EF%BC%88%E9%80%9A%E8%BF%87%20libtools%EF%BC%89%E5%BF%BD%E7%95%A5%E4%BA%86%20.%2Fconfigure%20%E4%BD%BF%E7%94%A8%E7%9A%84%20-prefix.png)
在源目录中:
./configure --prefix=/home/ashkan/Development/php/bin/php-5.2 --with-mysql --with-apxs2=/usr/bin/apxs2
make
工作正常,但make install
显示:
Installing PHP SAPI module: apache2handler
/usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/share/apr-1.0/build/libtool' libphp5.la /usr/lib/apache2/modules
/usr/share/apr-1.0/build/libtool --mode=install cp libphp5.la /usr/lib/apache2/modules/
libtool: install: cp .libs/libphp5.so /usr/lib/apache2/modules/libphp5.so
cp: cannot create regular file `/usr/lib/apache2/modules/libphp5.so': Permission denied
apxs:Error: Command failed with rc=65536
更新:读起来man apxs2
似乎 apxs 编译并将模块安装到apache module directory
。这个模块目录似乎已经修复了!
答案1
基于这篇博客文章,如果您指定INSTALL_ROOT
PHP,apache 模块将尝试安装在该目录中。
INSTALL_ROOT=/the/dir/path/to/install/in make install
您可能想要尝试将此选项添加到./configure
php-src 中:
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
因为我相信这些正在 Makefile 中使用
答案2
无权复制二进制文件至/usr
。请执行sudo make install
。