安装 MariaDB 数据库软件(MySQL)
MariaDB是免费版的MySQL
MariaDB是MySQL的一个社区维护版本,开源分支;
几乎完全兼容mysql;
mysql作者以他女儿名字命令的软件;
安装MariaDB
安装
1 | #mariadb主程序, mariadb-server 服务器程序 |
MariaDB 进行初始化操作
安装之后,不要立即使用,先进行初始化操作1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61[root@localhost ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
#请输入数据库root用户的密码,刚安装数据库root密码默认为空,因此不用输入直接回车
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
#是否要设置root密码
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
#是否要删除匿名用户,匿名用户的数据库任何账号都可以访问,因此可以删除
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
#是否禁止远程登陆root用户
Disallow root login remotely? [Y/n] y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
#是否删除测试数据库和授权
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
#是否让刚才设置的立即生效
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
修改字符编码为 utf8
在 MariaDB 的配置文件 /etc/my.cnf中加入以下两句配置1
2character_set_server=utf8
init_connect='SET NAMES utf8'
修改完成后,需要重启
1 | systemctl restart mariadb 启动程序 |
使用
1 | [root@localhost ~]# mysql |
重新设置 可以远程访问
1 | mysql_secure_installation |
设置防火墙
设置防火墙,让防火墙放行对数据库程序软件的请求
MariaDB 默认以 3306 端口进行访问
在防火墙策略中,服务端统称为mysql
防火墙放行数据库访问请求1
2
3
4
5
6
7firewall-cmd --zone=public --add-port=3306/tcp --permanent
#mysql和MariaDB,对于防火墙而言都一样,在防火墙策略中,服务端统称为mysql,
#因此这句命令既设置了 mysql,又设置了 MariaDB
firewall-cmd --zone=public --add-service=mysql --permanent
firewall-cmd --reload #需要重载之后,查看已经放行接口
firewall-cmd --list-ports
443/tcp 80/tcp 3306/tcp
安装PHP,搭建 LAMP 架构
静态网站与动态网站
PHP
在服务端执行的脚本语言,是常用的网站编程语言
php的代码可以直接嵌入html网页中,不需要编辑就可以执行
LAMP架构
Linux + apache + mysql + (mariaDB) + php 的开发架构
经常被用于搭建动态网站
单独的apache只能搭建静态网站
安装php
php #主程序(包含给apache使用的模块)
php-mysql #使php程序能读取mysql数据库的模块
1 | yum install php |
配置apache的web页面目录
在apache服务器的web页面目录创建文件;
之前配置apache的时候,将其web页面目录配置在 /home/web
1
2
3
4
5
6vim /home/web/info.php
<?php
phpinfo();
?>
systemctl restart httpd
上面 phpinfo 是 php的函数,会显示php所有的配置信息
apache与php结合成功
页面访问:
http://192.168.1.109/info.php
至此搭建 LAMP 架构还差数据库的连接,此时,我们借用 wordpress 建站,
wordpress 建站中要做数据库连接。
wordpress 建站(LAMP架构的实践)
WordPress
wordpress 是使用php语言开发的博客平台,也是一款 CMS(内容管理系统),
是全球使用最广泛的博客平台;
很多非博客网站也会使用wordpress 搭建
客户机电脑中浏览器下载 wordpress
在客户机电脑中浏览器下载 wordpress 无论 win或mac版本都可以;
比如 这里下载;
使用 scp 进行 ssh 远程拷贝
客户机使用git bash 执行以下命令:1
2
3$ scp wordpressv5.7.zip root@192.168.1.109:/root
root@192.168.1.109's password:
wordpressv5.7.zip 100% 16MB 4.9MB/s 00:03
unzip 解压缩 (安装unzip)
1 | yum install unzip |
将wordpress解压包拷贝到apache页面目录下
1 | #将wordpress解压包拷贝到apache页面目录下 |
访问wordpress配置页面出现问题
页面访问刚才拷贝到apache web目录下的 wp-admin/setup-config.php
是wordpress的启动配置页面,
此页面告诉你如何一步步安装配置wordpress
https://192.168.1.109/wordpress/wp-admin/setup-config.php
升级 php
参考这篇博客,从博客中第二个开始执行:
1 | rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm |
其实你也没必要安装这么多,你只需安装 php56w 和 php56w-mysql (让php能够读取mysql数据库)1
2
3
4
5
6[root@localhost wordpress]# php -v
PHP 5.6.40 (cli) (built: Jan 12 2019 13:11:15)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
[root@localhost wordpress]# systemctl restart httpd
wordpress配置页面 访问成功

再次刷新页面,显示如下,说明正常了
配置mysql数据库
上面的wordpress配置页面,其实已经告诉我们如何接下来配置了1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26[root@localhost wordpress]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.68-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database wordpress; #创建表
Query OK, 1 row affected (0.01 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| wordpress |
+--------------------+
4 rows in set (0.01 sec)
GRANT ALL ON wordpress.* #在 wordpress 数据库上开放所有权限 给主机用户'imooc'@'192.168.1.109' , 密码是123456
MariaDB [(none)]> GRANT ALL ON wordpress.* TO 'imooc'@'192.168.1.109' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
配置wordpress相关数据库信息
1 | [root@localhost wordpress]# pwd |
刷新页面:
https://192.168.1.109/wordpress/wp-admin/setup-config.php
点击下图 的安装:

建立数据库时出错

SELinux 的安全策略问题导致的;
验证下:1
2
3
4[root@localhost wordpress]# getenforce
Enforcing #说明 SELinux 是开启的
#关闭SELinux验证下:
[root@localhost wordpress]# setenforce 0
刷新页面:
https://192.168.1.109/wordpress/wp-admin/setup-config.php
变成下图,说明安装成功了
解决 数据库 连接的SELinux问题
1 | [root@localhost wordpress]# setenforce 1 #开启 SELinux |
配置成功
刷新页面:
https://192.168.1.109/wordpress/wp-admin/install.php 或
https://192.168.1.109/wordpress/wp-admin/setup-config.php
变成下图,说明安装成功了,进入了wordpress 5分钟安装程序
配置网站信息,比如网站名,网站管理员,邮箱,这些都可以随便写
一些说明
php的配置的说明
1 | /etc/php.ini PHP的主配置文件 |
scp 的说明
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。
scp命令
java web
java web 应用的世界
java web 应用的世界 :
servlet tomcat 和 Jenkins
Jenkins
概述
是java开发的一种持续集成(CI)工具
CI是 continuous integration 的缩写,表示持续集成;
能够让软件的测试 编译 和部署自动化
通常与版本管理工具 如svn git、 构建工具结合使用;
常用的构建工具有 Ant、 Maven、 Gradle;
还有其他持续集成工具,比如 gitlab CI/CD
.war 文件
Jenkins是以servlet形式提供的
它采用扩展名为.war 的二进制文件的形式;
war是web archive的缩写,表示 网络归档文件
java的web应用程序的世界:
servlet, jsp 等;
servlet
java中旨在动态生成html代码的应用程序通常采用servlet的形式;
servlet是尊重java servlet api 的java web应用程序;
servlet = service + applet, 表示 小服务程序
service 表示 服务, applet表示 小应用程序
Jenkins 与 servlet
Jenkins是以servlet形式提供的
servlet 两种方式
创建 servlet 两种方式
- 要么编写纯java代码并编译
- 要么写一个jsp(Java server pages)
servlet与jsp
参考上面
jsp
jsp 实际上是一个html页面,其中添加了对java代码的调用
jsp 编译器编译jsp,将其转换为 servlet;
servlet容器
概述
要能够在服务器上运行servlet并将http请求传递给它们;
需要一个servlet容器;
tomcat是apache软件基金会发布的servlet容器
tomcat
由几个组件构成: Catalina 、coyote、jasper
Catalina 它本身是servlet的容器,并负责其执行;
coyote 是一个http链接器,因此是一个微型web服务器,它将http请求传输到Catalina;
jasper是tomcat的jsp编译器;
tomcat 默认端口 8080
Jenkins的运行
概述
为了使用Jenkins应用程序,需要安装tomcat服务器
Jenkins也可以独立运行;
因为它自身也包含了名为 winstone 的servlet微型容器;
Jenkins servlet tomcat (jsp java) 三者关系
servlet是遵守 java servlet api 的java web 应用程序
servlet 可由 纯java代码编写,也可以从jsp页面生成
servlet 由servlet容器执行;
tomcat 是apache软件基金会发布的servlet容器
也可以作为轻量级的web应用服务器
Jenkins是作为servlet提供的Java应用程序;
配置java环境并安装tomcat
概述
1 | yum install tomcat #可以直接安装 tomcat 而且附带安装 Java运行时的环境 JRE(用来使java应用运行起来),但不会安装JDK; |
openjdk 与 jdk
自动java 被oracle收购后,很多程序就用 openjdk 代替 jdk使用,二者功能一致;
在centos中,使用openjdk代替 jdk使用1
2
3
4
5
6[root@localhost ~]# yum search java | grep openjdk 此命令可以查找可安装的 openjdk 版本,
java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.8.0-openjdk-devel.x86_64 : OpenJDK 8 Development Environment
...
如果要安装开发jdk版本可以 安装1
2yum install java-1.8.0-openjdk-devel.x86_64
javac # 安装jdk后,可执行此命令,此命令为 java编译器
浏览器访问tomcat异常
至此Jenkins的配置安装好了,tomcat 默认端口 8080,因此可以访问:
配置上面的tomcat后,
http://192.168.1.109:8080/
发现无法访问,原来缺少了web应用程序的管理软件包
安装web应用程序的管理软件包
1 | yum install tomcat-webapps tomcat-admin-webapps |
再次访问
http://192.168.1.109:8080/
发现还是无法访问,原来防火墙的原因,执行命令1
systemctl stop firewalld
再次访问
http://192.168.1.109:8080/
成功了:
放开防火墙 8080端口
1 | systemctl start firewalld |
设置用户

1 | vim /etc/tomcat/tomcat-users.xml |
文件中下面注释的部分放开,这是系统配置好的默认测试用户,可以把密码设置简单点,比如1234561
<user name="admin" password="123456" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />
1 | systemctl restart tomcat |
然后点击上图按钮,登录:



如图上,红框内,这些应用都在目录:1
2[root@localhost ~]# ls /var/lib/tomcat/webapps/
docs examples host-manager manager ROOT sample
安装Jenkins持续集成环境
Jenkins 是Java写的一个应用程序;
可以单独运行,也可以在servlet容器中运行;
这里我们在tomcat这个servlet容器里安装Jenkins;
Jenkins的war文件
war 是 web application archive 意思是 web 的归档文件
在window下,下载文件, 并拷贝移动:
http://mirrors.jenkins.io/war-stable/2.204.1/jenkins.war
scp将文件拷贝至centos1
scp jenkins.war root@192.168.0.106:/root
执行tomcat命令生成 Jenkins 目录
将上面文件移动至 tomcat的web目录1
2
3
4
5mv jenkins.war /var/lib/tomcat/webapps #tomcat的web目录
cd /var/lib/tomcat/webapps
systemctl restart tomcat
#只需要把 Jenkins.war 放置在`/var/lib/tomcat/webapps`目录下,执行 `systemctl restart tomcat` ,
#tomcat就会在该目录下 生成 Jenkins目录,
wget下载文件和scp拷贝文件区别
不过你执行此命令后,却发现没有生成jenkins目录,
但是,如果我用wget 直接下载 jenkins.war 到 目录 /var/lib/tomcat/webapps
,
是可以生成目录jenkins;
为什么呢,原来是 wget 下载下来的 文件安全上下文 比 scp过来的好,
此时SELinux就不会阻止,可以生成目录,
你可以通过把 SELinux安装验证关闭 (执行命令 setenforce 0),再次执行以上命令,就会发现可以生成目录。
解决SELinux 的 scp拷贝问题
方法一:
1
2
3
4
5
6
7
8
9[root@localhost webapps]# cd /var/lib/tomcat/webapps
[root@localhost webapps]# ls
docs examples host-manager jenkins.war manager ROOT sample
[root@localhost webapps]# ls -Zd . 查看当前目录安全上下文
drwxrwxr-x. root tomcat system_u:object_r:tomcat_var_lib_t:s0 .
[root@localhost webapps]# ls -Zd jenkins.war
-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 jenkins.war
[root@localhost webapps]# semanage fcontext -a -t tomcat_var_lib_t jenkins.war
[root@localhost webapps]# restorecon -Rv . 重启该目录安全上下文方法二:
直接拷贝进去,也可以,此时就避免了安全上下文1
2cd /var/lib/tomcat/webapps
rm -rf jenkins jenkins.war
在客服端执行1
scp jenkins.war root@192.168.1.109:/var/lib/tomcat/webapps
访问依然报错:
http://192.168.1.109:8080/jenkins
Unable to create the home directory ‘/usr/share/tomcat/.jenkins’. This is most likely a permission problem.
To change the home directory, use JENKINS_HOME environment variable or set the JENKINS_HOME system property. See Container-specific documentation for more details of how to do this.
解决方法:
方法一:推荐1
2
3
4cd /usr/share/tomcat
mkdir .jenkins
chown tomcat:tomcat .jenkins
systemctl restart tomcat
方法一:终极解决方法:
如果还不能解决,就关闭安全校验:1
2setenforce 0
systemctl restart tomcat
再次访问:
http://192.168.1.109:8080/jenkins
就会跳转到:
复制图片中的地址1
2[root@localhost tomcat]# cat /usr/share/tomcat/.jenkins/secrets/initialAdminPassword
41d9a966b9e6470e97a534d4c69ef517
将上面的密码复制到上面页面上,点击继续:
修改tomcat的Jenkins 目录
如果你要修改 /usr/share/tomcat/.jenkins 目录,可以这样修改1
2
3
4
5
6
7
8
9
10mkdir /var/lib/jenkins
chown tomcat:tomcat /var/lib/jenkins
vim /etc/tomcat/context.xml
#在 Context 内增加一行
<Context>
<Environment name="JENKINS_HOME" value="/var/lib/jenkins" type="java.lang.String"/>
</Context>
systemctl restart tomcat
http://192.168.1.109:8080/jenkins1
2cat /var/lib/jenkins/secrets/initialAdminPassword
a3aba81d552b42238184305d6687a020
等待一分钟,出现页面

jenkins安装成功
如果顺利,就选择安装推荐插件
出现以下页面,说明Jenkins安装好:
出现offline(离线)问题的解决方法
此时也可能出现offline 问题, 没有这个问题,可不用管。

这是证书问题,
解决方法:1
2
3
4
5
6
7vim /var/lib/jenkins/hudson.model.UpdateCenter.xml
#将其中
# <url>https://updates.jenkins.io/update-center.json</url>
# 改为 http,即为:
# <url>http://updates.jenkins.io/update-center.json</url>
systemctl restart tomcat
再次刷新
http://192.168.1.109:8080/jenkins1
2cat /var/lib/jenkins/secrets/initialAdminPassword
a3aba81d552b42238184305d6687a020
密码登录下即可
安装Jenkins不顺利时的解决方法
此时就选择,不安装任何插件,把Jenkins安装好再说:
选择none,不安装任何插件
安装完成:
Jenkins的运行说明
可以直接运行 java -jar jenkins.war
也可以修改端口运行 java -jar jenkins.war –httpPort=8081
或者在tomcat这样的servlet容器里运行(上面演示的过程就是在tomcat容器里运行jenkins)
tomcat的 coyote web 服务器
tomcat的 coyote web 服务器的局限
coyote 是tomcat自带的轻量级web服务器;
coyote web 服务器不能用于直接服务客户端连接
它在处理静态文件时效率较低
并且本身不支持 https 协议
解决办法
使用功能更强大的web服务器, 比如 apache 或 nginx 作为代理服务器, 将请求转发到 tomcat;
web服务器将管理https连接、访问限制和静态页面;
只有对java应用程序的请求会被转发到tomcat;
web服务器和tomcat应用服务器之间的通信方式
- 使用http协议,web服务器将会做一个http重定向到tomcat服务器;
- 使用某些插件,例如仅适用于apache的mod_jk插件,该插件使用特殊协议在apache和tomcat之间进行通信;