Ubuntu 使用教程.md

[TOC]

查看系统版本和环境

uname -a 查看所用的linux版本号
cat /etc/issue 查看所用的linux版本号
lsb_release -a 查看所用的linux版本号
python --version python环境
perl --version perl环境
ruby --version ruby环境
java -version java环境
node -v nodejs环境
gcc --version gcc环境
sudo apt-get install language-pack-zh-hans #配置中文环境
sudo apt-get install zhcon #配置中文环境

安装软件

sudo apt-get update 更新软件源
sudo apt-get upgrade 从软件源处更新软件
sudo apt-get autoremove 自动卸载系统不需要的软件
sudo apt-get install vim 安装vim编辑器
sudo update-alternatives --config editor 默认编辑设置为vim
sudo apt-get install tmux tumx用于保持工作现场
sudo apt-get install lnav 安装终端看访问日志的神器 lnav观看
sudo apt-get install openssh-server 安装ssh-server,可供远程登录
sudo apt-get install git 安装git,用于管理代码
sudo apt-get install unrar 安装rar解压工具,unrar x test.rar解压到当前文件夹
sudo apt-get install zsh 安装zsh 配置oh-my-zsh

Nginx

参考文档
sudo apt-get install libpcre3 libpcre3-dev openssl libssl-dev zlib1g-dev
sudo yum -y install gcc automake pcre pcre-devel zlib zlib-devel open openssl-devel (对比CentOS)
sudo ./configure --prefix=/server/nginx_1_8_2 设置安装位置
sudo make
sudo make install
sudo path/to/nginx 启动
sudo path/to/nginx -s reload 重启
sudo path/to/nginx -s stop 停止
curl localhost 测试是否安装正确
nginx 403 forbidden

使用apt-get安装 lnmp 架构

使用的是root用户
安装mysql

apt-get install mysql-server mysql-client

安装nginx

service apache2 stop  update-rc.d -f apache2 remove apt-get remove apache2
apt-get install nginx
service nginx start
curl localhost # 验证下安装是否成功

安装php-fpm

apt-get install php5-fpm
apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php-apc

配置文件 vim /etc/php5/fpm/php.ini

cgi.fix_pathinfo=0

改变php-fpm监听 vi /etc/php5/fpm/pool.d/www.conf

;listen = /var/run/php5-fpm.sock 
listen = 127.0.0.1:9000

新建个测试文件 vim /usr/share/nginx/html/info.php

<?php phpinfo(); ?>

重新启动php5-fpm service php5-fpm reload
重新启动nginx service nginx reload
错误处理 报错 reload: Unknown instance

sudo pkill php5-fpm; sudo service php5-fpm start

浏览器访问下 localhost/info.php 查看是否支持php以及相关模块

安装 Memcache

sudo apt-get install memcached #安装php memcached 扩展
memcached -d -m 50 -p 11211 -u root #启动一个memcached服务
-d 是启动一个守护进程
-m 指定使用多少兆的缓存空间;
-p 指定要监听的端口;
-u 指定以哪个用户来运行
-l 是监听的服务器ip地址,默认为127.0.0.1
-c是最大并发连接数,默认1024
-P是保存pid文件 如/tmp/memcached.pid
使用telnet测试 memcached 服务
$ telnet localhost 11211 Trying 127.0.0.1…Connected to localhost.

ubuntu 16.04 搭建Ubuntu(16.04) + Apache(2.4) + Mysql(5.7) + PHP(7.0)环境

搭建目标

cky@cky-pc:~/worksapce$ apache2 -v
Server version: Apache/2.4.18 (Ubuntu)
Server built: 2016-04-15T18:00:57
cky@cky-pc:~/worksapce$ mysql --version
mysql Ver 14.14 Distrib 5.7.12, for Linux (x86_64) using EditLine wrapper
PHP 7.0.4-7ubuntu2.1 (cli) ( NTS )
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

安装并配置apache2.4

sudo apt-get install apache2
sudo vim /etc/apache2/apache2.conf
    // 将 <Directory /var/www/>
    // 改成 <Directory "你的目录">
sudo vim /etc/apache2/sites-available/000-default.conf
    // 将 DocumentRoot /var/www/html
    // 改成 DocumentRoot "你的目录"
sudo /etc/init.d/apache2 restart

安装php7.0

sudo apt-get install php7.0
sudo apt-get install libapache2-mod-php7.0

安装更多的模块

sudo apt-get install php7.0[tab]

安装数据库

sudo apt-get install mysql-server mysql-client
sudo apt-get install php7.0-mysql

操作数据库

/etc/init.d/mysql start|stop|restart

搭建lamp开发环境

sudo apt-get install apache2 memcached php5 mysql-server mysql-client php5-memcached curl php5-curl
sudo apt-get install php5-gd php5-mcrypt php5-imagick php5-intl php5-apcu php5-sqlite php5-pgsql php5-mysqlnd
开启 Mcrypt 模块
sudo php5enmod mcrypt
sudo service apache2 restart

apache 相关的

http://blog.csdn.net/u013178760/article/details/45393183 Apache 2.4 Rewrite 模块
http://blog.csdn.net/u013178760/article/details/48436777 Apache2 虚拟主机配置

安装apache

sudo apt-get install apache2

开启和关闭模块

sudo a2enmod rewrite #启用rewrite模块 
sudo a2dismod rewrite #禁用rewrite模块

开启和关闭站点

sudo a2ensite sitename #启用站点 
sudo a2dissite sitename #停用站点

允许使用.htaccess

AllowOverride None 改为 AllowOverride  All

重启|开启|关闭apache

sudo service apache2 restart|start|stop             重启|开启|关闭apache 
sudo  /etc/init.d/apache2 restart|start|stop       重启|开启|关闭apache

url重写

http://www.example.com/USA/California/San_Diego  
“/USA/California/San_Diego” 是能够Rewrite的字符串!
重写:就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等 

.htaccess

RewriteEnine on 
RewriteRule  ^/t_(.*).html$  /test.php?id = $1#当访问任何以t_开头,以.html结尾的文件时,将$1用与(.*)匹配的字符替换后,访问相应的test.php页面RewriteRule ^/test([0-9]*).html$ /test.php?id=$1RewriteRule ^/new([0-9]*)/$ /new.php?id=$1 [R]#当我们访问的地址不是以www.163.com开头的,那么执行下一条规则RewriteCond %{HTTP_HOST} !^www.163.com [NC]RewriteRule ^/(.*) http://www.163.com/ [L]

Apache Rewrite规则修正符

1) R 强制外部重定向 
2) F 禁用URL,返回403HTTP状态码。 
3) G 强制URL为GONE,返回410HTTP状态码。 
4) P 强制使用代理转发。 
5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。 
6) N 重新从第一条规则开始运行重写过程。 
7) C 与下一条规则关联 如果规则匹配则正常处理,以下修正符无效 
8) T=MIME-type(force MIME type) 强制MIME类型 
9) NS 只用于不是内部子请求 
10) NC 不区分大小写 
11) QSA 追加请求字符串 
12) NE 不在输出转义特殊字符 \%3d$1 等价于 =$1

核心模块

core_module,so_module,http_module,mpm

全局配置指令

#表示apache2这个软件安装的目录
ServerRoot  "/usr/local/apache2"

#监听端口命令 Listen  ip:portListen  80

#加载动态模块,
LoadModule  模块名   模块路径
LoadModule  php5_module  modules/libphp5.so

#是否加载某个模块容器
<IfModule ></IfMoudle>

#设置先读取 index.php 文件
<IfModule dir_module>
  DirectoryIndex index.php index.html
</IfModule>

#留下管理员邮箱
ServerAdmin 1162097842@qq.com

#用于多个域名访问同一个ip时,辨别它们访问的主机
ServerName pms.com

#设置主机所有文档的根目录
DocumentRoot "/var/www/html" 
# 默认目录访问的文件 
DirectoryIndex index.html index.htm index.php

添加默认字符集  AddDefaultCharset GB2312  
监听ip是192.168.1.1的地址和端口为80创建虚拟目录
Alias /down    "/sofТWare /download"   创建名为down的虚拟目录,它对应的物理路径是:/sofТWare /download
设置目录权限<Directory "目录路径">    此次写设置目录权限的语句        
Options FollowSymLinks  允许符号链接 Options Indexes         允许用户浏览网页目录,(不安全的设置,建议删除)       
AllowOverride None      不允许 .htaccess 重写这个目录,改为 All 则能重写
</Directory>

Set Search Domain

在Ubuntu设置IPv4时,
ip 地址 : 10.10.10.19
子网掩码 : 24
网关: 10.10.10.1
DNS服务器:119.29.29.29,114.114.114.114
搜索域:lingyunstrong.com

cky@cky-pc:~$ ping a
PING a.lingyunstrong.com (183.16.2.95) 56(84) bytes of data.
64 bytes from 183.16.2.95: icmp_seq=1 ttl=64 time=0.595 ms
64 bytes from 183.16.2.95: icmp_seq=8 ttl=64 time=0.655 ms
^C
--- a.lingyunstrong.com ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 6997ms
rtt min/avg/max/mdev = 0.595/0.657/0.683/0.036 ms
cky@cky-pc:~$ 
cky@cky-pc:~$ ping cky
PING cky.lingyunstrong.com (10.10.10.19) 56(84) bytes of data.
64 bytes from 10.10.10.19: icmp_seq=1 ttl=64 time=0.026 ms
64 bytes from 10.10.10.19: icmp_seq=2 ttl=64 time=0.025 ms
^C
--- cky.lingyunstrong.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.025/0.025/0.026/0.005 ms
cky@cky-pc:~$ ping cky.linyunstrong.com
PING cky.linyunstrong.com.lingyunstrong.com (183.16.2.95) 56(84) bytes of data.
64 bytes from 183.16.2.95: icmp_seq=1 ttl=64 time=0.594 ms
64 bytes from 183.16.2.95: icmp_seq=4 ttl=64 time=0.648 ms
^C
--- cky.linyunstrong.com.lingyunstrong.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 0.594/0.629/0.662/0.036 ms
cky@cky-pc:~$ ping a
PING a.lingyunstrong.com (183.16.2.95) 56(84) bytes of data.
64 bytes from 183.16.2.95: icmp_seq=1 ttl=64 time=0.587 ms
64 bytes from 183.16.2.95: icmp_seq=3 ttl=64 time=0.641 ms
^C
--- a.lingyunstrong.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.587/0.628/0.658/0.041 ms
cky@cky-pc:~$ ping baidu.com
PING baidu.com (180.149.132.47) 56(84) bytes of data.
64 bytes from 180.149.132.47: icmp_seq=1 ttl=54 time=36.8 ms
64 bytes from 180.149.132.47: icmp_seq=4 ttl=54 time=39.6 ms
^C
--- baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 36.188/37.903/39.637/1.439 ms
cky@cky-pc:~$ ping sina.com
PING sina.com (66.102.251.33) 56(84) bytes of data.
^C
--- sina.com ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1007ms

安装monaco字体

进入github下载这个字体,github地址是https://github.com/cstrap/monaco-font
sudo ./install-font-ubuntu.sh https://github.com/todylu/monaco.ttf/blob/master/monaco.ttf?raw=true 这个命令

追踪路由

➜  blog git:(master)  sudo traceroute m.dev.yunchongba.com
traceroute to m.dev.yunchongba.com (120.25.71.101), 30 hops max, 60 byte packets
 1  10.10.10.1 (10.10.10.1)  0.587 ms  0.584 ms  0.576 ms
 2  183.15.192.1 (183.15.192.1)  6.095 ms  6.930 ms  6.930 ms
 3  113.106.44.53 (113.106.44.53)  6.070 ms  7.084 ms  7.552 ms
 4  119.145.47.185 (119.145.47.185)  7.049 ms  7.318 ms  7.317 ms
 5  183.56.65.6 (183.56.65.6)  12.428 ms 183.56.65.14 (183.56.65.14)  12.696 ms 183.56.65.18 (183.56.65.18)  11.576 ms
 6  202.97.85.114 (202.97.85.114)  27.501 ms * *
 7  220.191.200.14 (220.191.200.14)  32.215 ms 220.191.200.18 (220.191.200.18)  28.028 ms *
 8  115.236.101.221 (115.236.101.221)  32.115 ms 115.238.21.117 (115.238.21.117)  32.036 ms 115.236.101.213 (115.236.101.213)  34.018 ms
 9  42.120.247.109 (42.120.247.109)  30.852 ms 42.120.247.53 (42.120.247.53)  33.999 ms 42.120.247.57 (42.120.247.57)  30.814 ms
10  42.120.239.138 (42.120.239.138)  58.777 ms  58.821 ms 42.120.242.81 (42.120.242.81)  58.187 ms
11  42.120.239.134 (42.120.239.134)  56.089 ms 42.120.239.158 (42.120.239.158)  52.129 ms 42.120.239.146 (42.120.239.146)  57.078 ms
12  42.120.253.6 (42.120.253.6)  50.913 ms  51.081 ms 42.120.253.2 (42.120.253.2)  54.589 ms
13  42.120.253.6 (42.120.253.6)  50.205 ms * *
点赞