騰訊雲使用筆記一: 騰訊雲重裝記錄

========騰訊雲重裝記錄================php

安裝時間:2018-09-09 12:15開始,結束時間:mysql

一:重裝操做系統

  1. 進入騰訊雲後臺,微信掃碼登陸
  2. 選擇主機/更多/重裝系統/服務市場/Docker容器/騰訊雲容器服務鏡像Ubuntu(cloud-init)
  3. 安裝的是Ubuntu server 16.04,耗時2分鐘
ubuntu@VM-0-8-ubuntu:~$ sudo uname -a
Linux VM-0-8-ubuntu 4.10.0-32-generic #36~16.04.1-Ubuntu SMP Wed Aug 9 09:19:02 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
//或
ubuntu@VM-0-8-ubuntu:~$ cat /etc/issue
Ubuntu 16.04.1 LTS \n \l
//或
ubuntu@VM-0-8-ubuntu:~$ cat /proc/cpuinfo
processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 79
model name    : Intel(R) Xeon(R) CPU E5-26xx v4
stepping    : 1
microcode    : 0x1
cpu MHz        : 2394.454
cache size    : 4096 KB
physical id    : 0
siblings    : 1
core id        : 0
cpu cores    : 1
apicid        : 0
initial apicid    : 0
fpu        : yes
fpu_exception    : yes
cpuid level    : 13
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch bmi1 avx2 bmi2 rdseed adx xsaveopt
bugs        :
bogomips    : 4788.90
clflush size    : 64
cache_alignment    : 64
address sizes    : 40 bits physical, 48 bits virtual
power management:
  1. 使用xshell(或putty等)遠程登陸服務器,用戶名是ubuntu

二:ubuntu中增長root用戶

給root用戶設密碼nginx

ubuntu@VM-0-8-ubuntu:~$ sudo passwd
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

開啓root的ssh登陸權限
默認 ubuntu是沒有開啓root的ssh登陸權限的,修改sshd配置文件web

// sudo vim /etc/ssh/sshd_config
#PermitRootLogin prohibit-password
PermitRootLogin yes

如今很方便,可使用winscp之類的上傳和編輯文件了sql

三:安裝nginx(與apache2自選一)

ubuntu@VM-0-8-ubuntu:~$ sudo apt-get -y install nginx
//
ubuntu@VM-0-8-ubuntu:~$ nginx -v
nginx version: nginx/1.10.3 (Ubuntu)

有關nginx的命令請參考 ubuntu@VM-0-8-ubuntu:~$ sudo nginx -h
測試
在瀏覽器中輸入http://134.175.42.125/(騰訊雲主機ip地址),顯示Welcome to nginx!,表示安裝成功shell

三: 安裝apache2

ubuntu@VM-0-8-ubuntu:~$ sudo apt-get -y install apache2

四:安裝php7.0

先只裝php,相關擴展根據須要再安裝apache

ubuntu@VM-0-8-ubuntu:~$ sudo apt-get install php7.0
// ubuntu@VM-0-8-ubuntu:~$ sudo apt-get install -y php7.0 libapache2-mod-php7.0 php7.0-common php7.0-gd php7.0-mysql php7.0-mcrypt php7.0-curl php7.0-intl php7.0-xsl php7.0-mbstring php7.0-zip php7.0-bcmath php7.0-iconv php7.0-soap
//當前版本是7.0.30
ubuntu@VM-0-8-ubuntu:~$ php -v
PHP 7.0.30-0ubuntu0.16.04.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.30-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by Zend Technologies

到這裏請配置好nginx,這裏最容易卡住
先初步配置nginxubuntu

五:安裝mysql

中間會要求輸入root密碼vim

ubuntu@VM-0-8-ubuntu:~$ sudo apt-get install mysql-server mysql-client
// 版本是5.7.23-0ubuntu0.16.04.1
ubuntu@VM-0-8-ubuntu:~$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.23-0ubuntu0.16.04.1 (Ubuntu)

到此約10分鐘,如今花點時間在配置上,讓它支持phpapi

ubuntu@VM-0-8-ubuntu:~$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/1.conf
ubuntu@VM-0-8-ubuntu:~$ sudo ln /etc/apache2/sites-available/1.conf /etc/apache2/sites-enabled/1.conf

// 這是史上最短的配置文件
<VirtualHost *:80>
    ServerName www.fangshuixiushan.cn
    DocumentRoot /var/www/fangshuixiushan/cms/www
</VirtualHost>

ubuntu@VM-0-8-ubuntu:~$ su
Password: 
root@VM-0-8-ubuntu:/home/ubuntu# sudo echo -e "<?php\nphpinfo();\n?>"  > /var/www/fangshuixiushan/cms/www/index.php

六:安裝並配置svn服務器

A:安裝

ubuntu@VM-0-8-ubuntu:~$ sudo apt-get install subversion
//版本是1.9.3
ubuntu@VM-0-8-ubuntu:~$ svn --version
svn, version 1.9.3 (r1718519)

B:建立倉庫

不少目錄能夠放subversion文件倉庫,最多見的是/usr/local/svn和/home/svn

// 一個客戶建一個倉庫,方便管理
sudo mkdir -p /home/svn/fangshuixiushan
sudo svnadmin create /home/svn/fangshuixiushan
//說明:先建立目錄(-p多級建立),再在該目錄下新建版本庫
//如今/home/svn/fangshuixiushan/conf/svnserve.conf, passwd ,authz三個配置文件,先備份下
cd /home/svn/fangshuixiushan/conf
ubuntu@VM-0-8-ubuntu:/home/svn/fangshuixiushan/conf$ sudo cp svnserve.conf svnserve.conf.bak
ubuntu@VM-0-8-ubuntu:/home/svn/fangshuixiushan/conf$ sudo cp passwd passwd.bak
ubuntu@VM-0-8-ubuntu:/home/svn/fangshuixiushan/conf$ sudo cp authz authz.bak

C:配置svn

// 快速方法,切換到root後執行下面三條命令
sudo echo -e "[general]\nanon-access=read\nauth-access=write\npassword-db=passwd\nauthz-db=authz\n[sasl]"  > /home/svn/fangshuixiushan/conf/svnserve.conf
sudo echo -e "[users]\naaaa=aaaamima\nbbbb=bbbbmima"  > /home/svn/fangshuixiushan/conf/passwd
sudo echo -e "[groups]\ndevelop=aaaa,bbbb\nmanger=aaaa\n[/]\n@develop=rw\n*=r"  > /home/svn/fangshuixiushan/conf/authz
// sudo vim svnserve.conf  
// /home/svn/fangshuixiushan/conf/svnserve.conf文件的內容以下
[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
[sasl]

// sudo vim passwd
// /home/svn/fangshuixiushan/conf/passwd文件的內容以下
[users]
aaaa=aaaamima
bbbb=bbbbmima

// sudo vim authz
// /home/svn/fangshuixiushan/conf/authz(先備份)
[groups]
develop = aaaa,bbbb
manger = aaaa
[/]
@develop=rw
*=r

D:編輯騰訊雲安全組

添加規則
0.0.0.0/0 TCP:3690 容許 -
不然會拒絕svn訪問

E:本地安裝客戶端TortoiseSVN

不是服務器,是本地安裝,下載地址

F:測試

先重啓svn

svnserve -d -r /home/svn
//若是報錯svnserve: E000098: Can't bind server socket: Address already in use
查下svn當前佔的端口
root@VM-0-14-ubuntu:~# ps -aux | grep svn
root     16960  0.0  0.1  72492   940 ?        Ss   14:29   0:00 svnserve -d -r /home/svn
root     19765  0.0  0.0  13232   880 pts/5    S+   15:20   0:00 grep --color=auto svn
//kill進程
kill -9 16960 
// 或直接killall svnserve關閉
//再啓動
sudo svnserve -d -r /home/svn

倉庫路徑爲 svn://134.175.42.125/fangshuixiushan/
在本地使用TortoiseSVN 檢出(checkout)成功,新建一文件上傳,也成功,ok,萬里長征,完成60%

G: 如何讓svn代碼與web網站同步(這纔是重點)

新建或編輯提交後鉤子

ubuntu@VM-0-8-ubuntu:/home/svn/fangshuixiushan/hooks$ sudo vim post-commit
ubuntu@VM-0-8-ubuntu:/home/svn/fangshuixiushan/hooks$ sudo chmod 777 /home/svn/fangshuixiushan/hooks/post-commit

內容以下

#!/bin/bash
# 基本變量
company=fangshuixiushan #只須要替換這裏就行
export LANG=en_US.UTF-8
dateTime=`date +%F`
dateTimeMinute=`date +%H%M%S`
binSvn=/usr/bin/svn                     # 你svn命令的絕對路徑,若是不知道,請用find / -name svn查找
dirHtmlApp=/var/www/${company}/      # 檢出的web站點根目錄,請先建好,一開始就是一個空目錄,權限爲0666
logFileName=/tmp/${company}_svnhooks_${dateTime}.log #變量名加{}
# svn配置
#   [1] REPOS-PATH   倉庫路徑
#   [2] REV          剛執行修訂版本號
#   [3] TXN-NAME     (the name of the transaction that has become REV)
REPOS="$1" 
REV="$2"

# 檢出或者更新subversion,鉤子的核心功能
echo  "-- $dateTimeMinute" >> $logFileName

# 先要將svn倉庫中的內容檢出到網站對應的目錄中,如何判斷有沒有檢出過呢,就是看是否有文件夾.svn
# 如是檢出過,就直接更新就行

if [ ! -d $dirHtmlApp/.svn ]; then
   # 檢出SVN
   echo "$binSvn co file://$REPOS/  $dirHtmlApp" >> $logFileName
   # 使用命令co檢出
   $binSvn co file://$REPOS/  $dirHtmlApp
   if [ $? -eq 0 ]; then
      echo  "checkout ok"  >> $logFileName
   else
      echo  "checkout error"   >>  $logFileName
   fi
else

   # 更新svn
   echo " $binSvn up $REV $dirHtmlApp " >> $logFileName
   # 使用up命令更新
   $binSvn up $REV $dirHtmlApp   >> $logFileName
   if [ $? -eq 0 ]; then
      echo  "  update sucess "  >> $logFileName
   else
       echo  "  update fial "   >>  $logFileName
   fi
fi
echo  "--" >>  $logFileName
exit 0 #少行,有時會報exit code 255錯誤

建議先用測試下,檢出,上傳,刪除後,確認無誤後再進行批量操做

常見問題

提交、檢出報錯
Unable to connect to a repository at URL 'svn://134.175.42.125/fangshuixiushan'
Can't connect to host '134.175.42.125': 因爲目標計算機積極拒絕,沒法鏈接。
緣由1:svn服務未啓動,執行 svnserve -d -r /home/svn啓動svn服務器

Unable to connect to a repository at URL 'svn://134.175.42.125/fangshuixiushan'
line 1: Section header expected
緣由:通常是本個配置文件格式或哪裏多了空格之類的,也有可能寫掉了什麼如[genereal]

can't open file db/txn-current-lock:permission denied
緣由:權限不夠
post-commit hook failed (exit code 255) with no output.
緣由: post-commit 腳本文件的權限不對,post-commit 腳本必須有 +x 權限。
sudo chmod 777 /home/svn/fangshuixiushan/hooks/post-commit
sudo chmod +x /home/svn/fangshuixiushan/hooks/post-commit
或少了 #!/bin/bash

Can't open file '/home/svn/fangshuixiushan/db/txn-current-lock': Permission denied由於啓動時不是root帳號,就會這樣,vnserve -d -r /home/svn前面別忘了加sudo svnserve -d -r /home/svnphp文件直接下載,不解析由於沒有配置 fastcgi_pass unix:/run/php/php7.0-fpm.sock; 403 forbidden的解決辦法 引發nginx 403 forbidden一般是三種狀況:一是缺乏索引文件,二是權限問題,三是SELinux狀態。post-commit hook failed (exit code 255) with no output.sudo chmod -R 755 /var/www/fangshuixiushan/cms/www

相關文章
相關標籤/搜索