centos 7 基本知识

1970-01-01 08:00:00 195 0 来源:智智云

1、首行先在vware里创建虚拟机,然后添加ISO文件,并设置开机时自动连接,接着启动系统,启动后进入安装界面,选择开发及工作站进行安装,在安装界面有一系列选择,除了电子邮件服务器、办公套件和生产率、和科技写作选项不选择外,其它都选择,安装完系统后,登陆进入系统进行联网设置,如果是手动输入IP地址,把其它桥接等关闭,并设置自动连接,设置好后把联网进行开关,以便IP更过来。从服务器右键进入终端,systemctl stop firewalld.service 关闭防火墙,即可对用putty软件连接
或者用putty连接服务器,并进行更新,如果提示睡眠等问题,先用vware 重启服务器,再重新连接。
2、centos 系统更新  # yum  -y  update
3、更新完系统后,输入以下代码,为php增加mbstring扩展 # yum -y install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-bcmath php-mbstring*
4、当需要修改apache默认路径, 打开httpd.conf修改相应的路径:documentRoot "/var/www/html"以及后,关闭SeLinux。
不重启Linux服务器关闭SeLinux的方法:
执行命令:# setenforce 0 就可以不重启关闭selinux了。
或者用永久打开通道方法:修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器,系统更新前不要用disabled,不然会影响更新。
5、数据连接错误提示:#2003 - 服务器没有响应  或者  提示:Can't connect to MySQL server on 'ip' (13)此问题的原因是SELinux阻止httpd进程--httpd_can_network_connect_db 连接数据库--不管是哪种类型的数据库。
使用getsebool 查看此选项的状态
# getsebool httpd_can_network_connect_db
执行命令,解决数据连接通道问题
# setsebool -P httpd_can_network_connect_db on(或者setsebool -P httpd_can_network_connect_db=1)
6、创建文件 touch index.php 
7、插入和启动
yum -y install httpd
如果默认没有安装php的话用yum install php 安装完后重启httpd
httpd systemctl start httpd.service 设置开机自动启动  systemctl enable httpd.service  systemctl disable httpd.service 
8、修改httpd的路径
打开/etc/httpd/conf/httpd.conf 修改前最好先备份一下这个文件
在尾部添加以下代码: 
###################正式服务器CES管理部分[S]###################


documentRoot /www/cescmsshtml
ServerName www.ces.cn


###################正式服务器CES管理部分[E]###################

找到Listen 12.34.56.78:80
Listen 80
改成Listen 192.168.0.87:80

在#ServerName www.example.com:80
下加上ServerName 192.168.0.87:80 

找到documentRoot "/var/www/html"
改成documentRoot "/home"
找到
改成

找到
DirectoryIndex index.html


改成

DirectoryIndex index.html index.shtml index.php


修改完成后,将httpd重启 httpd systemctl restart httpd.service

修改完后,对防火墙进行设置
9、设置防火墙
#systemctl stop firewalld.service   停止firewall,关闭防火墙
#systemctl disable firewalld.service 禁止firewall,禁止防火墙开机启用
systemctl stop firewalld.service 
systemctl disable firewalld.service
或者是
配置防火墙和SELinux
# firewall-cmd --permanent --zone=public --add-service=ftp
# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --add-service=https



firewall-cmd --permanent --add-port=3306/tcp 开放3306
firewall-cmd --permanent --add-port=1000-2000/tcp 开放区间
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address="218.246.71.189" drop' 屏蔽某IP

http://www.centoscn.com/CentOS/Intermediate/2016/0602/7348.html 配置

# 重新载入
# firewall-cmd --reload
配置
/etc/sysconfig/iptables
添加
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

开放80端口
添加
iptables -A INPUT -p icmp -j REJECT  禁止PING 


如果上面配置不当,会造成访问不了https网站,影响的原因可能是系统里没有配置443端口,或者外围防火墙将443端口关闭了
开启防火墙端口
接下来的事情就和用iptables是一样的了,若要开启某端口,则(80端口为例,红色为添加的规则):
vi /etc/sysconfig/iptables 
注意centos 7的配置在/etc/sysconfig/firewall这个里,规则也可以添加到这里
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许80端口通过防火墙

############################## 添加后防火墙规则如下所示 ##############################
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

--------------------------------------分割线 --------------------------------------


代理服务器设置
###################正式服务器WENKU管理部分[S]###################
upstream  wenku.ces.cn
{
server   192.168.0.90:80;
}

server
{
listen  80;
server_name  wenku.ces.cn;

location / {
proxy_pass        http://wenku.ces.cn;
proxy_set_header   Host             $host;
proxy_set_header   X-Real-IP        $remote_addr;
proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
client_max_body_size    2048m;
}
}



如果是要将80配到对应的8080,则用下面的方法

upstream  android.ces.cn
{
server   192.168.0.80:8080;
}

server
{
listen  80;
server_name  android.ces.cn;

location / {
proxy_pass        http://android.ces.cn;
proxy_set_header   Host             $host;
proxy_set_header   X-Real-IP        $remote_addr;
proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
client_max_body_size    2048m;
}
}

如果想用8080配到对应的8080端口,则上面的80全都改成8080

###################正式服务器WENKU管理部分[E]#####################

10、安装vsftpd # yum -y install vsftpd  其中加-y表示确定安装
启动vsftpd # systemctl restart vsftpd.service
11、创建用户组和用户
创建组   # groupadd usergroup 创建ftp组  groupadd  组名
创建用户 # useradd -g usergroup -d /var/www/html/news -m testnews 创建用户 # useradd -g 组名 -d 目录 -m 用户名 
设置用户密码 # passwd testnews   回车后输入密码 passwd 用户名
设置FTP权限不然没法创建文件夹和删除,查找ftp相关的SELinux bool值,给ftp访问放行
# getsebool -a | grep ftp
# setsebool -P ftpd_full_access on
# -P写入磁盘,不会重启消失,但耗时较长 这也是设置权限的
把/var/www/html的所有权给htmler.root  # chown -R htmler.usergroup /wq   chown -R 用户名:组 目录

groups 用户名 查看用户属于哪个用户组

cat etc/group查看所有的组

cat /etc/passwd查看所有用户

设置文件夹权限 chmod -R 777 /home  chmod 777/775 设置文件夹权限  包括他的子目录的权限也改了 
启动vsftpd # systemctl restart vsftpd.service
vsftp开机自动启动
systemctl enable vsftpd.service

11、安装ftp,lftp,用于多台centos 服务用FTP命令下载,上传 
ftp 客户端安装 # yum -y install ftp
安装lftp # yum -y install lftp
lftp登陆
# lftp ftp://htmler@192.168.0.85  回车后输入root密码
lftp ftp://databack@192.168.0.165 
或者
lftp -u username,password ftpsite
lftp -u databack,bj@wq@ces@back 192.168.0.165

下载文件夹 
# mirror /var/www/html/ /ok/ 把html整个文件夹复制到ok文件夹下
mirror ftp上源文件夹  本机存放的文件夹
ftp 服务和帐号安装在要源服务器
lftp安装在将要备份的服务器

mirror /wq/ces/ /wq/

如果出现 550 failed to change directory
原因是SElinux的FTP传输审核功能禁止切换目录,或者是目录错误
解决办法:
1./etc/sysconfig/selinux上禁用之,重启生效。

SELINUX=disabled

如果使用ftp 命令提示
ftp: 未找到命令.
原因是否ftp客户端没有安装上, 要重新安装一下就可以了
则执行
rpm -Uvh http://mirror.centos.org/centos/6/os/x86_64/Packages/ftp-0.17-54.el6.x86_64.rpm

ftp客户端和lftp客户端的区别:
没有区别,lftp 功能更丰富更好使而已

11.1 mysql 安装 yum -y install mysql*  或  yum -y install mariadb*
移除数据库服务
yum remove mariadb*

centos 7 把mysql 改成了mariadb
查看安装的服务
#rpm -qa |grep mysql 

操作MariaDB
systemctl start mariadb  #启动MariaDB

systemctl stop mariadb  #停止MariaDB

systemctl restart mariadb  #重启MariaDB

systemctl enable mariadb  #设置开机启动


为root账户设置密码 
mysql_secure_installation 
按两次回车,因为启始密码为空,然后输入Y表示设置,再输入两次一样的密码
然后再依次输入Y就可以了

数据库连接错误:
Error1: 2003:Can't connect to MySQL server on 'localhost'

解决方法:

关闭Linux的防火墙功能,或者设置容许TCP协议的3306端口通过,可以下使用如下命令开启TCP协议的3306端口
[root@bugzilla ~]# more /etc/sysconfig/iptables。 

-A RH-Firewall-1-INPUT -p tcp --dport 3306 -j ACCEPT。 

show databases

创建UTF8 数据库
CREATE DATAbase db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATAbase cloud DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

按年月日来备份数据库
mysqldump -u 用户名 -p密码 数据库> /databack/iuc_`date +%y%m%d`.sql

mysqldump -u root -p  cesdb> /cesdb_`date +%y%m%d`.sql

数据库恢复命令
source /databak/cesb2b_150612.sql;
source /databack/yejinb2b/yejinb2b_151106.sql;


进入mysql数据库控制台
如mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source /databak/ces/ces_cms.sql

mysql>create database testcms;
mysql>use testcms;
mysql>source /www/data/testcms.sql
mysql>source /databak/cesbbs.sql

上传phpmyadmin进行数据库管理操作



我里我以ROOT身份登录.
@>mysql -u root -p
@>密码
显示数据库
mysql> show databases; 
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user; 

数据添加允许访问的IP
grant all on *.* to root@'192.168.0.1' identified by "123456";
grant all on *.* to root@'192.168.0.2' identified by "123456";
grant all on *.* to root@'192.168.0.3' identified by "1";
grant all on *.* to root@'%' identified by "123456";

注意修改这里的密码:




删除记录

DELETe FROM user WHERe User="root" and Host="192.168.0.65";

通过HeidiSQL连接MYSQL数据库报错:
SQL Error (1130): Host '192.168.1.126' is not allowed to connect to this MySQL server
说明所连接的用户帐号没有远程连接的权限,只能在本机(localhost)登录。
需更改 mysql 数据库里的 user表里的 host项把localhost改称%
首先按下面的步骤登录Mysql服务器
登录mysql需要切换到dos下的mysql的bin目录,进行如下操作:
mysql>use mysql;

mysql>update user set host = '%'  where user ='root';
MariaDB [mysql]> update user set host = '%' where host = 'localhost';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0  Changed: 0  Warnings: 0

mysql>flush privileges;
mysql> select host, user from user;
mysql>quit
OK。远程连接成功!

如果还连接不上,把两台服务器的防火墙关闭了。

创建普通用户:
mysql > use mysql; 

#创建openscanner用户与密码并设置为从安装mysql服务的机器本地访问
mysql > grant all on openscannerstore.* to 'openscanner'@'localhost' 
identified by 'scanner888'; 

#设置openscanner用户与密码,并从任何机器都可以访问mysql
mysql > grant all on openscannerstore.* to 'openscanner'@'%' identified by 'scanner888'; 

mysql > flush privileges; 

12、重启centos reboot now  关机是shutdown now 

13、添加存储硬盘,进入系统进行格式化硬盘
查看磁盘信息 #fdisk -l
df -T 查看分区格式
# mkfs.ext4 /dev/sdb 或mkfs.ext4 -Tlargefile  /dev/sdb
14、挂载和卸载硬盘 
挂载硬盘 # mount /dev/sdb /zhizhi
卸载硬盘 # umount /zhizhi
自动挂载硬盘: 修改 /etc/fstab 文件,在最末尾添上
/dev/sdb /zhizhi auto defaults 0 0   磁盘  挂载点 auto defaults 0 0


reboot 重启系统
fdsik -l 查看磁盘
fdsik /dev/sdc  对这个硬盘进行分区  输入n  可以分区 输入 p进行主分区 然后根据提示进行分区和格式化
再输入n回到分区,输入e进行扩展分区 再回车把所有分区都分好,然后再输入n 回到分区,输入l进行扩展分区的,再输入大小进行分区,分区完后输入w进行保存分区

 
使用命令 mkfs -t ext3  /dev/sda3

mkfs -t ext3  /dev/sda4

mkfs -t ext3  /dev/sda5

mkfs -t ext3  /dev/sda6

进行格式化,然后再挂载

将硬盘挂载到一个文件夹,这个文件夹能存放的容量只能用挂载的容易,而不能用系统硬盘的容量,在挂载文件夹下面再创建文件夹,子文件夹再挂载一个硬盘,当取消挂载父文件夹时会不能取消,只能先把只目录的挂载给取消了再取消当前目录。

一个文件夹挂载硬盘后就不能重命名要先把它取消挂载再重命名。
硬盘挂载点扩容: 先把新添加的硬盘挂载到一个新文件夹,然后把原先的数据剪切过去,然后再把取消挂载,重新挂载到原来的文件夹。
可以用 df -k 查看挂载点

查看磁盘空间:
df -h


对硬盘进行删除时
先用umount 删除挂载点
然后再用
fdisk /dev/sdb
进入磁盘
输入d
再输入序号依次删除
最后输入w保存

14、系统时间设置
设置时区
timedatectl set-timezone Asia/Shanghai

设置时间 
timedatectl set-time "YYYY-MM-DD HH:MM:SS"
timedatectl set-time "2015-09-12 11:21:15"

将硬件时钟调整为与本地时钟一致 
timedatectl set-local-rtc 1 
hwclock --systohc --localtime //与上面命令效果一致

是否NTP服务器同步 
timedatectl set-ntp yes //yes或者no
如果设置为yes,则会将本地的时间同步为ntp的时间

查看时间
timedatectl 或者date



15、代理服务器安装

安装之前,最好检查一下是否已经安装有nginx
find -name nginx 

或 查看nginx的安装目录
whereis nginx 

如果系统已经安装了nginx,那么就先卸载
yum remove nginx 
首先进入/usr/local目录 
cd /usr/local 

打开http://nginx.org/download/ 可以看到最新版
从官网下载最新版的nginx 
wget http://nginx.org/download/nginx-1.9.3.tar.gz 

解压nginx压缩包
tar -zxvf nginx-1.9.3.tar.gz


会产生一个nginx-1.9.3  目录,这时进入nginx-1.9.3 目录
cd  nginx-1.9.3

接下来安装,使用--prefix参数指定nginx安装的目录,make、make install安装
./configure  输入这个命令表示默认安装在/usr/local/nginx 
./configure --with-stream 添加 TCP模块的编译方式 
使用下面命令安装
make 
make install

启动命令:/usr/local/nginx/sbin/nginx  -c /usr/local/nginx/conf/nginx.conf 
重启命令:/usr/local/nginx/sbin/nginx -s reload
参数“-c”指定了配置文件的路径,如果不加“-c”参数,Nginx会默认加载其安装目录的conf子目录中的nginx.conf文件 
还要把防火墙关闭才能访问。

./configure --prefix=/usr/local/nginx 
--with-http_ssl_module --with-http_spdy_module 
--with-http_stub_status_module --with-pcre 
--with-stream




也可以配置后用下面命令启动
启动:service nginx start
关闭:service nginx stop
重起:service nginx restart

http://www.cnblogs.com/storymedia/p/4667246.html 安装网址
http://m.blog.csdn.net/article/details?id=51955617 
配置
默认的配置文件在 /etc/nginx 路径下,使用该配置已经可以正确地运行nginx;如需要自定义,修改其下的 nginx.conf 等文件即可。 

重启nginx时候,提示:

could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32

解决方法:

在配置文件的http{}段增加一行配置
server_names_hash_bucket_size 64;
如果64还不够,那么就按32的倍数往上加。

server_names_hash_bucket_size 1024;

代理服务器用的是局域网IP,在路由器里面要把外网IP映射到这个局域网IP

查看代理服务器是否启动:
执行命令: ps -A | grep nginx
如果返回结果的话,说明有nginx在运行,服务已经启动
或ps -aux |grep nginx

停止操作
停止操作是通过向nginx进程发送信号(什么是信号请参阅linux文章)来进行的
步骤1:查询nginx主进程号
ps -ef | grep nginx
在进程列表里 面找master进程,它的编号就是主进程号了。
步骤2:发送信号
从容停止Nginx:
kill -QUIT 主进程号
快速停止Nginx:
kill -TERM 主进程号
强制停止Nginx:
pkill -9 nginx

数据库备份
例如:
mysqldump -u root -pwqxinxi@bj@iuc@dt iuc > /databak/iuc_`date +%y%m%d`.sql

mysqldump -u root -pwq@xx@dt eeepai > /databak/data/eeepai150925.sql

php.ini配置
1、里面添加date.timezone = "Asia/Shanghai"
不然会出现strtotime(): It is not safe to rely on the system's timezone settings的错误

2、Deprecated: Function ereg_replace() is deprecated的解决方法
添加
extension=php_mbstring.dll


修改:

打开/etc/sysconfig/network-scripts/ifcfg-eth0 文件
ifcfg-eth0 表示网关,当前用哪个网卡就是改哪个文件,打开这个文件,将对应的IP地址改对了。

重新加载网络配置
/etc/init.d/network restart

如何运行自己写的脚本:
把脚本写到一个文件中进行保存,如文件名为:test.sh
然后运行:sh ./test.sh


vim 文件目录 用于打开与编辑文件

打开后按i进入插入模式
编辑完成后按ESC 然后再输入冒号:再输入 wq  变成:wq 用于保存与退出


首先 cd 目录
进入到目录
压缩目录和文件
tar zcvf a.tar.gz cmsb2b
tar zcvf a.tar.gz cleardianlicms.sql 

格式为:
tar zcvf 

zcvf 表示打包并压缩

tar cvf FileName.tar DirName 

表示打包不压缩
例如
tar zcvf a.tar.gz cleardianlicms.sql 

如果不进入目录直接压缩会出现这个错误
tar zcvf a.tar.gz  /databack/cmsb2b/cleardianlicms.sql
tar: 从成员名中删除开头的“/”
首页 > shell脚本学习
/bin/tar: 从成员名中删除开头的“/”
2012年6月21日 admin 发表评论 阅读评论

今天在使用tar进行打包时,发现报了‘从成员名中删除开头的“/”’的错误。我使用的打包语句如下:

[root@bj~]# tar czvf databaset.tar.gz /root/tomcat/
tar czvf /backup/database.tar.gz /databack/cmsb2b 打包到指定目录
tar: 从成员名中删除开头的“/”

造成该问题的原因是因为使用相对路径和绝对路径引起的。另外还有一种解决方法是,使用相对路径:
使用下面语句来处理这个问题
tar czPvf a.tar.gz /databack/cmsb2b/cleardianlicms.sql
/databack/cmsb2b/cleardianlicms.sql

czPvf 加上P表示使用绝对路径

打包压缩到指定目录
tar czPvf /backup/database.tar.gz /databack/cmsb2b 

全备份:
tar -cPvf upload01.tar /work/upload/ 
tar -g tarinfo -czf /backup/database.tar.gz   /databack/cmsb2b 
tar -g tarinfo -czf /backup/database1.tar.gz /databack/cmsb2b 
增量备份
#g指定标志文件
tar -g flag -cPvf upload01.tar /work/upload/ 


增量备份到单独文件
第一次执行完整备份
tar -g snapshot -zcf /backup/database.tar.gz  /databack/cmsb2b 
用绝对路径
tar -g snapshot -czPvf /backup/database.tar.gz  /databack/cmsb2b 

第二次执行增量备份,新的增量备份算是一个新文件
tar -g snapshot -czPvf  /backup/database_2.tar.gz /databack/cmsb2b 
如果原先执行过一次这个命令,再执行这个命令,新的增量备份会是原先的增量备份上的增量,这里的增量备份所以要用不同的文件名,比如不能再用database_2.tar.gz

查看备份文件
tar -tf  /backup/database_2.tar.gz


`%Y%m%d%H%M`


根据年月日增量备份
tar -g snapshot -czPvf  /backup/database_`date +%Y%m%d%H%M`.tar.gz /databack/cmsb2b
tar -g snapshot -czPvf  /backup/database_`date +%Y%m%d`.tar.gz /databack/cmsb2b

snapshot 表示标志,如果不能进行增量或者重新增量备份,请重新随意设置一个标志

范例三:将/tmp/etc.tar.gz 文件解压缩在/usr/local/src 底下

[root@linux ~]# cd /usr/local/src

[root@linux src]# tar -zxvf /tmp/etc.tar.gz


查看分区空闲容量
df -lh

查看挂载情况
df -h
统计目录总大小
du -sh   /home/databack/wangzilong
查看每个目录的大小
du -h   /home/databack/wangzilong 


立即关机 

shutdown now 
重启
reboot

挂载光盘
mount /dev/cdrom /opt


cat /etc/redhat-release 查看系统版本




tar -cvzf /testtar/ilanni.tar.gz ilanni 解压文件

我们猜你喜欢
X

截屏,微信识别二维码

客服QQ:406784192

QQ号已复制,请打开微信添加咨询详情!