centos 4.4配置使用

咱们公司的产品使用了erlang开发,能够在大多数的Linux发行版安装使用,我我的就在Ubuntu、Debian、SUSE等安装过。但客户使用的Linux发行版各类各样,网上环境也老是很诡异,指望一上线就可使用那是妄想。
这2天客户就整了个好久没用的服务器给咱们安装,此次状况真的是很不同,我以为有必要记录一下。html

 

1. 系统是centos 4.4,已经中止了技术支持。node

这个系统版本过低,致使了后面的一系列问题。mysql

多是由于当时的管理员不熟悉Linux,设置的分区更离谱,是我见过的最奇葩的分区方案。linux

整个/分区就给了1G的空间,注意,这仍是包括了/home目录在内的分区。反正我在使用过程当中,常常报错。sql

这样的分区方案极可能是由于考虑不足,而后后来发现分区不合理,而后随便配置了。其实这样的状况,应该使用lvm2,贴一下个人lvm方案。shell

这个是个人虚拟机,使用过程当中发现了硬盘太小,而后加了后面的sda3,使用lvm2归并一块儿,挂载/分区。centos

 

2. 添加源缓存

CentOS 4.x早已没有技术支持了,并且不少软件源不可用。查看了下面2个链接,配置了软件源。服务器

centos 4.x不能yum问题解决网络

CentOS 4 终止生命周期(EOL) 通告

cd /etc/yum.repos.d mv CentOS-Base.repo CentOS-Base.repo.bak wget http://vault.centos.org/4.9/CentOS-Base.repo

而后更新yum缓存

yum clean all && yum clean metadata && yum clean dbcache && yum makecache

接着下载安装erlang源码编译的必要软件包,参考了

参考 CentOS(Fedora)下源代码编译安装 erlang 环境的 shell 脚本

yum install -y kernel-devel m4 fop ncurses-devel openssl-devel tk unixODBC unixODBC-devel

而后编译安装erlang。

 

3. mysql版本过低,添加centosplus源

原来的mysql版本是4.1.22, 咱们的产品使用mysql的版本必须是5.0以上。继续折腾。
google了半天,发如今centosplus源有mysql 5.0的rpm包,但咱们的源不会启用centosplus,查看了下面的

启用CentOS Plus

主要是设置enabled=1,下面贴一下个人repo配置:

additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus baseurl=http://vault.centos.org/4.9/centosplus/$basearch/
gpgcheck=1 enabled=1 gpgkey=http://vault.centos.org/RPM-GPG-KEY-centos4
protect=1 priority=2

 

4. 中止iptables

使用setup命令行中止iptables,咱们的产品可使用了。

但次日,服务器重启了,咱们的产品又运行不行,发现仍是iptables运行了,阻止了咱们产品的网络链接。但我已经设置了iptables中止运行了的,什么状况?
查找了半天,原来是setup那里还有个防火墙配置问题。这里也要设置一下。

因为 ssh链接到4.4的服务器那个界面实在太难看,这里截图用的是6.5版本的centos界面,中文的。

 

5. erlang链接不了网络

# ./start.sh live {error_logger,{{2014,3,21},{10,35,48}},"Protocol: ~p: register error: ~p~n",["inet_tcp",{{badmatch,{error,duplicate_name}},[{inet_tcp_dist,listen,1},{net_kernel,start_protos,4},{net_kernel,start_protos,3},{net_kernel,init_node,2},{net_kernel,init,1},{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}]} {error_logger,{{2014,3,21},{10,35,48}},crash_report,[[{initial_call,{net_kernel,init,['Argument__1']}},{pid,<0.20.0>},{registered_name,[]},{error_info,{exit,{error,badarg},[{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}},{ancestors,[net_sup,kernel_sup,<0.9.0>]},{messages,[]},{links,[#Port<0.68>,<0.17.0>]},{dictionary,[{longnames,true}]},{trap_exit,true},{status,running},{heap_size,377},{stack_size,24},{reductions,473}],[]]} {error_logger,{{2014,3,21},{10,35,48}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfa,{net_kernel,start_link,[['groupchat@127.0.0.1',longnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]} {error_logger,{{2014,3,21},{10,35,48}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,shutdown},{offender,[{pid,undefined},{name,net_sup},{mfa,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]} {error_logger,{{2014,3,21},{10,35,48}},std_info,[{application,kernel},{exited,{shutdown,{kernel,start,[normal,[]]}}},{type,permanent}]} {"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}}"} Crash dump was written to: erl_crash.dump Kernel pid terminated (application_controller) ({application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}})

原来是epmd的问题,停了,再开就能够了。

# ps -ef|grep erl root 4670     1  0 Mar20 ?        00:00:00 /usr/lib/erlang/erts-5.7.5/bin/epmd -daemon root 24263 19882  0 10:35 pts/0    00:00:00 grep erl # kill -9 4670

 

总的来讲,因为服务器太旧,致使源设置困难、软件版本低,而后centos的默认启用防火墙的问题,致使整个过程出现了不少问题。

相关文章
相关标签/搜索