阿里云Centos7.*全套配置:挂载磁盘 搭建LAMP环境 配置虚拟主机 搭建svn等超详细解析

时间:2022-03-25 13:00:25
一:关于重置服务器后 通过某台服务器ssh连接到重置的服务器时报错REMOTE HOST IDENTIFICATION HAS CHANGED 问题的解决方法
解决方法:
1.输入命令: 
ssh-keygen -R 服务器端的ip地址
2.此时会出现以下提示:
Host 47.93.5.50 found: line 5 type ECDSA
/root/.ssh/known_hosts updated.
Original contents retained as /root/.ssh/known_hosts.old
不用管,直接进入第三步
3.重新ssh连接(需要输入yes确认)即可
二.挂载硬盘
1.查看新磁盘(找到要挂载的磁盘名称),输入命令
fdisk –l
2.对新磁盘进行硬盘分区(进入fdisk模式),进入根目录 输入命令
fdisk /dev/第一步查到的磁盘名称
n 回车
p 回车
1 回车
wq 回车
3.运行 fdisk -l 命令,查看新的分区名称[注:新分区名称与第一步查到的磁盘名称不同]
4.输入命令,对新分区进行格式化:
mkfs.ext3 /dev/第三步查到的新分区名称
5.输入命令,添加新分区信息[开机自启][注:下方命令的/mnt为挂载到那个目录下,可以自定义]
echo /dev/第三步查到的新分区名称 /mnt ext3 defaults 0 0 >> /etc/fstab
6.输入命令,挂载新分区,然后执行 df -h 查看分区。如果出现数据盘信息,说明挂载成功,可以使用新分区了[注:下方命令的/mnt为挂载到那个目录下,可以自定义]
mount /dev/第三步查到的新分区名称 /mnt
三.阿里云centos7.2搭建LAMP环境
(一).准备工作
1.下载并安装CentOS7.2,配置好网络环境,确保centos能上网,可以获取到yum源(阿里云服务器已配置好,不需要自己动手)
2.配置防火墙,开启21、80、3306端口。CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。
#停止firewall服务 输入命令
systemctl stop firewalld.service
#禁止firewall开机启动 输入命令
systemctl disable firewalld.service
#安装iptables防火墙 输入命令:
yum install iptables-services
#编辑防火墙配置文件 输入命令
vim /etc/sysconfig/iptables
#打开后,在 -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 下方添加:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
#保存退出
#最后重启防火墙使配置生效
systemctl restart iptables.service
#设置防火墙开机启动
systemctl enable iptables.service
3. 关闭seinux(阿里云已配置好)
#修改配置文件
vi /etc/selinux/config
 
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq! #保存退出
#使配置立即生效
setenforce 0 
(二).安装Lamp环境
1.安装apahce
yum install httpd
设置apache开机启动
systemctl enable httpd.service
重启apache服务
systemctl restart httpd.service


ps:可能会用到的:
systemctl start httpd.service #启动apache
systemctl stop httpd.service #停止apache
systemctl restart httpd.service #重启apache
systemctl enable httpd.service #设置apache开机启动


2.安装mysql(可不安装)
#由于yum源上没有mysql-server。所以必须去官网下载,这里 我们用wget命令,直接获取。依次输入下方三条命令:    
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server
        
#安装完成后重启mysql,输入命令:
systemctl restart mysqld.service


#此时mysql的root用户没有密码:    
[root@linuxidc-web linuxidc]# mysql -u root 


#设置msyql密码为 123456
mysql> set password for 'root'@'localhost' =password('123456');


#远程连接设置,所有以root账号连接的远程用户,设其密码为 123456
mysql> grant all privileges on *.* to root@'%'identified by '123456';


#更新权限
mysql>flush privileges; 


#退出,mysql
exit 回车


3.安装php 输入命令:
yum install php
#安装PHP组件,使PHP支持mysql 输入命令:
yum install php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash
#重启对应服务
systemctl restart mysqld.service
systemctl restart httpd.service


(三.)配置虚拟主机
1.创建自定义网站根目录
mkdir /home/webroot
2.打开httpd主配置文件
vim /etc/httpd/conf/httpd.conf
3.找到以下代码
<Directory "/var/www">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>
将其改为:
<Directory "/home/webroot">
    AllowOverride All
    # Allow open access:
    Require all granted
</Directory>
4.找到以下代码
<Directory "/var/www/html">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks


    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None


    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>
改为[Options -Indexes为禁止访问目录列表]:
<Directory "/home/webroot">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks
    Options -Indexes
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None


    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>
5.追加自动压缩网页代码功能,在主配置文件继续加入
# Gzip
<IfModule deflate_module>
    SetOutputFilter DEFLATE
    SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
    AddOutputFilterByType DEFLATE text/*
    AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript appliction/x-javascript
    AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp
</IfModule>
6.建立一个项目目录
mkdir /home/webroot/demo
7.进入apache子配置文件夹,建立对应的项目配置文件
cd /etc/httpd/conf.d
vim demo.conf
8.在打开的配置文件中,输入以下代码
<VirtualHost *:80>
    DocumentRoot "/home/webroot/demo"
    ServerName 你的公网IP
</VirtualHost>
ps:如果已经申请下域名,则输入以下代码(上方作废),允许r-collar.com www.r-collar.com两种方式的域名访问,并禁止直接访问服务器IP的方式访问项目
<VirtualHost *:80>
    ServerName 你的公网IP
    <Location />
        Order Allow,Deny
        Deny from all
   </Location>
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "/home/webroot/demo"
    ServerName r-collar.com
</VirtualHost>


<VirtualHost *:80>
    DocumentRoot "/home/webroot/demo"
    ServerName www.r-collar.com
</VirtualHost>


9.重启apache
systemctl restart httpd.service


注:此方式是基于端口实现的虚拟主机,如要添加新端口来访问新项目,还需要注意去主配置文件httpd.conf给新端口添加监听,并在防火墙中允许新端口的访问.


(四).搭建svn服务器
#预期目的:
a.仓库放在 /var/svn/ 目录下,并且仓库名为 project
b.创建用户组lsgogroup,该组下添加两个成员lsgoweb1、lsgoweb2,密码直接用用户名,两用户可以checkout代码和提交代码
c.利用SVN的钩子实现当仓库的代码更新的时候自动同步至我们的web(项目)目录 项目目录为/home/webroot/demo
一、搭建svn环境并创建仓库:
1、安装Subversion:
yum install -y subversion
2、检测是否安装成功(查看svn版本号)
svnserve --version
3、创建版本库
#先创建svn总仓库目录
mkdir /var/svn
cd /var/svn
#在总仓库中创建版本库
svnadmin create /var/svn/project
cd project
#会看到自动生成的版本库文件
conf  db  format  hooks  locks  README.txt
至此,svn环境搭建成功。


二、创建用户组及用户:
1、 进入版本库中的配置目录conf,此目录有三个文件: svn服务综合配置文件(svnserve.conf)、 用户名口令文件(passwd)、权限配置文件(authz)。
2、修改权限配置文件:vim authz
#进入后大约在21行有一个


[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe


在其下面追加代码[作用是 创建用户组lsgogroup并添加两个用户lsgoweb1,lsgoweb2到该用户组中]:
lsgogroup = lsgoweb1,lsgoweb2


#大约32行左右有一个


# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r


在其下面追加代码[作用是 使用户组lsgogroup对版本库project具有读和写的权限]:
[project:/]
@lsgogroup = rw


#追加完后wq保存退出[注:追加的代码必须顶格写]


3.配置用户名命令文件:vim passwd
#进入后大约第6行有一个


[users]
# harry = harryssecret
# sally = sallyssecret


在其下面追加代码[作用为 添加两个用户lsgoweb1,lsgoweb2以及密码,密码暂时同用户名]:
lsgoweb1 = lsgoweb1
lsgoweb2 = lsgoweb2


#追加完后wq保存退出[注:追加的代码必须顶格写]


4、配置SVN服务综合配置文件svnserve.conf
#找到以下配置项,将前面的#号去掉,然后做相应的配置


anon-access = none  //匿名用户访问权限:无
auth-access = write     //普通用户访问权限:读、写
password-db = passwd        //密码文件
authz-db = authz        //权限配置文件
realm = /var/svn/project    //版本库所在目录


注意:所有以上的配置项都需要顶格,即前面不能预留空格,否则报错


5、启动svn服务:
svnserve -d -r /var/svn


=======================================================================
ps:如果提示:
svnserve: E000098: Can't bind server socket: Address already in use
证明现在svn已经被启动了,由于我们修改了配置文件,因此要重启svn服务
方法一:
#查看svn服务详情,找到svn服务的ID号
ps aux | grep svn
#将svn服务强制停止  其中790为svn服务的ID号,-9是kill的参数
kill -9 790
方法二:
killall svnserve




再运行 svnserve -d -r /var/svn,进行启动服务
========================================================================
6.#编辑防火墙配置文件 输入命令
vim /etc/sysconfig/iptables
#打开后,在 -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 下方添加:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
#保存退出
#最后重启防火墙使配置生效
systemctl restart iptables.service


7、此时svn已经搭建完成,地址为
svn://服务器IP(如果是在本服务器上用到svn地址,此处为loclhost)/project(版本库名称)




三、实现svn更新自动同步到web目录:
1、在项目目录(/home/wenroot/demo)中checkout版本库
svn co svn://localhost/project /home/webroot/demo --username lsgoweb1 --password lsgoweb1


#进入/var/svn/project/hooks下,建立post-commit文件:
cd /var/svn/project/hooks
vim post-commit


#在该文件里添加如下代码并保存


#!/bin/sh
#设定环境变量,如果没有设定可能会出现update报错
#设定语言,根据系统语言设置,如果是GBK就设置为 LANG=zh_CN.GBK
export LANG=en_US.utf8
SVN_PATH=/usr/bin/svn
WEB_PATH=/home/webroot/demo
$SVN_PATH update $WEB_PATH --username 'lsgoweb1' --password 'lsgoweb1' --no-auth-cache


#添加后wq保存退出


####post-commit添加的代码解释####
#!/bin/sh #设定环境变量,如果没有设定可能会出现update报错
export LANG=en_US.utf8 #设定语言,根据系统语言设置,如果是GBK就设置为 LANG=zh_CN.GBK
SVN_PATH=/usr/bin/svn #这里不用改
WEB_PATH=/home/webroot/demo #web目录(项目目录),如果你的不同,可以改
$SVN_PATH update $WEB_PATH --username 'lsgoweb1' --password 'lsgoweb1' --no-auth-cache #填写自动更新使用的用户账号密码,这里的用户随便选一个就好


2.修改post-commit文件的属主属组与你的项目目录属主属组相同(一般不用改 都是root)
chown root:root post-commit


3.给post-commit 执行权限:
chmod 755 post-commit