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

    技术2025-08-31  18

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

    阅读原文(码农快讯)

    前言

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

    前期准备工作:

    ①已备案域名

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

    ③所需软件工具:

    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数据库端口

     

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

     

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

    扫码关注我们

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

     

    Processed: 0.015, SQL: 9