Ubuntu Server部署日记

2018-11-08

本博客所有文章采用的授权方式为 自由转载-非商用-非衍生-保持署名 ,转载请务必注明出处,谢谢。 声明:
本博客欢迎转发,但请保留原作者信息!
博客:游钓四方的博客
邮箱:haibao1027@gmail.com
内容系本人学习、研究和总结,如有雷同,实属荣幸!

 出于挂一些签到软件的原因我一直在用Windows Server2012,因为服务器配置较低图形界面操作卡的要死,干脆直接上纯命令操作系统的linux。 关于linux发行版我几乎都玩过。在选择linux服务器这块也没有太犹豫,我个人比较痴情Ubuntu,我个人用户对于服务器要求没有那么高,所以选择了 Ubuntu Server 16.04.1 LTS。不过我第一次部署纯命令操作系统,部署的过程中还是遇到一些小麻烦,不过办法总比困难多嘛!

root登录

首先,使用ssh命令在终端登录到远程主机

achuan@achuan-pc:~$ sudo ssh ubuntu@139.199.105.72
[sudo] achuan 的密码: 
ubuntu@139.199.105.72's password:
The authenticity of host '139.199.105.72 (139.199.105.72)' can't be established.
ECDSA Key fingerprint is SHA256:HNndgD6z/I2L8DzCA5nk9w9CEzHpW9WouGAmkMDR7LK.
Are you sure you want to continue connecting (yes/no)? yes
ubuntu@139.199.105.72's password:
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-130-generic x86_64)

* Documentation:    https://help.ubuntu.com
* Management:       https://landscape.canonical.com
* Support:          https://ubuntu.com/advantage
New release '18.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

Last login: Mon Nov 5 16:38:39 2018 From 119.28.7.195
ubuntu@VM-22-96-ubuntu:~$

这时,登录时命令行出现了警告,它说这是一个新的地址,存在安全风险。简单了解一下之后,我选择面对风险 yes 顺利登入远程主机。
对我来说登入后第一件事莫过于设置root密码

$ sudo passwd root

安装 vim

# 习惯性的更新源...
$ sudo apt-get update
# 安装vim
$ sudo apt-get install vim-gtk
......
Do you want to continue [Y/n]? Y

命令行敲入 vi ,Tab一下,不出问题已经有 vim

配置vim

强迫症的我,简单的配置一下…

$ sudo vim /etc/vim/vimrc

文件内容里有这么一句:syntax on它的意思是“语法高亮”,别注释它!为了提升体验我们需要set一下

set nu          # 在左侧显示行号
set tabstop=4   # tab长度设置为4
set cursorline  # 覆盖文件时不备份
set ruler       # 在右下角显示状态栏
set autoindent  # 自动锁紧
set showmatch   # 高亮显示匹配的括号
# 编码设置
set fencs=utf=uft-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
# 语言设置
set langmenu=zh_CN.UTF-8
set helplang=cn

安装apache

我们使用源安装apache

$ sudo apt-get install apache2

配置apache

启动apache的两种姿势

$ sudo /etc/init.d/apache2 start
# 或
$ sudo service apache2 star
# [start] [restart] [stop] [status]

推送文件到网站根目录

在这里我遇到一个问题

root@achuan-pc:/home/achuan/视频/ubuntu# scp -r htdocs ubuntu@139.199.105.72:/var/www
ubuntu@139.199.105.72's password: 
scp: /var/www/htdocs: Permission denied

用 scp 推送文件夹的时候出现了Permission denied
what the? 我被拒绝了?

想了想原来是网站的根目录/var/www没有写入权限,让我们chmod一下?

$ ssh ubuntu@139.199.105.72
......
$ sudo chmod 777 -R /var/www

已经解决了让我们再 scp 一下!

解决ssh自动断连

这个自动断连就让我很是难受,不管是利用终端还是客户端工具都会出现这个问题,经过了解原来是正常的…
使用ssh连接远程服务器隔段时间没有任何操作,客户端与服务器就会自动断连,解决办法如下:

$ sudo vim /etc/ssh/sshd_config
$ sudo service sshd reload

我们需要修改客户端或服务器端 /etc/ssh/sshd_config 配置文件,找到ClientAliveInterval,改成 60(分钟单位,默认0)意思的每一分钟向客户端发送一个消息,用于保持连接,

VirtualHost配置

关于ubuntu serverd的apache配置文件在/etc/apache2/apache.conf当apache启动时会自动读取这个文件的配置信息,而其他的一些配置文件,则是通过Include指令引入。奇怪的是我找不到httpd.conf,算了自己动手丰衣足食

# 进入apache文件夹 > 创建 httpd.conf
$ cd /etc/apache2/ && sudo vi httpd.conf
# 并写入以下配置内容

# 如果你的服务器有多个IP、不同的虚拟用户时,你可以更改它
<VirtualHost [IP]:[端口]>
...
</VirtualHost>

<VirtualHost *:80>
	ServerAdmin achuan@achuan.io         # 网站管理员邮箱,可填可不填
	DocumentRoot "/var/www/chenbtpig"    # 网站根目录
	ServerName chenchen1112.cn           # 域名
	<Directory "/var/www/chenbtpig">	 # 网站根目录权限设置
		Options Indexes FollowSymLinks   # 禁止显示Apache目录
		AllowOverride All				 # 允许重写apache默认配置
		Order allow,deny				 # 允许所有
		Allow from all
	</Directory>
	Errorlog "logs/chenchen1112.cn-error.log"   # 网站错误日志
	CustomLog "logs/chenchen1112.cn-access.log" common   # 网站访问日志
</VirtualHost>

<VirtualHost *:80>
	ServerAdmin achuan@achuan.io
	DocumentRoot "/var/www/code_rain"
	ServerName lmissyou.club
	<Directory "/var/www/code_rain">
		Options Indexes FollowSymLinks
		AllowOverride All
		Order allow,deny
		Allow from all
	</Directory>
	Errorlog "logs/lmissyou.club-errpr.log"
	CustomLog "logs/lmissyou.club-access.log" common
</VirtualHost>

# 打开apache配置文件并写入“Include httpd.conf”
$sudo vim /etc/apache2/apache2.conf

# 修改hosts /etc/hosts
$ sudo vi /etc/hosts
# 写入 IP与域名
# 139.199.105.72 www.chenchen.1112.cn

网站首页的优先级

#用于VirtualHost括号内,优先级从左往右依次降低
DirectoryIndex index.php index.html

错误日志

# 用于VirtualHost括号内,在apache配置目录应有logs文件夹,没有自己创建
Errorlog "logs/chenchen1112.cn-error.log"

访问日志

CustomLog "logs/chenchen1112.cn-access.log" common

错误页面的显示

ErrorDocument 404/missing.html

安装php5.6

# 添加PPA源
$ sudo add-apt-repository ppa:ondrej/php
# 若报错或没有发现命令则执行 $ sudo apt-get install python-software-properties
# 习惯性的更新源...
$ sudo apt-get update
# 安装php5.6
$ sudo apt-get install php5.6
# 验证版本
$ sudo php -v

apache2.conf文件,这个文件通过包含其他配置文件涵盖了所 让我们写个试试?

# 进入www并创建新文件index.php
$ cd /var/www && sudo vi index.php
# 写入到index.php	
<?php
phpinfo();
?>

配置php

ubuntu serverd的php配置文件在/etc/php/5.6/apache2/php.ini
近期发现php的时区是GMT(格林威治平时),而不是GMT+8(东八区)它们的显示时间会相差8个小时,这怎么行!

# 打开php.ini配置文件
$ sudo vi /etc/php/5.6/apache2/php.ini
# 找到 date.timezone 并赋值 PRC(中华人民共和国英文缩写) date.timezone = PRC

输入我的公网ip查看一下
Alt text

安装mysql

# 习惯性的更新源...
$ sudo apt-get update
# 安装mysql服务器与客户端,安装时会有两次交互,关于mysql密码的设置
$ sudo apt-get install mysql-server mysql-client

# 查看安装是否成功
$ sudo netstat -tap | grep mysql

root@VM-22-96-ubuntu:/etc/mysql/mysql.conf.d# sudo netstat -tap | grep mysql
tcp6       0      0 [::]:mysql              [::]:*                  LISTEN      7818/mysqld   

配置mysql

启动mysql的两种姿势

$ sudo /etc/init.d/mysql start
# 或
$ sudo service mysql star
# [start] [restart] [stop] [status]

远程连接mysql

ubuntu serverd的mysql配置文件在/etc/mysql/mysql.conf.d/mysqld.cnf

# 修改配置文件的端口绑定	
$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
# 注释掉 bind-adress = 127.0.0.1
# 进入数据库
$ mysql -u root -p
# 选择使用的数据库
mysql> use mysql;
# 修改host值(以通配符 % 增加主机/IP地址)当然你可以可以直接增加IP
mysql> update user set host = '%' where user = 'root';
# 让权限立即生效
mysql> flush privileges;
# 查看修改是否成功 **%         | root**说明远程连接已经开启 
mysql> select host, user from user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | root             |
| localhost | debian-sys-maint |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+


# 如下连接成功!

achuan@achuan-pc:/etc/apache2$ mysql -h 139.199.105.72 -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.24-0ubuntu0.16.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

修改数据库编码

由于mysql默认编码为latin如果不修改的话中文会导致数据库乱码报错,所以我们要修改为utf8

# 打开my.cnf配置文件
$ sudo vi /etc/mysql/my.cnf
# 写入以下代码

[mysqld]
character-set-server = utf8
[client]
default-character-set = utf8
[mysql]
default-character-set = utf8

# 查看数据库编码
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

安装phpmyadmin

不必要的情况下我还是喜欢可视化的操作mysql,开源的phpmyadmin就很不错!

# 习惯性的更新源...
$ sudo apt-get update
# 安装phpmyadmin
$ sudo apt-get install phpmyadmin
# 虽然我们安装好了,但是phpmyadmin基于php环境开发的,所以我们需要把它放到网站的根目录/var/www,我这里在网站的根目录下放了一个软连接。
$ sudo ln -s /usr/share/phpmyadmin /var/www

输入网址即可: http://localhost/phpmyadmin

这次部署Ubuntu Server体会不少,我真是越来越喜欢linux了,它真是一个非常有魅力的系统!哈哈哈,到这里吧,太晚了要回寝室睡觉了–
本篇文章如有写的不足之处,还请您多多指教!88!

章节列表