【百人计划】005 linux 实战 -- 搭建项目环境

想在虚拟机上搭建公司项目的测试环境,问了开发,大概有几步工作要做:

  1. 安装虚拟机(略)
  2. 安装CentOS7 操作系统(略)
  3. 安装 jdk 1.8
  4. 安装 mysql 5.7
  5. 安装 Redis 4.0.6
  6. 安装 Tomcat 7
  7. 安装 Nginx

格式排版比较乱,后面再优化,话说这个图片尺寸我一直不知道怎么弄,走过路过的大神指点下

参考博客:

https://www.cnblogs.com/xuliangxing/p/7066913.html(jdk)
https://blog.csdn.net/weixin_42266606/article/details/80863781(通过这篇文章知道了 vim 的好处)
https://blog.csdn.net/z13615480737/article/details/80019881(mysql)

3. 安装 jdk

3.1 先查看系统有没有自带的openjdk

查看系统有没有自带的openjdk

3.2 下载 jdk 1.8

本来想下载 jdk1.7,后来发现怎么都不能成功,有说是1.7版本不存在了,所以用1.8版本。

直接通过 wget命令下载的文件无法正常解压,所以采用了另一种办法,先在本机上访问https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载压缩包,然后通过 FileZilla Client 将本机下载的文件上传至 虚拟机服务器上。

image.png

3.3 解压后设置jdk环境变量

vi /etc/profile

用 vi 编辑器来编辑profile文件,在文件末尾添加一下内容(按“i”进入编辑):

1 export JAVA_HOME=/usr/local/java/jdk1.8.0_201
2 export JRE_HOME=${JAVA_HOME}/jre
3 export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
4 export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
5 export PATH=$PATH:${JAVA_PATH}
image.png

保存并退出(按":wq!")。
通过命令 source /etc/profile 让 profile 文件立即生效

3.4 测试是否安装成功

①、使用javac命令,不会出现command not found错误
②、使用java -version,出现版本为java version "1.8.0_131"
③、echo $PATH,看看自己刚刚设置的的环境变量配置是否都正确

4 安装 mysql

4.1 参考文章:https://blog.csdn.net/z13615480737/article/details/80019881

4.1.1 安装依赖

yum install -y cmake make gcc gcc-c++ libaio ncurses ncurses-devel

4.1.2 切换到 【/usr/local/src】目录下

使用命令 cd /usr/local/src

4.1.3 下载安装包

执行命令 wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.25-linux-glibc2.12-x86_64.tar

(如果文中的下载链接失效了,可以参照下图,找到最新的下载链接)


image.png

image.png

image.png

4.1.4 关于解压

image.png

文中是直接在当前路径【/usr/local/src】下解压的,所以解压后文件名称如下:

image.png

我使用了mv mysql-5.7.25-linux-glibc2.12-x86_64 mysql 命令,将 【mysql-5.7.25-linux-glibc2.12-x86_64 mysql】这个文件夹名称重新命名成 mysql,以保持跟后面的命令一致

image.png

4.1.5 安装数据库

在【/usr/local/mysql】路径下,执行 bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 命令。效果如下:

image.png

4.1.6 执行以下命令创建RSA private key

bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

4.1.7 修改当前目录拥有者为mysql用户

chown -R mysql:mysql ./

4.1.8 修改当前data目录拥有者为mysql用户

chown -R mysql:mysql data

4.1.9 配置my.cnf

vim /etc/my.cnf (直接把下面内容复制上就行)

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
#不区分大小写 
lower_case_table_names = 1
#不开启sql严格模式
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid

4.1.10添加开机启动

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

4.1.11 修改 vim /etc/init.d/mysqld

添加路径

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

4.1.12 启动mysql service mysqld start

由于第二次重装 mysql,导致之前安装的 mysql 还有进程在运行,使用 该命令启动时,提示“The server quit without updating PID file (/usr/local/mysql/data/mysqld.pid)”
查阅资料:
https://blog.csdn.net/ydyang1126/article/details/72473828
https://blog.csdn.net/qq_33528613/article/details/77743143

4.1.13 使用 ps -ef|grep mysqld 命令 确认

image.png

使用 【kill -9 进程号 】命令,再次执行service mysqld start 命令,成功。

4.1.14 加入开机起动

chkconfig --add mysqld

4.1.15 登录修改密码

mysql -uroot -p

如果出现错误 需要添加软连接

ln -s /usr/local/mysql/bin/mysql /usr/bin

(软连接是个好东西)

image.png

4.2 遇到的问题

以下是第一次安装出现的问题,可以看到目录还是【mysql-5.7.25-linux-glibc2.12-x86_64】,没有重命名成 mysql

报错1:执行 bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 命令时,提示找不到文件。

image.png

(•_•)?原因

当前处在 mysql 目录下,没有进入 【mysql-5.7.25-linux-glibc2.12-x86_64】目录。

解决办法

执行 cd mysql-5.7.25-linux-glibc2.12-x86_64 命令,进入该目录下,再执行上面的命令;

报错2:1个ERROR+5个警告

重点

“Can't find error-message file '/usr/local/mysql/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.”

image.png

(•_•)?原因

我的解压文件夹【mysql-5.7.25-linux-glibc2.12-x86_64】的位置是在 /usr/local/mysql 目录下,而命令中指定的basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 都是直接到mysql文件夹,可以观察到我的/usr/local/mysql 文件夹下没有data文件夹,data文件夹是在 我的解压文件夹【mysql-5.7.25-linux-glibc2.12-x86_64】下的,因此,需要重新修改下路径

image.png

解决办法

修改命令如下bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-5.7.25-linux-glibc2.12-x86_64 --datadir=/usr/local/mysql/mysql-5.7.25-linux-glibc2.12-x86_64/data


image.png

可以看到,重新执行命令后,没有 error 提示了,同时,bin 和 data 文件夹在同一个目录下,删除掉原先的 data 文件夹


image.png

报错3:登录 mysql ,允许 show databases; 命令报错

image.png

(•_•)?原因

初始化MySQL时生成的随机密码,只能用于初次登录。如果你要使用SQL语句作其他操作,就要修改密码后才能进行了。否则会报错“ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.”。

解决办法

参考:https://jingyan.baidu.com/article/5553fa82a9858365a23934e1.html
通过SET指令修改密码。

SET PASSWORD=PASSWORD('newpassword');

到此MySQL就安装完毕了,可以愉快的使用MySQL提供的服务了。

5. 安装 Redis

参考文档:

https://www.cnblogs.com/zuidongfeng/p/8032505.html
https://blog.csdn.net/u010623954/article/details/80037078
https://www.cnblogs.com/zk1023/p/9465430.html

5.1 下载 redis 安装包

在【/usr/local/src】目录下执行 wget http://download.redis.io/releases/redis-4.0.6.tar.gz

5.2 解压压缩包

tar -zxvf redis-4.0.6.tar.gz

5.3 将文件复制到 【/usr/local】目录下

cp -r redis-4.0.6 /usr/local

5.4 安装gcc依赖

yum install gcc

之前安装 mysql时已经安装过依赖了,所以这里会提示已存在,可忽略。

5.5 跳转到redis解压目录下

cd redis-4.0.6

5.6 编译安装

make MALLOC=libc

5.7 将/usr/local/redis-4.0.6/src目录下的文件加到/usr/local/bin目录

cd src && make install

5.8 启动redis,测试是否安装成功

cd /usr/local/redis-4.0.6/src/
./redis-server

redis启动成功,但是这种启动方式需要一直打开窗口,不能进行其他操作,不太方便,按 ctrl + c 关闭窗口。

5.9 配置redis

5.9.1 以后台进程方式启动

<1>.修改/usr/local/redis-4.0.9/redis.conf: daemonize no 将值改为yes ,保存,退出
<2>. vim redis.conf
<3>. cat redis.conf |grep "daemonize"

5.9.2 指定redis.conf文件启动

./redis-server /usr/local/redis-4.0.6/redis.conf

image.png

5.9.3 设置redis远程连接:

a.因为redis默认设置允许本地连接,所以我们要将redis.conf中将bind 127.0.0.1 改为bind 0.0.0.0或者注释该行
b.另外,阿里云ECS有一个安全组,找到并添加规则允许6379端口访问

设置redis连接密码:

在redis.conf中搜索requirepass这一行,然后在合适的位置添加配置
找到 #requirepass foobared去掉注释,foobared改为自己的密码 例如这里我改成123456

设置完成后执行/usr/local/bin/redis-server /usr/local/redis-4.0.6/redis.conf 更新配置


image.png

5.9.4 关闭redis进程

<1>使用ps -aux | grep redis查看redis进程

image.png

<2>使用kill命令杀死进程

image.png

5.9.5 设置开机自启动

<1>. 在/etc目录下新建redis目录
mkdir redis
<2>. 将/usr/local/redis-4.0.6/redis.conf 文件复制一份到/etc/redis目录下,并命名为6379.conf
cp /usr/local/redis-4.0.6/redis.conf /etc/redis/6379.conf
<3>. 将redis的启动脚本复制一份放到/etc/init.d目录下
cp /usr/local/redis-4.0.6/utils/redis_init_script /etc/init.d/redisd
<4>. 设置redis开机自启动
切换到/etc/init.d目录下
执行自启命令
chkconfig redisd on

image.png

<5>. 现在可以直接已服务的形式启动和关闭redis了
启动:service redisd start 
关闭:service redisd stop
<6>. 报错
/var/run/redis_6379.pid exists, process is already running or crashed

image.png

解决办法
参考资料:[http://blog.csdn.net/luozhonghua2014/article/details/54649295]

①:用安装文件启动 redis-server /etc/redis/6379.conf
②:shutdown -r now 软重启让系统自动恢复下

<7>. 开启redis-server提示 # Creating Server TCP listening socket *:6379: bind: Address already in use
参考文章:https://blog.csdn.net/guo13313/article/details/70666453
第一步:找到进程

ps -ef | grep -i redis

第二步:杀死进程

kill -9 进程号

第三步:重新启动redis服务器

./redis-server
image.png

但是又出现了/var/run/redis_6379.pid exists, process is already running or crashed,最终找到另一篇文章:
https://blog.csdn.net/weixin_43462069/article/details/87015642

直接删除了

5.10 用可视化工具连接 redis

参考文章:https://www.cnblogs.com/shihuibei/p/9256397.html

工具:RedisDesktopManager
主机 ip:用虚拟机 ip addr 命令查看
Auth :就是 redis.conf 文件中设置的“#requirepass foobared去掉注释,foobared改为自己的密码”


image.png

5.11 测试redis是否安装成功

参考文章:http://www.cnblogs.com/wenqiang/p/5506744.html

6. 安装 tomcat 7

参考文章:https://blog.51cto.com/13525470/2073657

6.1 下载源码安装包

6.1.1 找到下载地址:

image.png

6.1.2 下载:

wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.94/bin/apache-tomcat-7.0.94.tar.gz

6.1.3 解压

tar xvf apache-tomcat-7.0.94.tar.gz -C /usr/local/

6.1.4 移动

mv /usr/local/apache-tomcat-7.0.94/ /usr/local/tomcat/

image.png

image.png

6.1.5 重新命名文件路径

/usr/local/tomcat_cluster/tomcat1

参考 https://blog.csdn.net/loveer0/article/details/82591266 中的集群概念。

6.2 配置Tomcat 环境变量

6.2.1 定义在单个tomcat的启动和关闭程序里

执行命令1:vim /usr/local/tomcat/bin/startup.sh
执行命令2:vim /usr/local/tomcat/bin/shutdown.sh

代码如下:

export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export TOMCAT_HOME=/usr/local/tomcat_cluster/tomcat1
export CATALINA_HOME=${TOMCAT_HOME}
export CLASS_PATH=.:${JAVA_HOME}/bin/lib:${JAVA_HOME}/jre/lib:${JAVA_HOME}/lib/tool.jar
export PATH=$PATH:${JAVA_HOME}/bin:${TOMCAT_HOME}/bin

执行命令3:vim /etc/profile
也加上这段代码


image.png

执行命令4:. /etc/profile

6.2 测试是否安装成功

在浏览器地址栏输入 http://ip:8080访问

image.png

7. 安装 Nginx

参考文章:https://www.cnblogs.com/boonya/p/7907999.html

7.1 安装 PCRE pcre-devel

yum install -y pcre pcre-devel

7.2 安装 zlib

yum install -y zlib zlib-devel

7.3 安装OpenSSL

yum install -y openssl openssl-devel

7.4 下载 Nginx 源码安装包

去官网地址[https://nginx.org/en/download.html]下载 ,找到稳定版;
在 /usr/local/src 目录下,执行 wget https://nginx.org/download/nginx-1.14.2.tar.gz

7.5 解压 ,编译

tar -zxvf nginx-1.14.2.tar.gz 
cd nginx-1.14.2 
./configure
make
make install

7.6 启动 Nginx

查找安装路径 whereis nginx

cd /usr/local/nginx/sbin/
./nginx 
./nginx -s stop
./nginx -s quit
./nginx -s reload

参考文章:https://www.cnblogs.com/wyd168/p/6636529.html

80端口在安装 Tomcat 时,被占用,所以修改 Nginx 端口


image.png

关于解决端口被占用,重启等操作,见https://www.cnblogs.com/boonya/p/7907999.html

image.png

效果如下:


image.png

7.6 设置开机自启动

image.png

8. 配置 Nginx 指向某个静态页面

我在 /usr/local/nginx/html 目录下新建了一个文件夹 webhis,然后配置Nginx如下:


image.png

8.1 如何解压 rar 文件

参考:https://www.cnblogs.com/qinglin/p/9007939.html

image.png

报错:/usr/local/bin/rar: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

参考:https://blog.csdn.net/hjjhce/article/details/47751815

image.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容