本文总结了作者使用centos最小化安装时,碰到的问题和解决方案。
- 网络问题。作者使用虚拟机安装时,网卡并没有激活。操作:
1 cd /etc/sysconfig/network-script 2 vi 要编辑的网卡 3 更改 onboot = yes 4 # 重启network 5 systemctl restart network
- 使用ip address命令查看IP地址
- 使用XSHELL远程连接虚拟机
1 #检测SSHD服务是否开启 2 systemctl status sshd 3 #如果sshd服务没有安装,那么使用yum安装sshd 4 yum -y install openssh-server 5 #启动sshd服务 6 systemctl start sshd 7 #检测22端口是否开启 8 netstat -na|grep 22
- 如果yum安装sshd时出错,且报错为需要导入GPG文件(具体忘了截图了)
#导入GPG文件 rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CENTOS-7 # GPG是什么:GPG是RH官方发布的签名机制,分为公钥和私钥,用于判断软件是否是RH官方认证的。
- 安装net-tools工具,安装gcc
- 添加自启动
#在rc.local中添加自启脚本 vi /etc/rc.d/rc.local #格式: 程序名 程序路径 a.sh /home/a.sh #脚本中添加命令即可。注意给脚本提权 systemctl restart sshd #使用systemctl enable命令 systemctl enable sshd #具体更多的用法可以看附录,包括systemctl和service启动服务的流程
- 修改PS1
vi etc/profile export PS1="[u@AWS W]$ " #具体的自定义可以在网上查,作者这里只是将localhost主机名称位置的字符串改为了AWS
- JAVA配置
#解压文件,然后复制到/usr/local目录下 mv jdk1.8.0_14 /usr/local/jdk1.8 #添加环境变量,添加到/etc/profile文件中,永久生效,对于all user vi /etc/profile export JAVA_HOME=/usr/local/jdk1.8 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar #若要立即生效,执行以下命令 source /etc/profile #直接在shell中执行以上命令也会成功,但是仅限与当前终端窗口 #测试是否添加成功: echo $JAVA_HOME
- 安装Python的一些软件
#安装pip #安装扩展元EPEL yum -y install epel-release #更新pip pip install --upgrade pip
#安装Scrapy时需要的依赖
yum install libxslt-devel libffi libffi-devel python-devel gcc openssl openssl-devel
#安装scrapy
pip install scrapy - docker加速器配置(使用的阿里云的)
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://pfonbmyi.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
- 待续
附录:
- systemctl
#systemctl命令综合了service和chkconfig命令的作用 systemctl is-enabled iptables.service systemctl is-enabled servicename.service #查询服务是否开机启动 systemctl enable *.service #开机运行服务 systemctl disable *.service #取消开机运行 systemctl start *.service #启动服务 systemctl stop *.service #停止服务 systemctl restart *.service #重启服务 systemctl reload *.service #重新加载服务配置文件 systemctl status *.service #查询服务运行状态 systemctl --failed #显示启动失败的服务
- 服务启动
#service会去寻找/etc/init.d下的network脚本,restart是network脚本里的一个参数(你可以去查看network这个脚本支持的参数),然后告诉系统运行network这个脚本,剩下的事情就交给network脚本去做。 #编写属于自己的service命令:编写一个脚本,然后把它放在/etc/init.d这个目录底下,你就可以用service +脚本名字 运行。
#简单例子:http://blog.chinaunix.net/uid-11582448-id-745416.html - centos7默认防火墙:firewall
#开通端口 firewall-cmd --zone=public --add-port=80/tcp --permanent #--zone #作用域 #--add-port=80/tcp #添加端口,格式为:端口/通讯协议 #--permanent #永久生效,没有此参数重启后失效 systemctl restart firewalld.service firewall-cmd --version #更新防火墙规则 firewall-cmd --reload
- 网络测试,测试服务是否成功。
#最新发现,使用nmap测试更为强大。因为telnet只能测试tcp协议的端口。
#安装nmap
yum install nmap.x86_64
#输入端口和IP号即可检测。具体可以自己查下,很强大
nmap -p port IP
#首先,ping IP 看是否可以ping通 #然后,telnet IP port 看相应端口是否打开 #最后,查看防火墙是否禁用此端口 - 服务状态解释
• active (running):正有一隻或多隻程序正在系統中執行的意思,舉例來說,正在執行中的 vsftpd 就是這種模式。 • active (exited):僅執行一次就正常結束的服務,目前並沒有任何程序在系統中執行。 舉例來說,開機或者是掛載時才會進行一次的 quotaon 功能,就是這種模式! quotaon 不須一直執行~只須執行一次之後,就交給檔案系統去自行處理囉!通常用 bash shell 寫的小型服務,大多是屬於這種類型 (無須常駐記憶體)。 • active (waiting):正在執行當中,不過還再等待其他的事件才能繼續處理。舉例來說,列印的佇列相關服務就是這種狀態! 雖然正在啟動中,不過,也需要真的有佇列進來 (列印工作) 這樣他才會繼續喚醒印表機服務來進行下一步列印的功能。 inactive:這個服務目前沒有運作的意思。 # 摘自 鸟哥的linux教程 书籍
- yum命令
yum search #查找软件包 yum list yum list updates #列出所有可更新的软件包 yum list installed #所有已安装的软件包 yum info #列出所有软件包的信息 yum info updates #yum info updates yum clean #清除缓存目录
- 待续