美文网首页
腾讯云主机搭建NginX服务器

腾讯云主机搭建NginX服务器

作者: loongod | 来源:发表于2018-08-20 18:17 被阅读36次

    第一天:

    先免费试用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"
    
    

    相关文章

      网友评论

          本文标题:腾讯云主机搭建NginX服务器

          本文链接:https://www.haomeiwen.com/subject/xnntrxtx.html