【转载】CentOS 7 lnmp一键安装包php安装失败的解决办法

转自:https://www.php.cn/linux-369386.html

背景

前面把树莓派装上了CentOS 7,趁着国庆放假回来赶紧把服务端环境搭起来,为了方便就准备用一键lnmp快速部署一个,结果死活安装不成功...

报错

按照以往的经验进行安装,在我的小树莓派上安装实在是慢,毕竟需要编译,CPU不给力只能慢慢的等待编译完成,吃个午饭回来发现似乎已经完成了,然而却失败了,报错信息如下

============================== Check install ==============================

Checking ...

Nginx: OK

MariaDB: OK

Error: PHP install failed.

Sorry, Failed to install LNMP!

Please visit  feedback errors and logs.

You can download /root/lnmp-install.log from your server,and upload lnmp-install.log to LNMP Forum.

PHP安装失败了,报错不要紧,再来一次看下啥问题,使用./upgrade.sh脚本可以重新安装,然而继续报错

+-------------------------------------------+

|    Manager for LNMP, Written by Licess    |

+-------------------------------------------+

|                            |

+-------------------------------------------+

Starting LNMP...

Starting nginx...  done

Starting MySQL.... SUCCESS!

/bin/lnmp: line 27: /etc/init.d/php-fpm: No such file or directory

======== upgrade php failed ======

upgrade php log: /root/upgrade_lnmp_php.log

You upload upgrade_lnmp_php.log to LNMP Forum for help.

发现

仔细查看安装日志,发现了关键信息

configure: error: Please reinstall the libcurl distribution -

easy.h should be in /include/curl/

make: *** No targets specified and no makefile found.  Stop.

make: *** No rule to make target `install'.  Stop.

这里有个error,说是“请安装libcurl”,奇怪了,我在VPS上安装的时候咋没碰到这个问题呢,难道是CentOS for 树莓派版本阉割了这个玩意?

解决

按照错误提示安装,尝试使用yum直接装,然而包管理器里面并没有发现这个东西,找到官网上直接下载编译安装

CentOS 编译SVNdocx

wget https://curl.haxx.se/download/curl-7.50.3.tar.gz

tar zvxf curl-7.50.3.tar.gz

cd curl-7.50.3

./configure --enable-shared

make

make install

经过漫长的编译终于编译安装成功了

继续尝试安装PHP,这回算是正常进行编译PHP了

Generating files

configure: creating ./config.status

creating main/internal_functions.c

creating main/internal_functions_cli.c

+--------------------------------------------------------------------+

| License:                                                           |

| This software is subject to the PHP License, available in this     |

| distribution in the file LICENSE.  By continuing this installation |

| process, you are bound by the terms of this license agreement.     |

| If you do not agree with the terms of this license, you must abort |

| the installation process at this point.                            |

+--------------------------------------------------------------------+

Thank you for using PHP.

config.status: creating php5.spec

config.status: creating main/build-defs.h

config.status: creating scripts/phpize

config.status: creating scripts/man1/phpize.1

config.status: creating scripts/php-config

config.status: creating scripts/man1/php-config.1

config.status: creating sapi/cli/php.1

config.status: creating sapi/fpm/php-fpm.conf

config.status: creating sapi/fpm/init.d.php-fpm

config.status: creating sapi/fpm/php-fpm.service

config.status: creating sapi/fpm/php-fpm.8

config.status: creating sapi/fpm/status.html

config.status: creating sapi/cgi/php-cgi.1

config.status: creating ext/phar/phar.1

config.status: creating ext/phar/phar.phar.1

config.status: creating main/php_config.h

config.status: executing default commands

经过漫长的编译,终于.....

编译完成了,但是...

+-------------------------------------------+

|    Manager for LNMP, Written by Licess    |

+-------------------------------------------+

|                            |

+-------------------------------------------+

Starting LNMP...

Starting nginx...  done

Starting MySQL...... SUCCESS!

Starting php-fpm Failed loading /usr/local/zend/ZendGuardLoader.so:  /usr/local/zend/ZendGuardLoader.so: cannot open shared object file: No such file or directory

done

======== upgrade php completed ======

似乎还是有些问题,不过问题不大,看起来像是某个扩展丢了,到这个目录查看下到底有没有这个东西

[root@rpi2 ~]# ls /usr/local/zend/

ZendGuardLoader.so

发现是有这个东西,真是神奇,通过搜索发现lnmp论坛上还真有人遇到过这个问题,帖子地址 ,作者说是系统dns的问题,应该是下载回来的东西损坏了,先不管,可以直接在php.ini里面注释掉这个,也或者直接去下载完整的重新放进去就可以了。

后记

重新从zend官方下载了32位的so文件放进去发现依然不行,尝试重新安装PHP的默认版本5.4.45,现在还在编译...

更新

经过一番波折终于搞定了,编译完PHP之后发现还是失败了,错误信息如下

+-------------------------------------------+

|    Manager for LNMP, Written by Licess    |

+-------------------------------------------+

|                            |

+-------------------------------------------+

Starting LNMP...

Starting nginx...  done

Starting MySQL..... SUCCESS!

Starting php-fpm /etc/init.d/php-fpm:行57: /usr/local/php/sbin/php-fpm: 没有那个文件或目录

failed

======== upgrade php failed ======

upgrade php log: /root/upgrade_lnmp_php.log

You upload upgrade_lnmp_php.log to LNMP Forum for help.

显示的是找不到php-fpm这个文件,于是我想查找下这个文件在哪

$ whereis php-fpm

php-fpm: /usr/bin/php-fpm /usr/sbin/php-fpm /etc/php-fpm.conf /etc/php-fpm.d /usr/share/man/man8/php-fpm.8.gz

通过查找发现确实不在那个目录下面,这个简单,直接从/usr/sbin下面把php-fpm复制过去就好了

$ cd /usr/local/php/

$ ls

etc  php-fpm

$ sudo mkdir sbin

$ sudo mv php-fpm sbin/

$ lnmp restart

Error: You must be root to run this script!

[kbdancerrpi@rpi2 php]$ sudo lnmp restart

+-------------------------------------------+

|    Manager for LNMP, Written by Licess    |

+-------------------------------------------+

|                            |

+-------------------------------------------+

Stoping LNMP...

Stoping nginx...  done

Shutting down MySQL. SUCCESS!

Gracefully shutting down php-fpm warning, no pid file found - php-fpm is not running ?

Starting LNMP...

Starting nginx...  done

Starting MySQL..... SUCCESS!

Starting php-fpm [01-Jan-1970 13:18:55] ERROR: failed to open error_log (/usr/local/php/var/log/php-fpm.log): No such file or directory (2)

[01-Jan-1970 13:18:55] ERROR: failed to post process the configuration

[01-Jan-1970 13:18:55] ERROR: FPM initialization failed

failed

没错,继续报错,根据提示来

$ cd /usr/local/php/

$ sudo mkdir var

$ cd var/

$ sudo mkdir log

$ cd log/

$ ls

$ sudo touch php-fpm.log

$ sudo lnmp restart

+-------------------------------------------+

|    Manager for LNMP, Written by Licess    |

+-------------------------------------------+

|                            |

+-------------------------------------------+

Stoping LNMP...

Stoping nginx...  done

Shutting down MySQL. SUCCESS!

Gracefully shutting down php-fpm warning, no pid file found - php-fpm is not running ?

Starting LNMP...

Starting nginx...  done

Starting MySQL..... SUCCESS!

Starting php-fpm [01-Jan-1970 13:20:18] ERROR: Unable to create the PID file (/usr/local/php/var/run/php-fpm.pid).: No such file or directory (2)

[01-Jan-1970 13:20:18] ERROR: FPM initialization failed

failed

依然报错,继续

$ cd ..

$ ls

log

$ sudo mkdir run

$ sudo lnmp restart

+-------------------------------------------+

|    Manager for LNMP, Written by Licess    |

+-------------------------------------------+

|                            |

+-------------------------------------------+

Stoping LNMP...

Stoping nginx...  done

Shutting down MySQL. SUCCESS!

Gracefully shutting down php-fpm warning, no pid file found - php-fpm is not running ?

Starting LNMP...

Starting nginx...  done

Starting MySQL..... SUCCESS!

Starting php-fpm  done

OK,终于搞定了,真是曲折啊,估计lnmp作者没有测试过lnmp跑在ARM上会不会出问题,希望能够改进...

点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注