腾讯云主机搭建NginX服务器

2018-08-20  本文已影响36人  loongod

第一天:

先免费试用15天的云服务器。
选择的是CenterOS 7系统,系统默认安装的有python 2.7.5

花2块钱买了个.club的域名

身份证没在身边,无法实名认证

使用Mac的终端登录服务器成功

使用腾讯云推荐的网页登录也成功,其实登录成功后也是linux命令。

登录:ssh <username>@<hostname or ip address>
登出:exit
查看当前默认配置:systemctl get-default

graphical.target 表示开机将默认进入图形界面
multi-user.target 表示开机将默认进入文本界面

设置开机进入文本界面:systemctl set-default multi-user.target
查看主机可安装环境:yum grouplist


第二天:

为CenterOS7安装桌面环境

首先执行一句防止系统文件被修改 chattr +i /etc/resolv.conf
然后安装tigervnc(安装后,可以在电脑或者手机上安装VNC Viewer来连接云主机桌面)
yum install -y tigervnc tigervnc-server
-y是自动安装

安装Gnome,安装之前用yum grouplist查看是否支持
yum groupinstall GNOME Desktop
这一步安装需要点时间,中间有提示直接输入y 然后回车,直到出现complete/完毕

VCN的命令

usage: vncserver [:<number>] [-name <desktop-name>] [-depth <depth>]
                 [-geometry <width>x<height>]
                 [-pixelformat rgbNNN|bgrNNN]
                 [-fp <font-path>]
                 [-fg]
                 [-autokill]
                 <Xvnc-options>...

       vncserver -kill <X-display>

       vncserver -list
安装Gnome桌面.png

启动vnc服务 vncserver
第一次执行会提示输入密码,然后再验证输入一次回车,
然后会有个:Would you like to enter a view-only password (y/n)? n
vnc服务端就算搭建好了!

在手机或者电脑上下载vnc客户端
接下来我在Mac上下载了一个VNC Viewer
输入IP:5901连接
然后输入密码就可以看到你的服务器界面了!

我显示出来的桌面比较模糊,可配置画面质量。

重启后桌面显示.png 清晰的时候桌面.png CentOS英文环境.png

但是有个问题,就是汉字显示出来是乱码,英文显示正常的。
因为我云主机上的locale语言是中文,默认安装的系统不知道为啥是中文,但是我重装系统后就变成英文了。

在中文环境下安装gnome,gnome默认语言也是中文,就是在终端ls查看,出来的是 视频,文档之类的中文文件夹名字。

重装系统后,默认英文,在英文环境下,安装gnome桌面后,在终端ls查看,出来的是英文的文件夹。

查看gnome版本 gnome-shell --version
output GNOME Shell 3.25.4

最后搞了一下午,也没把gnome的中文调出来,中间重装系统装了2次。遇到各种问题。

最后回家我把域名实名认证了下。


第三天:

竟然有LANMP这个东西,真的是很方便啊。

腾讯云开发者实验室-CentOS快速搭建PHP环境部署 :
https://cloud.tencent.com/developer/labs/lab/10397

// 执行lanmp shell脚本之后,选择需要安装那些软件
sh lanmp.sh
Select Install
    1 LAMP (apache + php + mysql + zend +  pureftpd + phpmyadmin)
    2 LNMP (nginx + php + mysql + zend + pureftpd + phpmyadmin)
    3 LNAMP (nginx + apache + php + mysql + zend + pureftpd + phpmyadmin)
    4 install all service
    5 don't install is now

之后我在实验室里的主机上实验了一把。

稍微在腾讯实验室里学习了其它几个实验,有其它事情,今天就到此了。


第四天:

// 查看系统的版本
[root@VM_0_17_centos ~]# cat /etc/centos-release
CentOS Linux release 7.2.1511 (Core)

现在centos7.2,按照昨天发的链接,安装的lanmp_laster,但是会在安装mySQL的时候有问题,老是报错。

貌似还不支持7以上.png

最后,我看实验室的推荐CentOS版本是6.9,我就把系统重装到6.9了

然后没有再安装tiger-vnc和桌面Gnome。暂时先不安装,今天任务是写一个接口,能调用就行。😄

然后安装LNMP,就是选择的2安装的,安装过程花了很长时间,估计有50分钟左右。最后一次安装成功。

安装服务器环境成功.png

我又把自己买的域名配置上,到腾讯云-域名服务-我的域名中,点击解析,添加自己的云主机ip地址就行。

域名解析.png

环境安好了,问题是怎么开始写API(Application Programming Interface)呢?

这时,我又发现了一个好东西,php的一个快速、简单、可扩展的框架 ---- Flight中文版教程

然后安装这个Flight需要使用Composer,[中文版教程],(https://docs.phpcomposer.com/00-intro.html)感觉好麻烦啊,先安装Composer吧。

按官网上安装,却安装失败。

[root@VM_0_17_centos ~]# curl -sS https://getcomposer.org/installer | php
-bash: php: command not found
curl: (23) Failed writing body (0 != 16133)

这TM的php怎么找不到了。

在终端中查看php,发现找不到php命令

[root@VM_0_17_centos bin]# php -v
-bash: php: command not found
[root@VM_0_17_centos bin]#

[root@VM_0_17_centos bin]# which php
/usr/bin/which: no php in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/www/wdlinux/mysql/bin:/root/bin)

最后费了九牛二虎之洪荒之力才找到php安装到哪了😄。作为小白不容易啊。

[root@VM_0_17_centos bin]# pwd
/www/wdlinux/phps/55/bin
[root@VM_0_17_centos bin]# ls
pear  peardev  pecl  phar  phar.phar  php  php-cgi  php-config  php-fpm  phpize
[root@VM_0_17_centos bin]#
[root@VM_0_17_centos bin]# ./php -v
PHP 5.5.38 (cli) (built: Aug 23 2018 11:00:49)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend Guard Loader v3.3, Copyright (c) 1998-2014, by Zend Technologies

找到php了,怎么才能在终端中使用php命令呢,参考方法
方法:修改/etc/profile文件使其永久性生效,并对所有系统用户生效,在文件末尾加上如下两行代码

PATH=$PATH:/www/wdlinux/phps/55/bin
export PATH

最后:执行 命令source /etc/profile或 执行点命令./profile使其修改生效,执行完可通过echo $PATH命令查看是否添加成功。

[root@VM_0_17_centos etc]# vi /etc/profile
[root@VM_0_17_centos ~]# source /etc/profile
[root@VM_0_17_centos ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/www/wdlinux/mysql/bin:/root/bin:/www/wdlinux/mysql/bin:/www/wdlinux/phps/55/bin:/www/wdlinux/mysql/bin:/www/wdlinux/phps/55/bin
[root@VM_0_17_centos ~]#
[root@VM_0_17_centos ~]# php -v
PHP 5.5.38 (cli) (built: Aug 23 2018 11:00:49)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend Guard Loader v3.3, Copyright (c) 1998-2014, by Zend Technologies
[root@VM_0_17_centos ~]#

搞定php了,接着安装Composer

[root@VM_0_17_centos ~]# curl -sS https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading...

Composer (version 1.7.2) successfully installed to: /root/composer.phar
Use it: php composer.phar
[root@VM_0_17_centos ~]# mv composer.phar /usr/local/bin/composer
Composer安装成功.png

OK,Composer已经安装成功了,安装Composer就是为了安装Flight的,接着走吧。

安装flight.png

发现这个比较慢,第一次我直接中断了,第二次稍微等了几分钟,就显示信息了。

然后根据Flight的教程配置Nginx服务器。

这个地方有坑啊,我在这搞了好长时间,主要是什么都不懂。

安装LNMP后,我的nginx的配置文件在/www/wdlinux/nginx-1.8.1/conf/nginx.conf 或者 /www/wdlinux/nginx/conf/nginx.conf 其实是用的一个。但是这个nginx.conf中又引用了vhost/*.conf中的配置文件,其中server就是在vhost文件夹中00000.default.conf文件中。

引用Vhost.png

后面的server是我自己瞎搞的时候加的。

vhost中配置.png

关于nginx的配置文件中字段意思,我也不太懂,也看了好久。

原来使用LNMP安装后,nginx+php这个组合已经配置好了。

我在/www/web/default/中安装Flight后,
flight会自动创建一个index.php的文件。

[root@VM_0_17_centos flight]# ls
composer.json  flight  index.php  LICENSE  README.md  tests  VERSION
[root@VM_0_17_centos flight]# pwd
/www/web/default/vendor/mikecao/flight

这时,只要把nginx的配置文件中的root改到flight里就行。

更改后的conf.png

修改nginx配置后,需要重新加载配置:

/www/wdlinux/nginx/sbin/nginx -s reload

然后请求自己的域名,默认实用的就是80端口。

请求域名.png

好了,腾讯云服务器第一阶段就算圆满成功了。


几个常用的nginx命令

要使用nginx命令,需要先找到nginx的安装目录。我的安装在/www/wdlinux/nginx,然后要使用nginx命令时,就用/www/wdlinux/nginx/sbin/nginx -参数

    -c :使用指定的配置文件而不是 conf 目录下的 nginx.conf 。

    -t:测试配置文件是否正确,在运行时需要重新加载配置的时候,此命令非常重要,用来检测所修改的配置文件是否有语法错误。

    -s reload 重载 用于修改配置后重载

    -s stop 停止
#启动nginx
/www/wdlinux/nginx/sbin/nginx -c /www/wdlinux/nginx/conf/nginx.conf

#查看进程
[root@VM_0_17_centos conf]# ps -ef | grep nginx
root     21015     1  0 14:55 ?        00:00:00 nginx: master process /www/wdlinux/nginx/sbin/nginx -c /www/wdlinux/nginx/conf/nginx.conf
www      24296 21015  0 15:57 ?        00:00:00 nginx: worker process
www      24297 21015  0 15:57 ?        00:00:00 nginx: worker process
www      24298 21015  0 15:57 ?        00:00:00 nginx: worker process
root     24343 18101  0 15:58 pts/1    00:00:00 grep nginx


问题总结:

1、重装系统后无法通过ssh登录问题

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:2wtBrkpBU/skUpavzjVs8n2EOo4VeQiDmeCU2wQ3CsU.
Please contact your system administrator.
Add correct host key in /Users/xulong/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/xulong/.ssh/known_hosts:3

原因是RSA key不匹配

根据提示查看本机/home/user/.ssh/目录下,查看有如下3只文件:

id_rsa

id_rsa.pub

known_hosts

从文件名及查看文件内容可以看出:

1,前两个是用ssh-keygen命令生成的私钥和公钥;

2,known_hosts是ssh访问过的PC的公钥记录,当下次访问相同PC时ssh会核对公钥,如果不同则发出警告,避免受到DNS Hijack攻击;

从我们遇到的错误看,明显是known_hosts出了问题。

解决办法:删除/home/user/.ssh/目录下的known_hosts文件中对应的host记录

简单粗暴,如果想快速解决这个问题。

2、启动VNC后,连接VNC无法应:Timed out waiting for a response from the host computer

这个是被 linux 自带防火墙阻挡了。在 linux 防火墙中添加 5900 到 5903 端口即可。

解决方法:sudo /sbin/iptables -I INPUT 1 -p TCP --dport 5901:5910 -j ACCEPT或者直接修改文件/etc/sysconfig/iptables文件,添加一行:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5901:5910 -j ACCEPT
重启iptables服务:
service iptables restart
如果没有iptables.service文件,使用yum安装一下:yum install iptables-services

还是不行,最后我把云主机的安全组的端口改了下(开放5901端口),才好。

3、 VNC Viewer连接后,桌面色彩模糊

我先开始还以为是网速的问题,但是发现这个对网速估计比较高。一直显示不来清晰。后来找到了设置的地方,在VNCViewer中,选中共享的桌面,右键选择PRoperties->Options->Picture quality

vnc显示模糊.png 桌面清晰度设置.png

4、 failed to open stream: Permission denied in /www/web/default/index.php

按Flight教程,index.php中require flight,因为第一次我把Flight安装在根目录root里面了,这个路径 (/root/vendor/mikecao/flight/flight/Flight.php),导致访问的时候权限不够。然后我就在/www/web/default/下下载了一个新的Flight。

2018/08/28 16:26:59 [error] 25721#0: *103 FastCGI sent in stderr: "PHP message: PHP Warning:  require(/root/vendor/mikecao/flight/flight/Flight.php): failed to open stream: Permission denied in /www/web/default/index.php on line 2
PHP message: PHP Fatal error:  require(): Failed opening required '/root/vendor/mikecao/flight/flight/Flight.php' (include_path='.:/www/wdlinux/phps/55/lib/php') in /www/web/default/index.php on line 2" while reading response header from upstream, client: 58.132.214.66, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-55-cgi.sock:", host: "www.loongcn.club"

上一篇下一篇

猜你喜欢

热点阅读