之前一直用lamp建站,也推荐给朋友和tg群的群友。但是在实际操作过程中发现了不少问题,以及操作的复杂性。于是在大佬的建议下想要尝试lnmp一键安装脚本,搭建像wordpress这样的博客网站。
过程进行的很顺利,基本没有坑,ssl证书也很好申请以及部署,不得不说Nginx大法实在是好。本期就来讲一讲我用lnmp建站的全过程以及应该注意的地方。
tg交流群:Newlearnerの水群
准备工作
1、一台有公网ip,搭载linux系统的主机。本期教程使用1c1g的vps,搭载Centos7
(并不是说Windows不能建站,内网ip也不是不能用frp,请不要吹毛求疵)
系统需求:
- CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin/Aliyun/Amazon/Mint Linux发行版
- 需要5GB以上硬盘剩余空间,MySQL 5.7,MariaDB 10至少9GB剩余空间
- 需要128MB以上内存(128MB小内存VPS,Xen需有SWAP,OpenVZ至少要有128MB以上的vSWAP或突发内存),注意小内存请勿使用64位系统!
- 安装MySQL 5.6或5.7及MariaDB 10必须1G以上内存,更高版本至少要2G内存!。
- VPS或服务器必须已经联网且必须设置的是网络源不能是光盘源,同时VPS/服务器DNS要正常!
- Linux下区分大小写,输入命令时请注意!
- 如有通过yum或apt-get安装的MySQL/MariaDB请自行备份数据等相关文件!
- CentOS 5,Debian 6及之前版本其官网已经结束支持无法使用!
2、打开lnmp官网:传送门(感谢军哥的一键脚本)
3、提前把域名解析到公网ip上
4、基本的linux基础(本篇教程不能解决睿智问题)
LNMP一键包是什么,好在哪里
请允许我直接引用官网:
- LNMP一键安装包是什么?
- 我们为什么需要它?
编译安装需要输入大量的命令,如果是配置生产环境需要耗费大量的时间。
不会Linux的站长或Linux新手想使用Linux作为生产环境……
- 它有什么优势和功能?
无需一个一个的输入命令,无需值守,编译安装优化编译参数,提高性能,解决不必要的软件间依赖,特别针对配置自动优化。
支持自定义Nginx、PHP编译参数及网站和数据库目录、支持生成LetseEcrypt证书、LNMP模式支持多PHP版本、支持单独安装Nginx/MySQL/MariaDB/Pureftpd服务器,同时提供一些实用的辅助工具如:虚拟主机管理、FTP用户管理、Nginx、MySQL/MariaDB、PHP的升级、常用缓存组件Redis/Xcache等的安装、重置MySQL root密码、502自动重启、日志切割、SSH防护DenyHosts/Fail2Ban、备份等许多实用脚本。
- 我们为什么采用LNMP这种架构?
采用Linux、PHP、MySQL的优点我们不必多说。
Nginx是一个小巧而高效的Linux下的Web服务器软件,是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,已经在一些俄罗斯的大型网站上运行多年,目前很多国内外的门户网站、行业网站也都在是使用Nginx,相当的稳定。
Nginx相当的稳定、功能丰富、安装配置简单、低系统资源……
LNMP环境搭建
1 2 3 4 5 6 7 8 9 10 |
#安装screen并运行于lnmp yum install screen screen -S lnmp #下载并解压安装lnmp,脚本开始运行 wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp 如提示wget: command not found ,使用yum install wget 或 apt-get install wget 命令安装。 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
+------------------------------------------------------------------------+ | LNMP V1.5 for CentOS Linux Server, Written by Licess | +------------------------------------------------------------------------+ | A tool to auto-compile & install LNMP/LNMPA/LAMP on Linux | +------------------------------------------------------------------------+ | For more information please visit https://lnmp.org | +------------------------------------------------------------------------+ #安装数据库php,根据自己的内存来安装,建议default You have 10 options for your DataBase install. 1: Install MySQL 5.1.73 2: Install MySQL 5.5.60 (Default) 3: Install MySQL 5.6.40 4: Install MySQL 5.7.22 5: Install MySQL 8.0.11 6: Install MariaDB 5.5.60 7: Install MariaDB 10.0.35 8: Install MariaDB 10.1.33 9: Install MariaDB 10.2.14 0: DO NOT Install MySQL/MariaDB Enter your choice (1, 2, 3, 4, 5, 6, 7, 8, 9 or 0): 2 You will install MySQL 5.5.60 =========================== Please setup root password of MySQL. Please enter: 此处输入密码 MySQL root password: password =========================== Do you want to enable or disable the InnoDB Storage Engine? Default enable,Enter your choice [Y/n]: Y You will enable the InnoDB Storage Engine! =========================== You have 8 options for your PHP install. 1: Install PHP 5.2.17 2: Install PHP 5.3.29 3: Install PHP 5.4.45 4: Install PHP 5.5.38 5: Install PHP 5.6.36 (Default) 6: Install PHP 7.0.30 7: Install PHP 7.1.18 8: Install PHP 7.2.6 Enter your choice (1, 2, 3, 4, 5, 6, 7 or 8): 5 You will install PHP 5.6.36 =========================== You have 3 options for your Memory Allocator install. 1: Don't install Memory Allocator. (Default) 2: Install Jemalloc 3: Install TCMalloc Enter your choice (1, 2 or 3): 1 You will install not install Memory Allocator. Press any key to install...or Press Ctrl+c to cancel |
接着等待一段漫长的时间(可以去看个美剧或者来tg吹水),显示success就表明lnmp安装完成了。
安装好lnmp之后第一件事就是配置虚拟主机,再次提醒进入这一步之前务必将域名解析到ip。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
#输入lnmp vhost add开始配置虚拟机主机 [root@V2ray ~]# lnmp vhost add +-------------------------------------------+ | Manager for LNMP, Written by Licess | +-------------------------------------------+ | https://lnmp.org | +-------------------------------------------+ #输入域名 Please enter domain(example: www.lnmp.org): www.example.com Your domain: www.example.com #该网站其他域名(直接回车,表示不输入) Enter more domain name(example: lnmp.org *.lnmp.org): #分配该域名对应网站路径 Please enter the directory for the domain: www.example.com Default directory: /home/wwwroot/www.example.com: Virtual Host Directory: /home/wwwroot/www.example.com #伪静态,选择y,填写wordpress Allow Rewrite rule? (y/n) y You choose rewrite: none #根据以下选项来配置 Enable PHP Pathinfo? (y/n) n Disable pathinfo. Allow access log? (y/n) n Disable access log. #是否创建数据库(若创建则用户名和数据库名一致) Create database and MySQL user with same name (y/n) y Enter current root password of Database (Password will not shown): OK, MySQL root password correct. #输入数据库名称和密码,用户默认为root Enter database name: wordpressdb Your will create a database and MySQL user with same name: wordpressdb Please enter password for mysql user wordpressdb: password Your password: password #是否添加ssl证书(当然yes),一定要选择2 Add SSL Certificate (y/n) y 1: Use your own SSL Certificate and Key 2: Use Let's Encrypt to create SSL Certificate and Key Enter 1 or 2: 2 It will be processed automatically. Press any key to start create virtul host... #完成配置之后出现续集主机的全部信息 Virtualhost infomation: Your domain: www.example.com Home Directory: /home/wwwroot/www.example.com Rewrite: none Enable log: no Database username: wordpressdb Database userpassword: password Database Name: wordpressdb Create ftp account: no Enable SSL: yes =>Let's Encrypt |
至此,我们搭建好了lnmp环境并为我们的网站配置了虚拟主机~
安装wordpress
我们可以去wp的中文官网直接下载安装包并且解压到/home/wwwroot/www.example.com文件夹里面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#打开目录 cd /home/wwwroot/www.example.com #下载wp安装包 wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz #解压安装包 tar -zxvf wordpress-4.9.4-zh_CN.tar.gz #把解压所得wordpress文件加内容放入网站目录 cp -r wordpress/* /home/wwwroot/www.example.com #赋予权限 chown -R www:www /home/wwwroot/*/* #删除安装包和文件夹 rm -rf wordpress wordpress-4.9.4-zh_CN.tar.gz lnmp restart |
这个时候在浏览器地址栏输入你的域名,可以看见wordpress的配置界面了:
数据库名和密码是刚刚在虚拟主机中设置的,用户默认是root,数据库注意默认localhost(不行的话直接填ip)
收尾
1、自动跳转为https
完成了wp的安装之后,我们输入自己的域名,但是发现默认还是显示http,这时候需要做一个301转发
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#打开Nginx配置文件 vi /usr/local/nginx/conf/vhost/www.lnmp.org.conf 配置修改如下: server { listen 443 ssl; server_name www.example.com; 省略其他配置 } server { listen 80; server_name lnmp.org; return 301 https://www.example.com$request_uri; #加上这一行 } #重启 lnmp restart |
2、图片等素材无法上传怎么办?
网站刚建好就迫不及待的写点什么了,但是发现图片竟然不能上传。这个时候,我们就要登录PHPMyAdmin修改一些数据库配置以达到上传的目的。
找到数据库表中的wp_options并点击,找到upload_path字段,将路径修改为“wp-content/uploads”即可。
3、增加网站的安全性
SSL/TLS安全性评估网站:myssl.com
用lnmp一键脚本搭建好之后由于是自动申请ssl证书以及nginx配置,一般都能达到“A”评级,那么如何上“A+”评级呢?
- 开启HSTS:
HSTS 是 HTTP Strict Transport Security (HTTP 严格安全传输)的缩写。开启了这项设置以后,大部分浏览器会强制性地使用 HTTPS 来请求资源,能够更加有效地保护网站和用户的数据安全。
一般情况(未启用 HSTS),浏览器会允许用户在了解了安全风险之后继续使用不安全的连接来访问,但如果启用了 HSTS,则不允许忽略。
HSTS 这个响应头只能用于 HTTPS 响应;网站必须使用默认的 443 端口;必须使用域名,不能是 IP。而且启用 HSTS 之后,一旦网站证书错误,用户无法选择忽略。(这意味着你需要及时给证书续命)
在nginx配置(location:/usr/local/nginx/conf/vhost/yourdomain.conf)中加上这个http头部信息:
1 |
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; |
- max-age,单位是秒,用来告诉浏览器在指定时间内,这个网站必须通过 HTTPS 协议来访问。也就是对于这个网站的 HTTP 地址,浏览器需要先在本地替换为 HTTPS 之后再发送请求。
- includeSubDomains ,可选参数,如果指定这个参数,表明这个网站所有子域名也必须通过 HTTPS 协议来访问。
总体上手难度不高,全程脚本操作,很省心。Try it!
参考文章:lnmp一键安装官网
还可以改一下nginx.conf中的网站默认目录,或者ip地址直接访问时设置跳转,要不然http://ip/phpmyadmin/就能访问数据库页面,被人爆破就不好了……
我按照你的教程就安装wordpress,安装成功后,我登陆wordpress后台就502,这问题要怎么解决
可以参考 https://lnmp.org/faq/lnmp-Nginx-502-Bad-Gateway.html
另外wp初始化的设置界面「数据库主机」填写“localhost”
您好,可以请问一下您在文章中插入代码是用的什么方法或者工具呢?感觉很漂亮~
目前是在用一款Wordpress的插件Crayon Syntax Highlighter实现代码高亮的,主题是COY。我个人觉得使用prismjs也是挺好的选择。
多谢! XD