!!当Apache 使用的php出问题时,第一步是看phpinfo。
!!!最重要的事情:重新编译php前一定要记录下phpinfo中的configure选项。
whereis PHP 查看当前使用的php的路径
php -v 查看php版本信息
php -m 查看php启动的模块
php -i | grep php.ini 查看php.ini的路径
php -i | grep extension_dir 查看php extension的安装路径
下载php压缩包并解压。
每次编译php之前,要将old libphp5.so删掉或另存起来,否则新编译出来的libphp5.so不生效(也可能是因为没换路径没有生成)怎么看生不生效?restart Apache,看phpinfo有没有变化。
libphp5.so是Apache要用的php链接库,在httpd.conf中配置。
./configure \
--with-mysql \
--with-mysqli \
--with-pdo-mysql \
--enable-mbstring \
--enable-zip \
--with-zlib \
--with-curl \
--with-openssl \
--with-apxs2 \
--enable-maintainer-zts \
sudo make clean
sudo make -j8 (编译失败则执行make clean)
sudo make install
sudo apachectl restart
说明:
--with-apxs2=FILE Build shared Apache 2.0 Handler module. FILE is the optional
--enable-maintainer-zts Enable thread safety - for code maintainers only!!
--enable-mbstring 没有这个配置,我们就不能用mb_substitute_character()
--with-mysql 没有这个配置,我们就不能用mysql_connect()
--with-openssl 可能遇到错误 configure: error: Cannot find OpenSSL's <evp.h>
需要安装openssl,另一篇blog有说明Install OpenSSL
安装后还可能报错,configure: error: libcrypto not found!,解决方法