背景
前面把树莓派装上了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 <curl-dir>/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上会不会出问题,希望能够改进...
以上就是centos 7 for arm 安装一键lnmp失败的详细内容。