LNMP环境从零搭建(新手推荐)

本文详细记录了如何在华为云服务器上从零搭建LNMP环境,包括服务器选择、SSH连接、一键安装LNMP、域名解析和安全组配置。适合新手参考。
摘要由CSDN通过智能技术生成

文章转载在我们自有公众平台“码农快讯”

阅读原文(码农快讯)

前言

最近在搭建自己公司的官网,将搭建过程记录下来,方便大家在未来的工作中作为参考。

前期准备工作:

①已备案域名

②已实名的阿里云或者华为云账号

③所需软件工具:

SecureCRT(SSH远程服务器)

WinSCP(服务器文件上传工具)

 

1.服务器选择与准备

Linux服务器配置很多,常规的我们根据应用场景来进行选择合适的即可。高计算需求的,使用cpu/内存比为1:4,普通使用场景使用cpu/内存比为1:2或者1:1即可。

由于我要做一个简单的官方服务器,考虑到资金问题,选择了华为云的2核4G,5M带宽的这台服务器,如下图:

499用一年,是不是特别划算?这里有个小技巧,机房位置的选择要依据自身所搭建应用的大部分人群所在区域,这样未来主要用户区域的访问速度较快。依据这一原则,我的选择是上海区域机房。

 

紧接着,我们需要选择服务器的具体配置,如上图,几个重点:

A.可用区:指在同一地域下,电力、网络隔离的物理区域,可用分区之间内网互通,不同可用分区之间物理隔离。如果我们需要建立集群服务器,负载均衡,文件服务器等需要良好的互通环境,建议多台服务器选择同一可用区。

B.系统盘及数据盘选择可以依据如下图

C.安全组:熟悉Linux服务器的同学们应该都知道iptables,安全组概念类似于Linux防火墙,可以轻松的设置端口开放/关闭。

D.云镜像:镜像有两种,一种是纯系统镜像,一种是含有web运行环境及安全策略的集成镜像(阿里云镜像市场可选购),如果非专业运营,建议直接选择成熟的web运行环境镜像。

服务器购买完成后,即可开始我们的web环境搭建。

 

2.SSH连接登录服务器

我们使用已经安装好的SecureCRT通过SSH连接进入我们刚刚的服务器,注意此时SSH所需的22端口必须是打开的,可以通过云服务器官网内的安全策略进行配置。

 

SecureCRT配置

调整SecureCRT为传统Linux颜色:

Options -> Session Options...

3.一键安装LNMP环境

如果你是一名专业的运营,建议分别下载对应的安装源文件进行安装,这些的安装定制程度高,易于维护,不过切记做好文档记录,方便及时查阅。

这里,我们使用一键环境安装:oneinstack安装步骤如下:

  • 生成软件包信息缓存

yum makecache
  • 安装更新

yum update -y
  • 安装必要软件

yum install -y zip unzip wget curl git vim zsh nano screen
  • 开始搭建LNMP

//下载oneinstack安装包
wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz
//解压安装包
tar xzvf oneinstack-full.tar.gz
cd oneinstack

//执行安装脚本进行自动安装
./install.sh
  • 安装选项

1.设置SSH端口(默认22),回车即可;
2.然后选择是否安装web,输入y;
3.输入1安装nginx;
4.输入3不安装Apache;
5.输入5不安装tomcat;
6.然后选择是否安装数据库database,输入y;
7.输入2安装mysql-5.6;//根据需求自由选择
8.然后输入数据库root密码回车(注:记录生成的root密码,并妥善保管);
9.然后输入1选择从二进制安装;
10.然后输入y安装PHP;
11.输入5安装PHP7.0;
12.输入y安装php缓存插件[y/n]:y;
13.输入1安装ZendOPcache;
14.输入y安装PHP扩展;
15.选择PHP扩展,常用的如:fileinfo,redis,memcache,mongodb,xdebug;
16.输入n不安装Pure-FTPd;
17.输入n安装phpMyAdmin;// 建议使用navicat数据库管理工具
18.输入y安装redis;// 根据实际需求
19.输入n不安装memcached;// 根据实际需求
20.输入n不安装HHVM;
  • Web站点配置

//进入oneinstack目录
cd oneinstack
// 执行vhost配置脚本
./vhost.sh 

What Are You Doing?
        1. Use HTTP Only
        2. Use your own SSL Certificate and Key
        3. Use Let's Encrypt to Create SSL Certificate and Key
        q. Exit
// 这里我们选择1,后面的文章交大家配置证书,及HTTPS访问

// 输入域名
Please input domain(example: www.example.com):

// 配置web目录,若无规定,直接默认即可
Please input the directory for the domain:www.test.com :
(Default directory: /data/wwwroot/www.test.com): 

// 自动配置301跳转
Do you want to add more domain name? [y/n]:y
Do you want to redirect from test.com to www.test.com? [y/n]:y

// 防盗链设置,可先n
Do you want to add hotlink protection? [y/n]: n

// 配置rewrite规则,常见的PHP框架rewrite rule都有
Allow Rewrite rule? [y/n]: y

Please input the rewrite of programme :
wordpress,opencart,magento2,drupal,joomla,codeigniter,laravel
thinkphp,pathinfo,discuz,typecho,ecshop,nextcloud,zblog,
whmcs rewrite was exist.
(Default rewrite: other): codeigniter

// 配置Nginx访问日志,建议前期调试开启,后期可关闭
Allow Nginx/Tengine/OpenResty access_log? [y/n]: y
You access log file=/data/wwwlogs/
  • 查看配置文件

cat /usr/local/nginx/conf/vhost/

// 配置文件如下
// 注意我们刚刚配置的301跳转
server {
  listen 80;
  listen [::]:80;
  server_name www.test.com test.com;
  access_log /data/wwwlogs/www.test.com_nginx.log combined;
  index index.html index.htm index.php;
  root /data/wwwroot/www.a.com;
  
  include /usr/local/nginx/conf/rewrite/codeigniter.conf;
  #error_page 404 /404.html;
  #error_page 502 /502.html;

  location ~ [^/]\.php(/|$) {
    #fastcgi_pass remote_php_ip:9000;
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    set $path_info $fastcgi_path_info;
    fastcgi_param PATH_INFO $path_info;
    try_files $fastcgi_script_name =404;
  }

  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
    expires 30d;
    access_log off;
  }
  location ~ .*\.(js|css)?$ {
    expires 7d;
    access_log off;
  }
  location ~ /(\.user\.ini|\.ht|\.git|\.svn|\.project|
  LICENSE|README\.md) {
    deny all;
  }
}

4.域名解析

至此,我们的LNMP环境搭建完成,我们下一步需要将已经实名认证完成的域名解析到我们的服务器内。

注意:香港及海外服务器无需实名认证即可解析,国内服务器必须完成实名才可解析。

记录类型:

A:将域名指向一个IPV4地址

AAAA:将域名指向一个IPV6地址

CNAME:将域名指向另外一个域名,一般配置CDN时使用

MX:将域名指向邮箱服务器

 

5.域名访问

我们输入此次解析的网址,发现访问直接错误,网络未连接。检查发现,我们选择的安全组策略中,仅默认开启了22端口,并未开启80端口,在安全组内配置80端口后,访问正常。

 

注意,我们通常需要开通的端口如下:

80端口:HTTP访问端口

443端口:HTTPS访问端口

22端口:SSH远程连接端口

3306端口:外部访问MySQL数据库端口

 

其它常见端口类型参照上图。

 

所有文章都会在我们微信公众平台“码农快讯”第一时间发布

扫码关注我们

阅读原文(码农快讯)​​​​​​​

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值