最近使用阿里云服务器搭建了 WEB 项目的运行开发环境,初始化服务器的过程中主要涉及到了用户管理、防火墙管理和相关软件环境搭建等内容,现将相关操作记录如下。
I. 防火墙
通过 SSH 连接到服务器后,为提高服务器的安全性,首先应确保防火墙开启。
- # 启动防火墙
- systemctl start firewalld.service
- # 防火墙开机自动启动
- systemctl enable firewalld.service
开启防火墙时,要同时开放 SSH 连接端口,否则下次 SSH 连接就会被防火墙屏蔽了。为了提高安全性,我们更改一下 SSH 的默认端口后开启更改后的端口。
II. 用户管理
1) 修改 root 用户密码
使用 root 用户登录后,运行 passwd 命令,根据提示设定新密码。
2) 创建新用户组,并添加用户
III. 搭建网站开发环境
1) MysqL 初始化
- # 下载安装 MysqL 的 yum 仓库
- wget http://dev.MysqL.com/get/MysqL-community-release-el7-5.noarch.rpm
- rpm -ivh MysqL-community-release-el7-5.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 方式。
为了提高安全性,删除 MysqL 的匿名用户,更改 root 密码
通过命令行也可以更改 root 密码
- MysqLadmin -u root -p password "new_pw"
但是因为会留下明文操作记录,存在安全风险,因此一般不推荐该方法更改 root 密码。
这样就创建了一个新用户 new_user_name,其密码为 password,限定在 localhost 登录。
2) 安装 svn 服务器,参考前博文 Configure SVN (Subversion) Server
3) 建立 samba 共享文件夹
- mkdir /var/share
- yum install -y samba-server samba-client
- 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 端口进行通信连接。本地测试
- smbclient -L //127.0.0.1/prjshare -U username
通过 windows 系统访问 samba 服务器时,直接在文件浏览器地址栏中输入
\\server ip\share
后就会弹出 ID/密码输入框,之后可以正常访问了。但我是在阿里云服务器上安装的 samba 服务,由于 samba 端口是高危端口,阿里云整体屏蔽了 139 和 445 的端口通信,因此没能成功从外网访问到 samba 服务器。
4) 构建 FTP 服务器
- yum install -y vsftpd 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=21
- # 数据端口(默认,无需指明)
- ftp_data_prot=20
-
- # 添加 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=20/tcp
- firewall-cmd --permanent --add-port=21/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 环境变量即可。
6) 安装 Wildfly 应用服务器
下载 Wildfly 并解压到 /opt 亦即完成安装。
- tar -xzvf wildfly-10.1.0.Final.tar.gz -C /opt/
启动 wildfly,首先转到 wildfly 目录下
- ./bin/standalone.sh -b 0.0.0.0
其中 -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 提供了管理服务器的客户端。通过
- ./bin/jboss-cli.sh
可以进入管理交互界面(初始时需要设定管理员)
进入交互界面后,运行 connect 命令连接当前开启的 wildfly 服务器进行配置操作。常用的命令有