百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

Centos7 linux服务器更换操作系统,搭建网站 ss

sinye56 2024-10-29 16:17 7 浏览 0 评论

我现在使用的是centos6的操作系统,由于之前更换内核导致现在update更新不了了。。

所以不如直接用centos7了

网站环境是nginx mariaDB php7

搭建SS

网络加速net-speeder 因为锐速已经停止安装了,估计是被和谐了

以及一些优化

由于最近联通线路吃屎

目前我使用的vultr日本节点爆炸了,几天前我更换到美国芝加哥节点,反而比日本稳定了,当然,距离太远,速度也就这样了

我这里新建一个芝加哥和日本,哪个好用用哪个

老方案,5美元的

系统centos7 x64

vutlr上次在推特上宣布VPS部署时间在1分钟之内,果然很快!

本来选VPS是要看延迟 带宽 速度 丢包率的

现在只能看丢包率了。。惨惨惨

左边芝加哥,右边日本

日本看似延迟低,但是这个丢包会导致终端操作都卡翔

果断删掉日本的

直接销毁不客气,然而提示我5分钟后才能删除,FFFFk

我们需要的工具有两款

xshell 这个大家都懂的

filezilla 支持ftp ftps sftp各种协议~

删除

这里打个标签,不然两台搞混了就完了

顺便,DNS反向解析我习惯写上fbi

登陆一下,看下系统,是centos7,就不再需要vultr的后台了,我们直接ssh操作就可以了

看下CPU信息,要知道

vultr有两种CPU

一种是3.5的 E3

一种是2.4的E5

你肯定知道哪个好

首先我们看下IP会发现,默认没有ifconfig命令

因为我这是核心版

不过图里敲错了

开启ifconfig和netstat

yum install net-tools -y

ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

OK了,注意的是,vutlr的系统模板下,已经给你吧eth0的名字改好了

centos7默认的网卡命令你们可以百度一下,非常有意思

热身运动,熟悉下centos7

centos7有两个很大的改动

一是,使用了systemctl替代了service

二是,使用了firewall提到了iptables

关闭服务systemctl stop sshd.service

开启服务systemctl start sshd.service

重启服务systemctl restart sshd.service

显示状态systemctl status sshd.service

开机启动systemctl enable sshd.service

禁用启动systemctl disable sshd.service

查看服务的开机启动情况

systemctl list-unit-files

systemctl list-unit-files|grep enabled

[root@vultr ~]#

是不是看我们的这个标签不顺眼?

我也是

我们改下主机名

7下改主机名跟6是不同的,主要是文件位置变了

hostname tnt.gov

/etc/sysconfig/network

hostname tnt.gov

/etc/hostname

tnt.gov

/etc/hosts

111.111.111.111 tnt.gov

改完主机名是重新登录可见的,不是重启

基本上除了升级内核是不需要重启的

当然现在升级内核也可以不重启了

上面的操作你会发现,VIM默认也没有

yum install vim -y

vultr的模板里自带了epel的源~

为什么我不用VI?不知道啊,从来没用过VI

红帽系的系统中有两个非常重要的软件源

epel和remi

详细的命令参数我都会放到我的博客中,毕竟贴吧容易吞

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

remi

接下来做什么?

我先把原服务器的东西备份过来吧

比如我的显示负载的小脚本

一行shell实现的,只是特别长而已

echo ;echo ;echo http 80: ; netstat -na | grep :80 |grep -v grep | wc -l ;echo https 443: ; netstat -na | grep :443 |grep -v grep | wc -l ;echo php-fpm: ; ps aux | grep php-fpm|grep -v grep | wc -l ;echo nginx: ;ps aux | grep nginx|grep -v grep| wc -l;echo mysql: ;ps aux | grep mysql |grep -v grep| wc -l ;echo load:;w | grep load;echo UseMem MB:;free -m | grep buffers/cache|grep -v grep | awk '{print $3}';echo FreeMem MB:;free -m | grep buffers/cache|grep -v grep | awk '{print $4}';echo UseSwap MB:;free -m | grep Swap |grep -v grep| awk '{print $3}';echo CPU:;top -n1 | grep Cpu;echo TCP;netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn ;echo ; echo

我喜欢长,因为我也长

把内容写到x.sh中

chmod +x x.sh

./x.sh即可

ls显示的是文件

如何显示隐藏文件?

ls -a即可

.bashrc是一个控制用户终端变量的文件,我添加了以下内容

alias rm='rm -i'

alias cp='cp -i'

alias mv='mv -i'

myrm(){ D=/rm/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv -v "$@" $D && echo "moved to $D ok"; }

alias rm=myrm

rm就变成了有回收站的rm了,文件会被放到/rm中~

source .bashrc

可以让文件修改后立即生效

作为运维,最重要的是什么?

是数据!

我自己做了一个七牛+百度云+本地的备份脚本

我把它转移到新服务器中~

备份程序前,我先备份下网站~

首先是数据库

adminer.php是一个非常非常小巧的数据库管理工具,只有300多k

备份数据库只要duang的一下

今天是第一次用root登陆,因为我要看看有啥要备份的

平时都是普通用户登陆的

导出的数据也只有800K而已,我的网站确实小

备份下网站内容

备份到七牛的速度还是可以的

然后把备份程序本身备份下

往回拖的速度真是凄凄惨惨

备份下nginx的配置文件,3套证书和nginx主配置文件和conf.d里的虚拟主机配置文件

配置文件内容我会放到我的博客中

然后回到我们新服务器,安装nginx

我看直接安装开发版吧

开发版都1.9.11了

上面被度娘吞了一层,请到我的博客看

nginx -V

nginx version: nginx/1.9.11

built by gcc 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC)

built with OpenSSL 1.0.1e-fips 11 Feb 2013

TLS SNI support enabled

centos7中需要手动激活rc.local文件

chmod +x /etc/rc.d/rc.local

说激活不太合适,主要是默认他不执行

既然我们安装了nginx了,那就要设置防火墙了,我大约要用下面这些端口

222 用作ssh的

80 443 http的

3389 ss的

别的暂时没了,我们添加一下

OK的~

比iptables要清晰

我们运行一下nginx

nginx 这就是运行了

nginx -s reload 是重新载入配置文件

nginx -t是测试配置文件

我们可以看到,web基础服务器算是OK了,php和数据库要安装的

我们先来个一键搭建ss服务器

然后浏览器全局代理,即可发现IP变了,就这么简单

ss服务器开机启动把图里最后一样写到rc.local即可

详情看我博客

之前我说过,我的服务器是自动备份的,如何实现自动备份?

其实就是计划任务+备份脚本

接下来安装php了

注意 php和php-fpm其实是两种东西

php是apache的一个mod

而php-fpm是单独的php管理工具

这里我都安装,因为我懒啊~

当然,我是要安装php7的

vim /etc/yum.repos.d/remi-php70.repo

enabled=1

启用php7源

yum install php php-cli php-common php-devel php-fpm php-gd php-imap php-ldap php-mbstring php-mcrypt php-mssql php-mysqlnd php-odbc php-pdo php-pear php-pecl-jsonc php-pecl-jsonc-devel php-pecl-zip php-process php-snmp php-soap php-tidy php-xml php-xmlrpc php-opcache

php-fpm -v

PHP 7.0.3 (fpm-fcgi) (built: Feb 3 2016 11:31:08)

Copyright (c) 1997-2016 The PHP Group

Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

然后是mariadb了,注意,我上面安装的服务都没启动

默认密码你要注意,上面是例子,别写上123456

Link start~

systemctl start mysqld.service

启动

mysql -V

mysql Ver 15.1 Distrib 10.1.11-MariaDB, for Linux (x86_64) using readline 5.1

php-fpm socket模式

vim /etc/php-fpm.d/http://www.conf

listen = /dev/shm/fpm-cgi.sock

listen.backlog = 65535

listen.owner = nginx

listen.group = apache

listen.mode = 0660

php禁用一些不安全函数,改改上传文件大小

php.ini

disable_functions=exec,system,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,dl,popen,pcntl_exec,socket_accept,socket_bind,socket_clear_error,socket_close,socket_connect,socket_create_listen,socket_create_pair,socket_create,socket_get_option,socket_getpeername,socket_getsockname,socket_last_error,socket_listen,socket_read,socket_recv,socket_recvfrom,socket_select,socket_send,socket_sendto,socket_set_block,socket_set_nonblock,socket_set_option,socket_shutdown,socket_strerror,socket_write,stream_socket_server,disk_total_space,disk_free_space,diskfreespace,getrusage,get_current_user,getmyuid,getmypid,dl,leak,listen,chgrp,link,symlink,dlopen,proc_nice,proc_get_stats,proc_terminate,shell_exec,sh2_exec,posix_getpwuid,posix_getgrgid,posix_kill,ini_restore,mkfifo,dbmopen,dbase_open,filepro,filepro_rowcount,posix_mkfifo,putenv,sleep,chmod,chown,chroot,ini_set,phpinfo,proc_get_status,error_log,syslog,readlink,putenv

上传文件大小在php.ini中搜2M

直接改成200M就行了~

时区,我们设置下,不然日志记录的时间都是乱的

date

Mon Feb 15 04:51:05 UTC 2016

TZ='Asia/Shanghai'; export TZ

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

这是最简单的方法

配置的差不多了,yum update一下

升级下内核

内存768M其实有点小,反正是SSD服务器,我们做个swap文件,也弄成768M吧,还对称不是~

SWAP交换文件

dd if=/dev/zero of=/tmp/swap bs=1M count=768

mkswap /tmp/swap #创建swap文件

swapon /tmp/swap #激活swap文件

swapon -s #查看swap

Filename Type Size Used Priority

/dev/sda2 partition 490492 0 -1

/tmp/swap file 2097148 0 -2

修改/etc/fstab文件,增加以下内容,让系统引导时自动启动

vim /etc/fstab #在最后添加下面代码

/tmp/swap swap swap default 0 0

:wq! #保存退出

dd if=/dev/zero of=/tmp/swap bs=1M count=768

768+0 records in

768+0 records out

805306368 bytes (805 MB) copied, 1.83505 s, 439 MB/s

不愧是SSD

然后我们装个net-speeder这个在我博客有,很简单

然后?我们把备份的文件全部传上去,开始恢复

你可能奇怪,这么慢我为什么还用?

因为vultr说春季会上新亚洲机房,我只是在等而已

恢复下nginx,测试下,OK

我们把hosts绑定到新域名,进行网站恢复,首先打开探针

502 Bad Gateway

是因为php没有运行,这里我们启动组件,并让他开机启动

systemctl enable mariadb.service

systemctl restart mariadb.service

systemctl enable nginx.service

systemctl restart nginx.service

systemctl enable php-fpm.service

systemctl restart php-fpm.service

探针OK

打开网站会提示数据库错误

这里我们需要用adminer管理数据库

删除默认空用户

新建mysql用户

导入数据库

关联数据库和用户

完成

新建数据库

删除空用户

创建用户并关联

导入

OK

然后更改dns到新IP

这是进入最后的查漏阶段,非常不建议删除旧服务器,个人建议保留下,看看有什么遗忘,确认无误再删除

探针跑分,php7确实很猛










相关推荐

Linux在线安装JDK1.8

首先在服务器pingwww.baidu.com查看是否可以连网然后就可以在线下载一、下载安装JDK1.81、在下载安装的同时做好一些准备工作...

Linux安装JDK,超详细

1、了解RPMRPM是Red-HatPackageManager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux...

Linux安装jdk1.8(超级详细)

前言最近刚购买了一台阿里云的服务器准备要搭建一个网站,正好将网站的一个完整搭建过程分享给大家!#一、下载jdk1.8首先我们需要去下载linux版本的jdk1.8安装包,我们有两种方式去下载安装...

Linux系统安装JDK教程

下载jdk-8u151-linux-x64.tar.gz下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.ht...

干货|JDK下载安装与环境变量配置图文教程「超详细」

1.JDK介绍1.1什么是JDK?SUN公司提供了一套Java开发环境,简称JDK(JavaDevelopmentKit),它是整个Java的核心,其中包括Java编译器、Java运行工具、Jav...

Linux下安装jdk1.8

一、安装环境操作系统:CentOSLinuxrelease7.6.1810(Core)JDK版本:1.8二、安装步骤1.下载安装包...

Linux上安装JDK

以CentOS为例。检查是否已安装过jdk。yumlist--installed|grepjdk或者...

Linux系统的一些常用目录以及介绍

根目录(/):“/”目录也称为根目录,位于Linux文件系统目录结构的顶层。在很多系统中,“/”目录是系统中的唯一分区。如果还有其他分区,必须挂载到“/”目录下某个位置。整个目录结构呈树形结构,因此也...

Linux系统目录结构

一、系统目录结构几乎所有的计算机操作系统都是使用目录结构组织文件。具体来说就是在一个目录中存放子目录和文件,而在子目录中又会进一步存放子目录和文件,以此类推形成一个树状的文件结构,由于其结构很像一棵树...

Linux文件查找

在Linux下通常find不很常用的,因为速度慢(find是直接查找硬盘),通常我们都是先使用whereis或者是locate来检查,如果真的找不到了,才以find来搜寻。为什么...

嵌入式linux基本操作之查找文件

对于很多初学者来说都习惯用windows操作系统,对于这个系统来说查找一个文件简直不在话下。而学习嵌入式开发行业之后,发现所用到的是嵌入式Linux操作系统,本想着跟windows类似,结果在操作的时...

linux系统查看软件安装目录的方法

linux系统下怎么查看软件安装的目录?方法1:whereis软件名以查询nginx为例子...

Linux下如何对目录中的文件进行统计

统计目录中的文件数量...

Linux常见文件目录管理命令

touch用于创建空白文件touch文件名称mkdir用于创建空白目录还可以通过参数-p创建递归的目录...

Linux常用查找文件方法总结

一、前言Linux系统提供了多种查找文件的命令,而且每种查找命令都具有其独特的优势,下面详细总结一下常用的几个Linux查找命令。二、which命令查找类型:二进制文件;...

取消回复欢迎 发表评论: