文章目录

  • 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 快速搭建个人博客相关推荐

  1. 阿里云上基于WordPress快速搭建个人博客

    阿里云上基于WordPress快速搭建个人博客 文章目录 阿里云上基于WordPress快速搭建个人博客 一.服务器环境: 二.环境部署: 1.重置实例密码 2.链接ECS服务器 3.安装Apache ...

  2. wordpress 快速搭建个人博客 教程 (一) 搭建lnmp

    首先 快速搭建 一个 lnmp 或者 lamp 环境 服务器建议使用云服务 如本教程将用到的 阿里云 web服务器 使用 Nginx 或者 Apache 都可以 本教程使用 Nginx 注意 Ngin ...

  3. 阿里云ECS服务器+WordPress快速搭建个人博客

    本文是转载,但完善了一些细节,精简了部分步骤,以及lnmp一键安装后的一些单独服务启动命令. 开始前准备: 一台阿里云ECS或者轻量级的服务器 Linux基础操作 喜欢捣鼓,善于思考 Windows上 ...

  4. ghost博客mysql_centos 上快速搭建ghost博客方法分享

    1. 介绍 Ghost 是一套基于 Node.js 构建的开源博客平台,具有易用的书写界面和体验,博客内容默认采用 Markdown 语法书写,目标是取代臃肿的 Wordpress.本篇文章主要是介绍 ...

  5. 如何使用Github+Hexo快速搭建个人博客

    如何使用Github+Hexo快速搭建个人博客 可以移步地址:https://zyt505050.gitee.io/2019/01/27/ru-he-shi-yong-github-hexo-kuai ...

  6. 如何使用华为云快速搭建个人博客

    使用华为云快速搭建个人博客 注册github个人账号 下载gitbash并与本地相关联 进入jekyll网站寻找自己喜欢的主题模板并转移到自己的github中 配置模板 登录华为云官网购买域名并配置 ...

  7. 【FastAPI 03】FastAPI快速搭建一个博客系统

    标题:FastAPI快速搭建一个博客系统 大家好,我是Kuls. 这是<小白学FastAPI>系列的第三篇文章. 今天我们主要讲的是FastAPI快速搭建一个博客系统. 这里可能有些小伙伴 ...

  8. 基于Hexo框架快速搭建个人博客--文章一键发布(五)

    基于Hexo框架快速搭建个人博客--文章一键发布 一.文章对比 二.发布到Github 三.一键发布 四.总结 博客链接: 会思想的苇草i 文章链接: 基于Hexo框架快速搭建个人博客–搭建(一) 基 ...

  9. 手把手教你快速搭建个人博客 Hexo + Github

    平时学习查找资料发现了很多个人博客,搭建的很不错,一直想抽空自己也动手实践一下,正好趁着新型冠状肺炎这段宅在家的空,赶紧搭建一下自己的个人博客 先来预览一下博主的个人博客:Fly's Blog 动手能 ...

最新文章

  1. 用php做一个简单的汇率,vue实现简单实时汇率计算功能
  2. Numpy之N维数组-ndarray
  3. 来啦!机器学习画图神器来啦!
  4. physx选择显卡还是cpu_工控机如何选购cpu,工控机cpu选择盒装好还是散装好
  5. java 异步事件_处理异步事件的三种方式
  6. Kubuntu中thunderbird最小化到任务栏
  7. java 批量入库oracle_java操作Oracle数据库——ARRAY、TABLE类型批量入库
  8. java dns 解析域名解析_java网络学习 java dns 域名解析协议实现
  9. c#面试3(选择题)
  10. 常用的java开发框架_Java开发中常用框架
  11. java基础之静态代理和动态代理
  12. resin服务器中间件
  13. 大二Web课程设计——张家界旅游网站设计与实现(HTML+CSS+JavaScript)
  14. Enhancement spot 的实现
  15. java entity tostring_EntityUtils.toString(entity)处理字符集问题解决
  16. outlook 签名_快速提示:轻松在Outlook 2007中的签名之间切换
  17. 一键领取php,新款引流必备一键领取名片赞PHP单页源码
  18. 强迫症 之 Android Studio 格式化 XML
  19. 数据库基础-储存过程和触发器
  20. element 走马灯实现图片轮播

热门文章

  1. Apache整合Tomcat详解系列(三)Apache性能调优
  2. envi与arcgis文件转换_[转载]ArcGIS、MapInfo、ENVI、MapGIS等矢量格式相互转换
  3. 什么是大数据思维,数据思维划分哪几个维度?
  4. Generating Summaries with Topic Templates and Structured Convolutional Decoders笔记
  5. iframe内嵌标签
  6. 用python画星空的代码简单-【Python】手把手教你绘制星空旅游线路图
  7. leaflet地图资源整理
  8. web前端(1)——了解什么是前端,以及与后端的关系
  9. linux 中qq的安装程序,linux下的QQ安装、使用方法
  10. Altium Designer 18 导线转换45°的快捷键