文章转载在我们自有公众平台“码农快讯”
前言
最近在搭建自己公司的官网,将搭建过程记录下来,方便大家在未来的工作中作为参考。
前期准备工作:
①已备案域名
②已实名的阿里云或者华为云账号
③所需软件工具:
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数据库端口
其它常见端口类型参照上图。
所有文章都会在我们微信公众平台“码农快讯”第一时间发布
扫码关注我们
阅读原文(码农快讯)