我手动编译Apache-MySQL-PHP,使用下面的配置选项构建自定义安装。当我启动apache时,它无法启动并在error_log中添加以下错误
* Apache 2
* Mysql 5.0
* PHP 5.1
* CentOS Linux 5.4
* GCC编译器
httpd:/opt/clamp/etc/httpd.conf第54行的语法错误:无法将/opt/clamp/modules/libphp5.so加载到服务器:/opt/clamp/modules/libphp5.so:unfined defined symbol :_estrndup
APACHE 。/配置 \ --prefix = / opt / clamp \ --sysconfdir = / opt / clamp / etc \ --enable-auth-dbm \ --enable-cern-meta \ --enable-auth-digest \ --enable-charset-lite \ - 启用放气 --enable-expires \ --enable-cache \ --enable-disk-cache \ --enable-file-cache \ --en-header \ - 启用信息 - 启用 - 魔法 - 魔法\ - 启用代理\ --enable-proxy-ajp \ - 启用代理平衡器 --enable-proxy-connect \ --enable-proxy-ftp \ --enable-proxy-http \ - 启用重写\ - 启用 - 所以 --enable-SSL
MYSQL 。/配置 \ --prefix = / opt / clamp \ --sysconfdir = / opt / clamp / etc \ --libexecdir = / opt / clamp / sbin \ --localstatedir = / opt / clamp / var \ --with-unix-socket-path = / opt / clamp / tmp / mysql.sock \ --enable线程安全
PHP 。/配置 \ --prefix = / opt / clamp \ --sysconfdir = / opt / clamp / etc \ --with-apxs2 = / opt / clamp / bin / apxs \ --with-config-file-path = / opt / clamp / etc / php.conf \ --with-mysql = / opt / clamp \ --with-mysqli = / opt / clamp / bin / mysql_config \ --enable-force-cgi-redirect \ --disable-cgi \ --with-zlib \ --with-gettext \ --with-gdbm \ --with-ldap \ --with-ldap-sasl \ - 支持拉链 --with-bz2 \ --with-gd \ --with-jpeg-dir = / usr \ --with-PNG-DIR = / USR
答案 0 :(得分:0)
如果您不想阅读所有错误日志,可以尝试:
char *
estrndup(const char *s, size_t len)
{
char *d = strndup(s, len);
//if (d == NULL)
// (*efunc)(1, "Cannot copy string");
return d;
}
答案 1 :(得分:0)
似乎我没有正确构建PHP的GD库,使用以下选项构建PHP(没有更多错误):
cd php-5.2.13 / 。/配置 \ --prefix = / opt / clamp \ --sysconfdir = / opt / clamp / etc \ --with-apxs2 = / opt / clamp / bin / apxs \ --with-config-file-path = / opt / clamp / etc / php.conf \ --disable-debug \ --with-pic \ --disable-rpath \ - 没有梨 --with-bz2 \ - 卷曲\ --with-freetype-dir = / usr \ --with-png-dir = / usr \ --enable-gd-native-ttf \ --without-gdbm \ --with-gettext \ --with-gmp \ --with-iconv \ --with-jpeg-dir = / usr \ --with-openssl \ --with-pspell \ --with-zlib \ --with-layout = GNU \ --enable-exif \ --enable-ftp \ - 启用魔法报价\ - 启用套接字 --enable-sysvsem --enable-sysvshm --enable-sysvmsg \ --enable-wddx \ - 与 - kerberos \ --enable-ucd-snmp-hack \ - 启用shmop \ - 启用日历 --without-sqlite \ --enable-force-cgi-redirect \ --enable-pcntl \ --with-imap --with-imap-ssl \ --enable-mbstring \ --enable-mbregex \ --with-ncurses \ --with-gd \ --enable-bcmath \ --with-xmlrpc \ --with-ldap --with-ldap-sasl \ --with-mysql = / opt / clamp \ --with-mysqli = / opt / clamp / bin / mysql_config \ - 启用dom \ --with-pgsql \ - 启用肥皂 --enable-xmlreader --enable-xmlwriter \ --enable-fastcgi的 使 make install
答案 2 :(得分:-1)
这意味着你没有正确地构建你的php,可能是因为你已经好几次,就像我做的那样,而且只是你最后一次完成。在这些构建时间之间,您已经安装了一些支持包,您在开始时忘记了这些包。因此,如果没有干净,你最终会得到一些不干净的东西。 Apache非常挑剔。所以最好的尝试是再次运行'make clean'并重建php以查看真正发生的事情。