Lemp + Wordpress 快速搭建个人博客
文章目录
- MySql
- Nginx
- PHP
- phpMyAdmin
- phpMyAdmin 高级功能(可选)
- Wordpress
- 配置SSL证书(可选)
- 文件权限的注意事项
- 推荐插件
在开始前,可以先准备好用于搭建个人博客的服务器和域名,或者使用虚拟机练习搭建。服务器选择1cpu 1g内存 1M带宽的最低配置即可,后续若有需要可再升级。购买服务器时请查看平台当前正在进行的活动,通常能以非常低廉的价格购买。系统镜像这里推荐ubuntu,安装软件相对比较简单,centos则需要一定的门槛。另外,选择国内的服务器搭建网站是需要备案的,如不过不打算备案可选择香港或海外的服务器。
我的博客地址: 蓝月枫 Aitsuki
通过博客查看此教程
MySql
sudo apt install mysql-server
sudo mysql
# 创建wordpress数据库、账户、并授权。
create database wordpress;
create user username identified with 'password';
grant all privileges on wordpress.* to username;
flush privileges;
exit
将上面的username和password替换成你想要的用户名和密码,记住这个数据库和账户,之后需要写入到wordpress配置中。
Nginx
sudo apt install nginx
此时用浏览器你的网站就可以看到Nginx的默认首页了。
配置Gzip:https://kinsta.com/blog/enable-gzip-compression/
sudo vim /etc/nginx/nginx.confgzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_min_length 256;
gzip_buffers 16 8k;
gzip_disable "msie6";
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;# 或者使用 sudo service nginx reload
sudo nginx -s reload
PHP
sudo apt install php-fpm
# 安装扩展,这些扩展都是wordpress必备或推荐的。
sudo apt install php-mysql php-gd php-curl php-dom php-mbstring php-imagick php-zip php-gmp php-bcmath
# 7.4是目前最新版本,请替换成你安装的版本,尽量使用7.2以上的。
sudo vim /etc/php/7.4/fpm/php.ini
修改php配置:
# Nginx + PHP CGI的一个可能的安全漏洞,https://www.laruence.com/2010/05/20/1495.html
cgi.fix_pathinfo = 0
# 配置文件上传大小限制(上传媒体库,插件时)
upload_max_filesize = 128M
post_max_size = 128M
# 重启fpm让配置生效
sudo service php7.4-fpm restart
phpMyAdmin
phpMyAdamin是数据库管理工具,某些情况下非常有用。
# 下载phpMyAdamin
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.7/phpMyAdmin-4.9.7-all-languages.tar.gz
# 解压
tar -xf phpMyAdmin-4.9.7-all-languages.tar.gz
# 重命名
mv phpMyAdmin-4.9.7-all-languages phpMyAdmin
# 移动到html目录
sudo mv phpMyAdmin /var/www/html
# 修改目录归属
sudo chown -R www-data:www-data /var/www/html/phpMyAdmin/
配置phpMyAdmin
cd /var/www/html/phpMyAdmin
sudo cp config.sample.inc.php config.inc.php
sudo vim config.inc.php
// 在这里输入32位以内的密码,用于cookie加密,增加安全性。不用记住,尽量设置长点。
$cfg['blowfish_secret'] = '请随意输入32位以内密码';
配置phpMyAdmin的Nginx服务
# 进入sites-available目录
cd /etc/nginx/sites-available/
# 开始为phpMyAdmin配置Nginx服务
sudo vim phpMyAdmin
server {# 输入你希望的端口listen 8100 default_server;listen [::]:8100 default_server;root /var/www/html/phpMyAdmin;index index.php;server_name _;location / {try_files $uri $uri/ =404;}location ~ \.php$ {include snippets/fastcgi-php.conf;fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;}
}
让配置生效
# sites-available 目录保存我们可用的服务配置,而sites-enabled目录则相当于一个开关。
# 将我们想开启的服务软链接到sites-enabled目录即可
sudo ln -s /etc/nginx/sites-available/phpMyAdmin /etc/nginx/sites-enabled/phpMyAdmin
# 检查配置(每次修改配置后都推荐此命令检查)
sudo nginx -t
sudo nginx -s reload
现在登陆网站的8100端口(记得在服务器的安全组中放开对应端口)即可看到phpMyadmin的登陆界面,登陆时的账号密码就是前面MySql命令新建的。
phpMyAdmin 高级功能(可选)
另外phpMyAdmin首页底部可能会提示“phpMyAdmin 高级功能尚未完全设置,部分功能未激活”,不知道所谓的高级功能究竟是什么,如果感兴趣的话可以尝试开启:
sudo mysql
# 执行sql:创建了一个phpmyadmin数据库并创建若干张表
source /var/www/html/phpMyAdmin/sql/create_tabls.sql;
# 创建phpmyadmin数据库的管理账户,将pma和pmapass替换成你需要的
create user pma identified by 'pmapass';
grant all privileges on phpmyadmin.* to pma;
flush privileges;
exit
配置高级功能:
sudo vim /var/www/html/phpMyAdmin/config.inc.php
/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
# 这里输入刚刚创建的用户名和密码
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';/* Storage database and tables */
# 放开下面注释
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
重新登陆phpmyadmin即可。
Wordpress
# 下载wordpress中文版
wget https://cn.wordpress.org/latest-zh_CN.tar.gz
# 解压
tar -xf latest-zh_CN.tar.gz
# 移动到html目录
sudo mv wordpress /var/www/html/
# 更改wordpress的owner和group,与nginx相同(www-data)
# 这是为了避免日后出现各种各样的权限问题
sudo chown -R www-data:www-data /var/www/html/wordpress
配置wordpress的Nginx服务
cd /etc/nginx/sites-available/
sudo vim wordpress
# https://www.digitalocean.com/community/tutorials/how-to-implement-browser-caching-with-nginx-s-header-module-on-ubuntu-16-04
# Expires map
map $sent_http_content_type $expires {default off;text/html epoch;text/css max;application/javascript max;~image/ max;
}server {listen 80 default_server;listen [::]:80 default_server;# 增加上传文件限制大小client_max_body_size 128m;client_body_buffer_size 128m;# 缓存头expires $expires;root /var/www/html/wordpress;index index.php;# 输入你的域名server_name yourdomain.com www.yourdomain.com;location / {# 伪静态try_files $uri $uri/ /index.php?$args;}location ~ \.php$ {include snippets/fastcgi-php.conf;fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;}
}
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/wordpress
sudo nginx -t
sudo nginx -s reload
现在只需要登录你的网站,即可根据wordpress向导完成后续操作。
配置SSL证书(可选)
免费证书可以到 https://freessl.cn/ 这个网站申请,最终你能获得名为xxx.crt, xxx.key 的证书文件和密钥。
将证书和密钥上传到服务器,并放置在/etc/nginx/ssl
目录,目录本身不存在需要创建。也可以放到/etc/ssl
目录,或者其他目录,没有规定。
配置ssl
sudo vim /etc/nginx/sites-available/wordpress
添加以下规则:(原来的80端口改成443端口,然后重新声明一个80端口的服务重定向到443端口的服务)
server {listen 80 default_server;listen [::]:80 default_server;server_name yourdomain.com www.yourdomain.com;return 301 https://$server_name$request_uri;
}server {listen 443 ssl http2;listen [::]:443 http2;ssl_certificate /etc/nginx/ssl/xxx.crt;ssl_certificate_key /etc/nginx/ssl/xxx.key;add_header Strict-Transport-Security "max-age=31536000";ssl_session_cache shared:SSL:20m;ssl_session_timeout 10m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;ssl_ciphers 'ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5';...
}
sudo nginx -t
sudo nginx -s reload
现在证书已部署,访问主页可能出现问题,需要到wordpress后台的设置-常规
配置wordpress地址和站点地址的前缀为https。
文件权限的注意事项
wordpress是部署Nginx上的,用户组是www-data。所以前面教程中就有了更改wordpress目录用户组的操作 sudo chown -R www-data:www-data wordpress
,否则wordpress后台会出现很多权限导致的问题。
另外有的做法是将wordpress的读写权限放开给所有用户chmod 777
,本质上和修改用户组没什么区别,但是前者更安全。
推荐插件
- WP Mail SMTP by WPForms,邮件服务。
- UpdraftPlus,备份。推荐只备份数据库和上传目录。
- WP-Optimize – Clean, Compress, Cache.
- WP Statistics,统计插件,可配合Sakura主题使用。
- WP Githuber MD,markdown编辑器。
- Wordfence Security,安全插件。
- Akismet Anti-Spam,垃圾评论过滤。
- AMP,生成AMP 页面,有利于提升 Google 排名。
- Rank Math SEO,搜索引擎优化。
Lemp + Wordpress 快速搭建个人博客相关推荐
- 阿里云上基于WordPress快速搭建个人博客
阿里云上基于WordPress快速搭建个人博客 文章目录 阿里云上基于WordPress快速搭建个人博客 一.服务器环境: 二.环境部署: 1.重置实例密码 2.链接ECS服务器 3.安装Apache ...
- wordpress 快速搭建个人博客 教程 (一) 搭建lnmp
首先 快速搭建 一个 lnmp 或者 lamp 环境 服务器建议使用云服务 如本教程将用到的 阿里云 web服务器 使用 Nginx 或者 Apache 都可以 本教程使用 Nginx 注意 Ngin ...
- 阿里云ECS服务器+WordPress快速搭建个人博客
本文是转载,但完善了一些细节,精简了部分步骤,以及lnmp一键安装后的一些单独服务启动命令. 开始前准备: 一台阿里云ECS或者轻量级的服务器 Linux基础操作 喜欢捣鼓,善于思考 Windows上 ...
- ghost博客mysql_centos 上快速搭建ghost博客方法分享
1. 介绍 Ghost 是一套基于 Node.js 构建的开源博客平台,具有易用的书写界面和体验,博客内容默认采用 Markdown 语法书写,目标是取代臃肿的 Wordpress.本篇文章主要是介绍 ...
- 如何使用Github+Hexo快速搭建个人博客
如何使用Github+Hexo快速搭建个人博客 可以移步地址:https://zyt505050.gitee.io/2019/01/27/ru-he-shi-yong-github-hexo-kuai ...
- 如何使用华为云快速搭建个人博客
使用华为云快速搭建个人博客 注册github个人账号 下载gitbash并与本地相关联 进入jekyll网站寻找自己喜欢的主题模板并转移到自己的github中 配置模板 登录华为云官网购买域名并配置 ...
- 【FastAPI 03】FastAPI快速搭建一个博客系统
标题:FastAPI快速搭建一个博客系统 大家好,我是Kuls. 这是<小白学FastAPI>系列的第三篇文章. 今天我们主要讲的是FastAPI快速搭建一个博客系统. 这里可能有些小伙伴 ...
- 基于Hexo框架快速搭建个人博客--文章一键发布(五)
基于Hexo框架快速搭建个人博客--文章一键发布 一.文章对比 二.发布到Github 三.一键发布 四.总结 博客链接: 会思想的苇草i 文章链接: 基于Hexo框架快速搭建个人博客–搭建(一) 基 ...
- 手把手教你快速搭建个人博客 Hexo + Github
平时学习查找资料发现了很多个人博客,搭建的很不错,一直想抽空自己也动手实践一下,正好趁着新型冠状肺炎这段宅在家的空,赶紧搭建一下自己的个人博客 先来预览一下博主的个人博客:Fly's Blog 动手能 ...
最新文章
- 用php做一个简单的汇率,vue实现简单实时汇率计算功能
- Numpy之N维数组-ndarray
- 来啦!机器学习画图神器来啦!
- physx选择显卡还是cpu_工控机如何选购cpu,工控机cpu选择盒装好还是散装好
- java 异步事件_处理异步事件的三种方式
- Kubuntu中thunderbird最小化到任务栏
- java 批量入库oracle_java操作Oracle数据库——ARRAY、TABLE类型批量入库
- java dns 解析域名解析_java网络学习 java dns 域名解析协议实现
- c#面试3(选择题)
- 常用的java开发框架_Java开发中常用框架
- java基础之静态代理和动态代理
- resin服务器中间件
- 大二Web课程设计——张家界旅游网站设计与实现(HTML+CSS+JavaScript)
- Enhancement spot 的实现
- java entity tostring_EntityUtils.toString(entity)处理字符集问题解决
- outlook 签名_快速提示:轻松在Outlook 2007中的签名之间切换
- 一键领取php,新款引流必备一键领取名片赞PHP单页源码
- 强迫症 之 Android Studio 格式化 XML
- 数据库基础-储存过程和触发器
- element 走马灯实现图片轮播
热门文章
- Apache整合Tomcat详解系列(三)Apache性能调优
- envi与arcgis文件转换_[转载]ArcGIS、MapInfo、ENVI、MapGIS等矢量格式相互转换
- 什么是大数据思维,数据思维划分哪几个维度?
- Generating Summaries with Topic Templates and Structured Convolutional Decoders笔记
- iframe内嵌标签
- 用python画星空的代码简单-【Python】手把手教你绘制星空旅游线路图
- leaflet地图资源整理
- web前端(1)——了解什么是前端,以及与后端的关系
- linux 中qq的安装程序,linux下的QQ安装、使用方法
- Altium Designer 18 导线转换45°的快捷键