本文總結了作者使用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 #清除緩存目錄
- 待續
