参考文章:ubuntu安装LNMP0.6和“502错误及/usr/local/php/sbin/php-fpm: 没有那个文件或目录”解决方案
windows下有XAMPP,Apache+MySQL+PHP+Perl,一键安装,配置成web服务器。
Linux也不甘示弱,放出了LNMP,Linux+Nginx+MySQL+PHP,一键安装,打造Linux的web服务器。
据说以后还会有LAMP(Linux+Apache+MySQL+PHP)出现。
进入主题:
一、下载LNMP安装包(推荐下载完整版)
LNMP 0.6
下载版:http://soft.vpser.net/lnmp/lnmp0.6.tar.gz(23.31KB)
完整版:http://soft.vpser.net/lnmp/lnmp0.6-full.tar.gz(50.56MB)
二、安装LNMP
安装简单,请参考http://www.lnmp.org/install.html
不同的Linux版本安装方法不同,请仔细查看。如果你还没安装,那最好直接看到下面的解决方法。
三、出现502 Bad Gateway错误。
安装完之后,打开浏览器,输入127.0.0.1,出现如下图所示的界面。
不过,不管点探针还是phpinfo还是phpMyAdmin都出现可恶的502 Bad GateWay,没有出现预料中的画面。
检查发现PHP根本就没有安装进去。。无语了。
原因分析:
究其原因,就是“Autoconf version 2.58 or higher is required for this script ”要求autoconf版本高于2.58而一键安装包里把autoconf版本换成了2.13
解决方法:
第一种:
卸载LNMP,在终端中进入lnmp0.6-full的目录后,运行./unistall.sh。
删掉这个解压包,重新解压一次。(什么!你把下载来的压缩包删了?!!再下一次吧你。)
在终端中,进入lnmp0.6-full目录
sudo chmod 777 ubuntu.sh (更改ubuntu.sh的权限)
gedit ubuntu.sh (用gedit编辑ubuntu.sh文件,没有gedit的话,用vi或者vim)
在278和279行,有如下两句
patch -p 1 -i ../suhosin-patch-5.2.14-0.9.7.patch
cd php-5.2.14/
调换一下顺序,改为:
cd php-5.2.14/
patch -p 1 -i ../suhosin-patch-5.2.14-0.9.7.patch
再找到280行,有
./buildconf --force
更改为
PHP_AUTOCONF=autoconf213 PHP_AUTOHEADER=autoheader213 ./buildconf --force
然后重新安装LNMP。此方法完美进行,至今未发现什么问题。
第二种:
该方法不需要重新安装,但是过程比较麻烦。而且Laycher试了一次还是没有成功,最后使用了第一种方法。
1.卸载automake。apt-get remove automake
这样并不能卸载2.13,需要sudo rm /usr/local/bin/autoconf 才行。可能是因为2.13编译问题。
2.下载autoconf2.61。点此下载。
不要尝试更高版本,经测试,更高版本容易出错。
3.在终端解压压缩包,并安装。
tar xzf autoconf-2.61.tar.gz
cd autoconf-2.61
./configure --prefix=/usr
make
make install
4.然后重新编译php-fpm(重新解压一次lnmp0.6压缩包,因为下面两个gz文件被删除了。)
在终端中进入lnmp的目录并解压php,然后按照下面命令编译安装
tar zxvf php-5.2.14.tar.gz
gzip -d ./suhosin-patch-5.2.14-0.9.7.patch.gz
gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1
cd php-5.2.14/
patch -p 1 -i ../suhosin-patch-5.2.14-0.9.7.patch (此处ubuntu.sh脚本中和上句弄反,这也可能是错误原因之一)
./buildconf --force
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-discard-path --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --with-mime-magic --enable-suhosin
make
make install
mkdir -p /usr/local/php/etc/
cp php.ini-dist /usr/local/php/etc/php.ini
strip /usr/local/php/bin/php-cgi
cd ../
ln -s /usr/local/php/bin/php /usr/bin/php
第三种:
下载autoconf2.61.复制到lnmp解压包里,删除原来的autoconf2.13.修改ubuntu.sh 196 197行,替换
2.13为2.61.修改278 279行互换,重新编译安装。
当然,也可以直接把文件名改成2.13,那么就不用改ubuntu.sh文件了。
成功安装之后呢,再点上图中的任何链接,就不会出现502错误了。点探针会出现如图所示。
>> 若为原创,转载请注明: 转载自Laycher's Blog
>> 本文链接地址: Ubuntu下安装LNMP0.6出现502 Bad Gateway错误
>> 订阅本站: http://feed.feedsky.com/laycher
来晚了 给LZ顶一个
作为一个linux菜鸟,希望能够看到关于第一种解决办法的原理解释…
其实我也不懂的。应该是autoconf 的版本和其他软件有冲突。
PHP官方网站中有提到版本搭配问题。http://www.php.net/svn.php#buildconf_fail
The following combinations are known to work:
autoconf 2.13, automake 1.4 and libtool 1.4.3
autoconf 2.13, automake 1.5 and libtool 1.4.3
autoconf 2.63, automake 1.11 and libtool 2.2.6 (with many warnings)
If you have multiple versions of autoconf installed on your computer, as is common for many UNIXes, you can set the PHP_AUTOCONF and PHP_AUTOHEADER variables when running buildconf to indicate which versions it should use e.g.:
PHP_AUTOCONF=autoconf213 PHP_AUTOHEADER=autoheader213 ./buildconf