天天看點

CentOS 7 下 WEB 項目運作環境初始化

最近使用阿裡雲伺服器搭建了 WEB 項目的運作開發環境,初始化伺服器的過程中主要涉及到了使用者管理、防火牆管理和相關軟體環境搭建等内容,現将相關操作記錄如下。

I. 防火牆

通過 SSH 連接配接到伺服器後,為提高伺服器的安全性,首先應確定防火牆開啟。

# 啟動防火牆
systemctl start firewalld.service
# 防火牆開機自動啟動
systemctl enable firewalld.service
           

開啟防火牆時,要同時開放 SSH 連接配接端口,否則下次 SSH 連接配接就會被防火牆屏蔽了。為了提高安全性,我們更改一下 SSH 的預設端口後開啟更改後的端口。

# 防火牆允許 5432 端口(即打算使用的 SSH 端口)
firewall-cmd --permanent --zone=public --add-port=/tcp
# 重新開機防火牆
firewall-cmd --reload
# 修改 SSH 預設端口
vi /etc/ssh/sshd_config
# 添加 Port=5432
# 重新開機 SSH 服務
systemctl restart sshd.service
           
# 修改 hostname
vi etc/sysconfig/network
# 添加 HOSTNAME=name
hostnamectl set-hostname=name
           

II. 使用者管理

1) 修改 root 使用者密碼

使用 root 使用者登入後,運作 passwd 指令,根據提示設定新密碼。

2) 建立新使用者組,并添加使用者

groupdd grpadmin
# 建立使用者并設定密碼
useradd -g grpadmin username
passwd username
# 添加為 sudo
visudo 
# 添加 %grpadmin ALL=(ALL)     ALL
# 允許組中的所有使用者執行 sudo 指令。
           

III. 搭建網站開發環境

1) MySQL 初始化

# 下載下傳安裝 MySQL 的 yum 倉庫
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-noarch.rpm
# 使用 yum 指令安裝 MySQL 
yum install -y mysql-community-server mysql-community-devel
# 安裝好的 MySQL 應當有以下内容
rpm -qa | grep mysql
# mysql-community-release-el7-5.noarch
# mysql-community-common-5.6.35-2.el7.x86_64
# mysql-community-client-5.6.35-2.el7.x86_64
# mysql-community-devel-5.6.35-2.el7.x86_64
# mysql-community-libs-5.6.35-2.el7.x86_64
# mysql-community-server-5.6.35-2.el7.x86_64

# 啟動 mysql 服務
systemctl start mysqld.service
           

MySQL 預設情況下資料庫名及表名是區分大小寫的,可以通過修改配置檔案,使 mysql 執行 sql 執行 SQL 語句時,對表名大小寫不敏感。另外,為了使資料庫能夠正常存儲中文字元,我們要将 mysql 的預設字元集改為 UTF-8 方式。

vi /etc/my.cnf
# 在[mysqld]節點下,加入下面兩行配置後,重新開機資料庫服務。
# Table name case insensitive
lower_case_table_names=

# Server default character set
character_set_server=utf8
           

為了提高安全性,删除 mysql 的匿名使用者,更改 root 密碼

mysql -u root
mysql> use mysql;
mysql> delete from user where user='';
mysql> update user set password=password("new_pw") where user='root';
mysql> flush privileges;
           

通過指令行也可以更改 root 密碼

但是因為會留下明文操作記錄,存在安全風險,是以一般不推薦該方法更改 root 密碼。

# 連接配接資料庫
mysql -u root -p 
# 建立新資料庫
CREATE DATABASE PRJ_DB;
# 建立新使用者并賦予資料庫通路權限
GRANT ALL PRIVILEGES ON PRJ_DB.* TO 'new_user_name'@'localhost' IDENTIFIED BY 'password';
flush privileges;
           

這樣就建立了一個新使用者 new_user_name,其密碼為 password,限定在 localhost 登入。

2) 安裝 svn 伺服器,參考前博文 Configure SVN (Subversion) Server

3) 建立 samba 共享檔案夾

mkdir /var/share
yum install -y samba-server samba-client
           

修改 samba 配置檔案

vi /etc/samba/smb.conf

[global]
        workgroup = prjgroup
        server string = project management
        security = user
        passdb backend = tdbsam
[share]
        path = /var/share
        public = no
        writable = yes
        write list = @grpadmin
        validusers = @grpadmin
           

其中 grpadmin 是系統中已經存在的使用者組。samba 伺服器将允許組中成員通路,但是還需要将使用 smbpasswd -a username 将成員加入到 samba 許可名單并為其重新設定密碼。

# 啟動 samba 伺服器
systemctl start smb
# 開啟防火牆
firewall-cmd --permanent --add-port=139/tcp
firewall-cmd --permanent --add-port=445/tcp
           

samba 使用 139 和 445 端口進行通信連接配接。本地測試

通過 windows 系統通路 samba 伺服器時,直接在檔案浏覽器位址欄中輸入

\\server ip\share

後就會彈出 ID/密碼輸入框,之後可以正常通路了。但我是在阿裡雲伺服器上安裝的 samba 服務,由于 samba 端口是高危端口,阿裡雲整體屏蔽了 139 和 445 的端口通信,是以沒能成功從外網通路到 samba 伺服器。

4) 建構 FTP 伺服器

其中 vsftpd 是提供 ftp 伺服器的軟體。ftp 是用戶端,如果不需要在本機連接配接 ftp 伺服器,則無需安裝 ftp。安裝完成後配置 ftp 伺服器的基本設定。

vi /etc/vsftpd/vsftpd.conf
# 進行以下修改或者添加
# 禁止匿名通路
anonymous_enable=NO
# 使用 linux 系統使用者通路 ftp 伺服器
local_enable=YES
# 允許有權限的使用者進行寫操作
write_enable=YES
# 指定 ftp 伺服器的根目錄位置
local_root=/var/ftp
# 指令端口(預設,無需指明)
listen_port=
# 資料端口(預設,無需指明)
ftp_data_prot=

# 添加 ftp 使用者并指定其密碼(ftp 組預設存在)
useradd -g ftp -d /var/ftp -s /sbin/nologin ftpuser
passwd ftpuser

# 将 ftp 伺服器根目錄的屬主改變成 ftpuser
chown ftpuser:ftp -R /var/ftp

# 完成配置後,然後開始 ftp 伺服器就可以進行通路了。
systemctl start vsftpd
# 開機啟動
systemctl enable vsftpd

# 開啟防火牆
firewall-cmd --permanent --add-port=/tcp
firewall-cmd --permanent --add-port=/tcp
firewall-cmd --reload
           

在 win 作業系統通路 ftp 伺服器時,通過用戶端軟體通路是比較友善,但可能會需要額外的設定。例如我們使用 Xftp 連接配接 ftp 伺服器時,為了解決可能存在的客戶段 PC 防火牆問題,可選擇主動連接配接方式(關于 FTP 的主動連接配接和被動連接配接,請參考其它相關資料)。為了解決中文字元亂碼問題,可設定使用 UTF-8 方式解析檔案或目錄名。另外需要注意的是,在伺服器端建立的中文目錄名,在 win 作業系統電腦上通路時,可能會出現無法寫入檔案的問題,是以,一般可以直接在用戶端管理所有 ftp 檔案及檔案目錄,不但友善,也能防止由于編碼方式不同導緻的檔案寫入目錄失敗的問題。

5) 安裝 Oracle JDK

CentOS 自帶的 open jdk 有時候不能滿足需要,我們可将其替為 Oracle JDK 環境。隻需下載下傳 jdk 1.8 并解壓到 /opt/jdk1.8 檔案夾下,配置 java 環境變量即可。

vi /etc/profile
export JAVA_HOME=/opt/jdk1.
export CLASSPATH=:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

# 删除系統自帶的 jdk
yum remove java
mv /usr/bin/java /usr/bin/java.bak
ln -s $JAVA_HOME/bin/java /usr/bin/java
# 重新開機作業系統使配置生效
reboot
           

6) 安裝 Wildfly 應用伺服器

下載下傳 Wildfly 并解壓到 /opt 亦即完成安裝。

tar -xzvf wildfly-.Final.tar.gz -C /opt/
           

啟動 wildfly,首先轉到 wildfly 目錄下

./bin/standalone.sh -b 
           

其中 -b 參數指定為 0.0.0.0 允許以任何 IP 位址(也可以指定為特定的 IP 位址)向伺服器發送 http 請求,通路釋出到 wildfly 的應用。如果不指定,wildfly 預設情況下隻允許 127.0.0.1 通路已釋出的應用。另外 wildfly 的 web 應用預設端口為 8080,如果需要從其它 IP 通路,還需要開放該端口的防火牆通路權限。

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
           

wildfly 提供了管理伺服器的用戶端。通過

可以進入管理互動界面(初始時需要設定管理者)

進入互動界面後,運作 connect 指令連接配接目前開啟的 wildfly 伺服器進行配置操作。常用的指令有

shutdown #關閉伺服器
exit     #退出連接配接
deploy /path/to/web.war #将 WEB 應用釋出到伺服器
           

繼續閱讀