云服务器环境搭建(PHP),并添加vhost虚拟主机配置,把项目放到到nginx下运行

一、购买好云服务器后,会初始化

(注意云服务器开放端口,在安全组策略)


二、安装LNMP一键安装包,安装教程:(https://lnmp.org/install.html),也可以一个一个软件编译安装,但太费事,一般直接一键安装

    这里要注意,选择的是lnmp,不要选择lnmpa。lnmp才有php-fpm,后面用nginx多项目的时候有用到。lnmpa是没用的。下图是相关软件安装目录

    blob.png

安装完成,在浏览器地址栏输入服务器IP显示如图,且示成功。

blob.png

安装成功后,先安装几个工具,以后一定会用到

(如果运行wget等命令报commond not found 不存在,才需要安装,有就不用)

1、安装ifconfig等命令:

yum -y install net-tools 

2、安装wget命令:

yum -y install wget

3、搜索命令

yum install mlocate


 

三、开启远程连接mysql,方便用管理工具navicat、workbench进行连接管理,也可以用phpmyadmin(服务器IP+phymyadmin可以直接访问)(一般用ssh方式连接,如下两张图,如果要用常规,直接连,则要用第三步

blob.png

blob.png

第一步:开启MySQL用户的远程访问权限

1

mysql -u root -p mysql # 第1个mysql是执行命令,第2个mysql是系统数据名称

第二步:在MySQL控制台执行:

1

2

3

4

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

# root是用户名,%代表任意主机,'123456'指定的登录密码(这个和本地的root密码可以设置不同的,互不影响)

flush privileges; # 重载系统权限

exit;

(可不选)第三步:1、如果想允许用户root从ip为192.168.137.99的主机连接到MySQL服务:

1

2

grant all privileges on *.* to 'root'@'192.168.137.99' identified by '123456' with grant option;

flush privileges;

 (可不选)第三步:2、设置防火墙,让 3306 端口对外可访问 (但是开了会不怎么安全,一般用SSH连接好点)

1

2

3

4

5

6

iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

# 查看规则是否生效

iptables -L -n # 或者: service iptables status

# 此时生产环境是不安全的,远程管理之后应该关闭端口,删除之前添加的规则

iptables -D INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

注意:上面iptables添加/删除规则都是临时的,如果需要重启后也生效,需要保存修改:

1

service iptables save # 或者: /etc/init.d/iptables save



四、安装FTP,LNMP一键安装包默认是不安装FTP的

本文档介绍在 Linux 云服务器上搭建 FTP 服务的操作。本例使用 CentOS 7.2 64 位系统进行示例,使用 vsftpd 作为 FTP 服务端,FileZilla 作为客户端。

步骤一:安装 vsftpd

  1. 登录云服务器。

  2. 安装软件。输入命令:yum install vsftpd -y

  3. 界面出现“ Complete ! ”,表示已安装完成。

步骤二:启动 vsftpd 服务

  1. 启动服务。输入命令:service vsftpd start

  2. 命令确认是否启动。输入命令:netstat -tunlp,出现图中展示内容即表示已经启动。

    blob.png

  3. 公网访问确认是否启动。在其他联网计算机上,通过命令行:telnet + 云服务器公网 IP + 21进行测试。出现下图内容即表示已经启动。

    blob.png

 

步骤三:编辑 vsftpd 配置文件

  1. 在云服务器中,输入命令:vi /etc/vsftpd/vsftpd.conf

  2. 编辑内容,状态更改为不允许匿名登录。按下键盘【a】开启编辑,将文件中的anonymous_enable=YES改为 anonymous_enable=NO ,修改完成后按下键盘【Esc】,任意位置输入:write保存修改,输入:quit退出编辑。

    blob.png

步骤四:添加 FTP 用户

  1. 添加用户。本例添加名为 ftpuser1 的用户。输入命令:useradd -m -d /home/ftpuser1 -s /sbin/nologin ftpuser1 /sbin/nologin这个设置用户只能通过FTP登陆,不能通过shell登陆。解决办法:运行命令 usermod -s /bin/bash username

  2. 设置用户登录密码。本例为 ftpuser1 用户设置登录密码。输入命令:passwd ftpuser1,输入密码并确认即可。

    blob.png

五、用nginx,添加一个项目(网站),并运行

1、查看nginx配置文件位置命令:nginx  -t

也可以查看lnmp的位置(不同版本可以会有不同,具体以网站  https://lnmp.org/faq/lnmp-software-list.html    上的为准)


运行nginx -t 查找lnmp的nginx配置文件位置,如图,

blob.png

进入nginx 的配置目录下,命令:cd /usr/local/nginx/conf,如下图

blob.png

2、在上图,其中,nginx.conf为nginx的配置文件,vhost目录为虚拟主机目录(就是一个网站/项目,一个配置文件放在此目录下),

在nginx.conf添加一句  :include vhost/*.conf;  这样vhost目录下的所有配置文件都会一起加载。如下图

blob.png

3、进入vhost目录,添加一个项目的配置文件(同IP不同端口效果,同服务器,不同域名多项目效果)

注意:命名可以随意,一般最好跟项目文件名 同名,方便认。

blob.png

4、anyname.conf配置文件内容如下

(熟悉nginx的可以自己写,不熟悉的,可以直接复制,修改相关内容即可,可能存在nginx版本写法问题,没报错,就不管)

blob.png

blob.png

下面是文字版,可直接复制修改

server
    {
        listen 端口 default_server;
        #listen [::]:80 default_server ipv6only=on;
        server_name 域名;
        root  项目目录;
        index index.php index.html index.htm;
        location / {
                    #路由重写
                    if (!-e $request_filename){
                        rewrite ^(.*)$ /index.php?s=$1 last;
                        #rewrite ^/index.php/(.*)$ /index.php?s=$1 last;
                        break;
                    }
                }
        #error_page   404   /404.html;
        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
        #include proxy-pass-php.conf;
        location /nginx_status
        {
            stub_status on;
            access_log   off;
        }
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }
        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }
        location ~ /.well-known {
            allow all;
        }
        location ~ /\.
        {
            deny all;
        }
        error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
            #php支持
        location ~ \.php$ {
                #root           html;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
            }
            #记录日志
        access_log  /home/www/log/wine90access.log;
        error_log  /home/www/log/wine90error_log.log;
    }

注意:如果报以下的错误 

blob.png

首先判断php-fpm是否已经安装,没有安装的情况就需要先安装php-fpm,安装可以参数相关资料。

确定好服务器已经安装了php-fpm之后,查看是否已经启动或者直接重启:

确定好服务器已经安装了php-fpm之后,查看是否已经启动或者直接重启:

[html] view plain copy

  1. [root@izwz9glf2r6p2z8ytslvblz /]# /usr/local/php/sbin/php-fpm start  

启动完成后,重启nginx:

[plain] view plain copy

  1. [root@izwz9glf2r6p2z8ytslvblz /]# service nginx restart  

如果还是报一样错,那就修改php-fpm文件里面的参数,如下图:

查找php-fpm的位置,一般LNMP在

把listen 里的参数改成  127.0.0.1:9000

blob.png

然后重启nginx,就可以了

nginx平滑不中断重启:

lnmp 用:lnmp nginx reload

a、测试NGINX配置文件是否有效

/usr/local/nginx/sbin/nginx -t

b、平滑重启nginx

/usr/local/nginx/sbin/nginx -s reload

猜你喜欢

转载自blog.csdn.net/itbird58/article/details/80492709