最小化安装的centos7 是没有 gcc 的,而编译安装 nginx 又需要 gcc 。好巧不巧,我的服务器不能连外网,不能用方便的yum 安装。
常用命令
解压tar.gz:tar -zxf xxx.tar.gz 安装rpm包:rpm -ivh xxx.rpm 删除整个文件夹:rm xxx -f -R 查询是否已安装某rpm包:rpm -qa | grep xxx
rpm包安装的依赖问题
使用rpm包安装依赖时,很容易遇到依赖问题,有一些通用的解决方法记录一下
ps1. 优先在系统的安装包内的Packages 目录找依赖包,因为这里的rpm包的版本,和你系统需要的版本,是刚好一样的。尤其是安装 xxx-devel 这样的包的时候。
ps2. 如果系统镜像没有了,可以用以下命令查一下自己的系统版本,再去下一个镜像包,解压后就能找到了
# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
ps3.有时候会遇到 pkgconfig(libpcre) 这些奇怪的被依赖包,这其实是某个包内的东西,比如如果缺这个,就应该装 pcre-devel 。怎么知道的呢?去pkgs.org 直接搜pkgconfig(libpcre) ,出来的结果里看centos的结果,就是让你下pcre-devel 的rpm包,但是我们不用下,很难找到合适版本的,还是去系统镜像包里找。
以我电脑的版本为例:
到这
搜索 7.2,整页只有一个7.2,点击右边的“tree”按钮,进到这个页面
此时可以看一下网页路径,刚好就是我的系统版本的版本号:7.2.1511
进入 isos/ 目录,就能看到我这个版本的镜像了,建议下带有 “Everything”字样的,因为里面的东西很全。
我用这个方法,成功装上了php+nginx环境中除 mcrypt 外的所有依赖
配置网卡
最小化安装的centos7,如果需要连内网,要先配置网卡。 需要准备的资料有:本机局域网IP、网关、子网掩码(一般是IP后加上 /24,或者是 255.255.255.0)、dns地址(似乎公网的dns都能用) 参考
安装gcc
有两个方法,一个是编译安装,一个是用rpm包安装。编译安装太麻烦,搞不定,我放弃了。
rpm安装方法:
找到安装centos时的镜像包,没有了的话再去官网下一个,官网有3个镜像包下载,记得下载完整的那个包。
-
解压镜像包,进入 Packages 目录,拿到下面这些rpm包
mpfr-3.1.1-4.el7.x86_64.rpm
libmpc-1.0.1-3.el7.x86_64.rpm
kernel-headers-3.10.0-123.el7.x86_64.rpm
glibc-headers-2.17-55.el7.x86_64.rpm
glibc-devel-2.17-55.el7.x86_64.rpm
cpp-4.8.2-16.el7.x86_64.rpm
gcc-4.8.2-16.el7.x86_64.rpm
把上面的包传到 centos7 服务器
进入存放这些包的目录
执行 rpm -Uvh *.rpm --nodeps --force 全部安装,很多教程都叫按顺序一个个安装,但是很容易出现依赖问题,所以就执行这个,忽略错误,全部安装。这样做并不是解决依赖问题,而是忽略依赖问题,虽说忽略似乎没有解决问题,但是实际证明,这是可以成功安装gcc 的。(尤其是当你一个个安装的时候发现要安装A必须先安装B,但是安装B前,又必须先安装A,黑人问号)
装完之后执行 gcc -v 看看版本号,如果有,就表示安装成功了,可以继续了。
如果没有,就把Packages 目录里的所有 glibc 有关的包都传到centos 服务器,放在同一文件夹,再从第四步开始执行
安装 perl 5
继上一步之后,我就开始安装nginx了,但是 make && make install 执行到一半,提示
cd /root/tools/openssl-1.1.0f
&& if [ -f Makefile ]; then make clean; fi
&& ./config --prefix=/root/tools/openssl-1.1.0f/.openssl no-shared
&& make
&& make install_sw LIBDIR=lib
Operating system: x86_64-whatever-linux2
You need Perl 5.
make[1]: *** [/root/tools/openssl-1.1.0f/.openssl/include/openssl/ssl.h] Error 1
make[1]: Leaving directory `/root/tools/nginx-1.12.2'
make: *** [build] Error 2
说我需要 perl 5
于是上官网下了个 perl5 的源码包,然后参考这里安装
安装nginx
推荐3个扩展,应该也是很常用的:
pcre :不要用pcre2,所以最新版应该是8.38不会再升了
zlib :用最新版的吧
openssl :也是用最新版
以上3个都去官网下 .tar.gz 源码的
把以上3个及nginx源码传到服务器的一个目录,这里是 /root/tools/
分别都解压了,然后使用以下配置nginx
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-cc-opt=-O3 --with-cpu-opt=opteron --with-http_gzip_static_module --with-pcre=/root/tools/pcre-8.38 --with-zlib=/root/tools/zlib-1.2.11 --with-openssl=/root/tools/openssl-1.1.0f
执行完后没有提示报错,就可以进行下一步了。
make && make install
安装 mcrypt
虽说这个已经被最新版PHP抛弃了,但是说不定还有用,所以我也装了 基本上按照这篇文章可以安装 但是这篇文章有个错误的地方,就是
ln -s /usr/local/bin/libmcrypt_config /usr/bin/libmcrypt_config #添加软连接
这一行错了,libmcrypt_config 应该改为libmcrypt-config ,而且原位置不一定是这个,需要使用find搜索一下原位置,所以我改为以下这行,最后成功安装
ln -s /usr/local/libmcrypt/bin/libmcrypt-config /usr/bin/libmcrypt-config
(编辑:岳阳站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|