Logo

从零开始在linux下搭建wordpress博客

photo

2021年12月11日

一,准备linux环境
本地虚拟机可以忽略第一部分

 

微博以及微信的公共平台现在正火的一塌糊涂。既然博客已经上线,准备把一些过程写一下,省的以后我自己忘了。就当留个纪念吧,好歹花了这么长时间。

 

全文的操作环境为debian。其他linux发行版区别不大。

 

没有vps的可以在电脑上装个linux虚拟机试试,都一样的。

登入vps

 

Windows下我一直用的是putty,linux下就不多讲了,ssh就行。在linux的shell下输密码是不显示的。

 

修改root密码
  1. passwd

复制代码

添加新用户

 

一天到晚用root进行操作我觉得是件蛮危险的事…
  1. adduser username

复制代码

username改成你自己的。

 

新用户添加到sudo

 

就是给用户添加root权限。
  1. nano /etc/sudoers

复制代码

找到User privilege specification,在下面插入一行

  1. username    ALL=(ALL:ALL) ALL

复制代码

cntrl+o 写入,cntrl+x退出,也可以直接cntrl+x退出,会提示是否保存修改,输入y保存,cntrl+c取消返回。若系统没安装sudo:

  1. apt-get update
  2. apt-get upgrade
  3. apt-get install sudo

复制代码

修改SSH配置文件(谨慎操作)

 

ssh的配置文件默认应该在/etc/ssh/ssh_config,ssh默认使用的端口是22,个人认为使用默认端口是不大安全的。由于1024以下的端口是被linux系统占用的,所以我们改个1025到65536就好。打开配置文件

  1. nano /etc/ssh/sshd_config

复制代码

找到port 22这一行,比如改为2222

  1. port 2222

复制代码

禁止root账户远程连接:

  1. PermitRootLogin no

复制代码

仅使用 SSH Protocol 2:

  1. Protocol 2

复制代码

添加新用户 SSH 访问权限:

  1. AllowUsers username #多用户空格隔开,DenyUsers即禁止访问用户

复制代码

加速SSH登入禁用UseDNS

  1. UseDNS no

复制代码

保存退出,并重启ssh

  1. reload ssh

复制代码

不要退出当前连接,用新建用户和端口登入,若无法登入,请检查ssh配置文件是否出错。

 

参考文章:


二,安装lnmp

lnmp是一系列的开源软件所组成的服务器环境安装包,取自linux,nginx,mysql和php四个单词的首字母。曾经试用过军哥的lnmp一键安装包,安装简单,配置也简单。不过我这种强迫症不喜欢现成的,说实话在这块鼓捣了好久。因为我一直搞不明白nginx的配置。

 

安装mysql:

 

  1. sudo apt-get install mysql-server

复制代码

安装过程中会要求输入root密码,输入即可。安装完成后执行
  1. sudo mysql_secure_installation

复制代码

按提示操作即可。建议禁止root远程登入。

 

安装nginx:

 

Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,由一家俄罗斯公司开发。具体请百度百科。
  1. sudo apt-get install nginx

复制代码

 

安装php:
  1. sudo apt-get install php5-fpm php5-mysql

复制代码

至此所有安装完成

 

启动nginx:
  1. sudo service nginx start

复制代码

这一步若提示[emerg] bind() to 0.0.0.0:80 failed (98:address already in use ),一般是80端口被apache占用所致,杀死所有apache进程:
  1. sudo killall apache2

复制代码

关闭apache的开机启动:
  1. sudo update-rc.d -f apache2 remove

复制代码

在浏览器里访问你的IP(本地虚拟机中则是127.0.0.1),出现Welcome to Nginx,则说明nginx启动成功。

 

nginx配置:
nginx的配置文件在/etc/nginx/nginx.conf,具体设置请参考Nginx战斗准备 —— 优化指南。注意到这个其中的两行:
  1. include /etc/nginx/conf.d/*.conf;
  2. include /etc/nginx/sites-enabled/;

复制代码

nginx下的一个虚拟主机就相当于一个网站,每个虚拟主机的配置文件保存在上面两条路径。为了便于管理,我都是在/etc/nginx/conf.d/下新建conf配置文件。打开nginx的默认配置文件,修改使其支持php:
  1. sudo nano /etc/nginx/sites-enable/default

复制代码

找到server模块,按下修改:
  1. root /usr/share/nginx/www;#网站根目录
  2. index index.php index.html index.htm;
  3. server_name your_IP_address;

复制代码

往下找到location ~ .php$ ,去掉部分注释
  1. location ~ .php$ {
  2.                 fastcgi_split_path_info ^(.+.php)(/.+)$;
  3.         #        # NOTE: You should have “cgi.fix_pathinfo = 0;” in php.ini
  4.         #
  5.         #        # With php5-cgi alone:
  6.         #        fastcgi_pass 127.0.0.1:9000;
  7.         #        # With php5-fpm:
  8.                 fastcgi_pass unix:/var/run/php5-fpm.sock;
  9.                 fastcgi_index index.php;
  10.                 include fastcgi_params;
  11.         }

复制代码

保存修改退出,并重启nginx:
  1. sudo service nginx restart

复制代码

新建一个phpinfo.php:
  1. sudo nano /usr/share/nginx/www/phpinfo.php

复制代码

输入:
  1. <;?php phpinfo(); ?>;

复制代码

保存退出,浏览器访问ipaddress/phpinfo.php,能正常显示php5-fpm的配置信息说明lnmp环境就搭好了。

 

建议安装phpmyadmin;
  1. sudo apt-get install phpmyadmin
  2. sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/www
  3. sudo service nginx reatsrt

复制代码

安装过程中会提示输入mysql密码和设置root登录密码,安装完成访问ip-address/phpmyadmin,在本地虚拟机中的,就是http://127.0.0.1/phpmyadmin,进行管理数据库,

 

新建一个虚拟主机(添加网站):
复制/etc/nginx/sites-enable/default到/etc/nginx/conf.d/example.conf:
  1. sudo cp /etc/nginx/sites-enable/default /etc/nginx/conf.d/example.conf

复制代码

 

三,lnmp下安装wordpress
当然可以用其他blog程序,比如国产的typecho,不过wordpress更易于食用。
 
下载最新版wordpress
还是下载中文版wordpress吧
把3.8.1改成最新的番号,详见https://cn.wordpress.org/releases/#latest
  1. wegt <a href=”http://cn.wordpress.org/wordpress-3.8.1-zh_CN.tar.gz” target=”_blank”>http://cn.wordpress.org/wordpress-3.8.1-zh_CN.tar.gz</a>

复制代码

解压:
  1. tar -zxvf wordpress*.gz

复制代码

把解压出来的wordpress文件夹移到某个你想放的地方,个人随意。

 

创建数据库
装过phpmyadmin的,此时只要进phpmyadmin页面创建一个名为wordpress的数据库就好,其他默认。否则,进mysql创建吧。进入mysql:
  1. mysql -u root -p

复制代码

创建一个名为wordpress的数据库:
  1. create database wordpress;

复制代码

以后要是想修改wordpress数据库里的内容:
  1. use wordpress;

复制代码

这里涉及到mysql命令语句,有兴趣的可以研究一下,不然装个phpmyadmin吧。

 

安装wordpress
为了安全考虑,修改下web根目录的权限。我习惯直接将解压出来的wordpress目录当作网站的跟目录。
  1. sudo chown www-data:www-data * -R
  2. sudo usermod -a -G www-data username

复制代码

www-data是ngimx的默认运行用户。
创建wordpress的nginx配置文件:
  1. sudo nano /etc/nginx/conf.d/wordpress.conf

复制代码

把下面这段扔进去:
  1. server {
  2.         listen 80 ;#default_server;
  3.         #listen [::]:80 default_server ipv6only=on;
  4.         root 这里写网站根目录;
  5.         index index.php index.html index.htm;
  6.         # Make site accessible from http://localhost/
  7.         server_name 127.0.0.10;#换成自己的域名或者IP
  8.         location / {
  9.                 #try_files $uri $uri/ =404;
  10.         try_files $uri $uri/ /index.php?q=$uri&$args;#伪静态
  11.         }
  12.         error_page 404 /404.html;
  13.         error_page 500 502 503 504 /50x.html;
  14.         location = /50x.html {
  15.                 root /usr/share/nginx/html;
  16.         }
  17.         location ~ \.php$ {
  18.                 fastcgi_split_path_info ^(.+\.php)(/.+)$;
  19.                 fastcgi_pass unix:/var/run/php5-fpm.sock;
  20.                 fastcgi_index index.php;
  21.                 include fastcgi_params;
  22.         }
  23. }

复制代码

直接将/etc/nginx/sites-available/default里的内容复制进去也可以:
  1. sudo cp /etc/nginx/sites-available/default  /etc/nginx/conf.d/wordpress.conf

复制代码

关于wordpress的伪静态规则,上面一种,是wordpress官方给的,网上还可以搜到的比较多见的:
  1. location / {
  2. if (-f $request_filename/index.html){
  3.                 rewrite (.*) $1/index.html break;
  4.         }
  5. if (-f $request_filename/index.php){
  6.                 rewrite (.*) $1/index.php;
  7.         }
  8. if (!-f $request_filename){
  9.                 rewrite (.*) /index.php;
  10.         }
  11. }

复制代码

最好把 /etc/nginx/sites-available/default和/etc/nginx/sites-enabled/default下的配置文件删掉,不然容易出现问题。之后重启nginx:
  1. rm /etc/nginx/sites-available/default/* /etc/nginx/sites-enabled/defaul/*

复制代码

  1. sudo service nginx restart

复制代码

在浏览器输入ip或者域名

橙子主题打折出售

其实我不卖,主要是这里是放广告的,所以就放了一个
毕竟主题都没做完,卖了也是坑.

购买它
所有附件
该文章没有附件
本文为原创文章,请注意保留出处!
linux 安装php8 2021年12月11日

准备工作  创建空文件夹>mkdir/opt/php//创建目录>cd/...linux安装php8

热门文章

SharePoint2010升级到SharePoint2013操作手册 SharePoint2010升级到SharePoint2013操作手册目录第一章...SharePoint2010升级到SharePoint2013操作手册 作者:Pastore Antonio
1700 浏览量
C# DataTable 某一列求和 列为数字类型doubletotal=Convert.ToDouble(datatable.Com...C#DataTable某一列求和 作者:Pastore Antonio
1673 浏览量
修复moss本机访问SharePoint 401.1 HTTP错误 环境:DCServer&...修复moss本机访问SharePoint401.1HTTP错误 作者:Pastore Antonio
1661 浏览量
从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 这一篇是从0开始搭建SQLServerAlwaysOn的第三篇,这一篇才真正开始搭建Alway...从0开始搭建SQLServerAlwaysOn第三篇(配置AlwaysOn) 作者:Pastore Antonio
1627 浏览量
SharePoint REST API – 概述 博客地址:http://blog.csdn.net/FoxDaveSharePointRES...SharePointRESTAPI–概述 作者:Pastore Antonio
1616 浏览量
Adding Docker Repository to CentOS 在CentOS系统上添加Docker官方仓库是安装和管理Docker的第一步。以下是详细...AddingDockerRepositorytoCentOS 2026-02-14 · Xzavier Aaron
Flowise 前端框架配置指南 用户需求问题:有没有适合配置Flowise的前端框架?目标:寻找类似OpenWebUI...Flowise前端框架配置指南 2026-02-14 · Xzavier Aaron
aspnet-wwwroot-error-solution ASP.NETCore启动报错:DirectoryNotFoundExceptionwwwroo...aspnet-wwwroot-error-solution 2025-12-28 · Pastore Antonio
SharePoint Server 出现 ERR_HTTP2_PROTOCOL_ERROR 如果SharePointServer在http的情况下能够访问,但是在https下不能访问报错如...SharePointServer出现ERR_HTTP2_PROTOCOL_ERROR 2025-10-21 · Pastore Antonio
.NET CORE 快速文本搜索器 简单的搜索引擎:usingSystem;usingSystem.Collections.Gen....NETCORE快速文本搜索器 2025-09-25 · Pastore Antonio
Sql Server 部署SSIS包完成远程数据传输 简介与背景在现代数据管理中,如何高效地完成远程数据的更新任务一直是一个重要的挑战。本文的背景起源于...SqlServer部署SSIS包完成远程数据传输 2026-02-14 · Xzavier Aaron
Coolify的使用 简介Coolify是一种功能强大的自托管综合解决方案,旨在简化应用、数据库以及开源服务的托管流程。...Coolify的使用 2026-02-14 · Xzavier Aaron
Coolify的使用 简介Coolify是一种功能强大的自我托管解决方案,专为那些希望掌控自己的应用、数据库以及开源服...Coolify的使用 2026-02-14 · Xzavier Aaron
SharePoint 2019 Web Application Creation 在SharePoint2019中创建WebApplication,可以使用PowerSh...SharePoint2019WebApplicationCreation 2026-02-14 · Xzavier Aaron
vscode使用sftp上传 简介在现代开发环境中,VSCode凭借其强大的扩展性和丰富的功能,成为许多开发者的首选代码编辑器。...vscode使用sftp上传 2026-02-14 · Xzavier Aaron
在现有Seafile 上追加 Azure Blob 磁盘 已有运行中的Seafile(Docker)现有数据保持不变新增几个AzureBlob作为...在现有Seafile上追加AzureBlob磁盘 2025-11-21 · Pastore Antonio
.NET CORE 传统方式调用SharePoint 直接贴代码:usingMicrosoft.SharePoint.Client;usingPnP....NETCORE传统方式调用SharePoint 2025-09-25 · Pastore Antonio
Azure 申请SharePoint 应用 登录后台如下:进入Azure:选择之后进入创建应用:进入之后输入名字按照如下图示点击注册:创...Azure申请SharePoint应用 2025-09-25 · Pastore Antonio
VS中MVC解决方案复制后修改调试端口 我之前是直接去解决方案属性中修改:然后恭喜你,你会喜提报错。正确方式,打开项目属性:这里重置切...VS中MVC解决方案复制后修改调试端口 2025-03-17 · Pastore Antonio
如何在C#WinForms应用程序中显示当前版本信息 在开发C#WinForms应用程序时,向用户展示当前版本信息是一个常见的需求。这不仅可以帮助用户了解...如何在C#WinForms应用程序中显示当前版本信息 2025-03-10 · Pastore Antonio
2022年4月30日 削苹果削了手,太懒不想收藏资料的时候复制粘贴所以开发了一个快速发布的组件。花了2天……浏览量:1...2022年4月30日 2022-04-30 · Pastore Antonio
2021年12月27日 头疼/胸闷/肋条疼/脚脖子疼……没钱……明天要给员工发工资了。浏览量:1,825 2021-12-27 · Pastore Antonio
2021年12月22日 今天天气:多云转晴早上太多雾,但怕迟到还是一路超速……赶到了目的地,在车库绕了四层没一个车位,绕晕...2021年12月22日 2021-12-22 · Pastore Antonio
aspnet-wwwroot-error-solution ASP.NETCore启动报错:DirectoryNotFoundExceptionwwwroo...aspnet-wwwroot-error-solution 2025-12-28 · Pastore Antonio
SharePoint Server 出现 ERR_HTTP2_PROTOCOL_ERROR 如果SharePointServer在http的情况下能够访问,但是在https下不能访问报错如...SharePointServer出现ERR_HTTP2_PROTOCOL_ERROR 2025-10-21 · Pastore Antonio
.NET CORE 快速文本搜索器 简单的搜索引擎:usingSystem;usingSystem.Collections.Gen....NETCORE快速文本搜索器 2025-09-25 · Pastore Antonio
.NET CORE 传统方式调用SharePoint 直接贴代码:usingMicrosoft.SharePoint.Client;usingPnP....NETCORE传统方式调用SharePoint 2025-09-25 · Pastore Antonio
Azure 申请SharePoint 应用 登录后台如下:进入Azure:选择之后进入创建应用:进入之后输入名字按照如下图示点击注册:创...Azure申请SharePoint应用 2025-09-25 · Pastore Antonio
.NET CORE 传统方式调用SharePoint 直接贴代码:usingMicrosoft.SharePoint.Client;usingPnP....NETCORE传统方式调用SharePoint 2025-09-25 · Pastore Antonio
Azure 申请SharePoint 应用 登录后台如下:进入Azure:选择之后进入创建应用:进入之后输入名字按照如下图示点击注册:创...Azure申请SharePoint应用 2025-09-25 · Pastore Antonio
.NET CORE 使用应用方案操作SharePoint Online 世纪互联版 我来为你创建一个.NETCore应用程序,用于向世纪互联SharePointOnline....NETCORE使用应用方案操作SharePointOnline世纪互联版 2025-09-25 · Pastore Antonio
Microsoft Excel 365 的 DCOMCNFG 中缺少 Microsoft Excel 应用程序 试试这个方法:这个方法不是解决你看不看得到,而是配置你看不到也能使用了。原操作方案:Micro...MicrosoftExcel365的DCOMCNFG中缺少MicrosoftExcel应用程序 2025-06-11 · Pastore Antonio
使用SPFX开发SharePoint SE\2019过程中的问题 遇到不能新建ListView控件的,不要怀疑重装就行。装好了去看:C:\Users\Adminis...使用SPFX开发SharePointSE\2019过程中的问题 2025-06-10 · Pastore Antonio
为你的wordpress主题添加支持文章格式 如果你的主题不支持文章格式,首先你需要在functions.php中添加如下类似代码让你的主题支持该...为你的wordpress主题添加支持文章格式 2024-04-17 · Pastore Antonio
wordpress新增文章类型 要在WordPress中添加自定义文章类型,您可以按照以下步骤进行:使用函数创建自定义文章类型:...wordpress新增文章类型 2024-04-17 · Pastore Antonio
去除WordPress登录页面的翻译组件 在主题function.php中添加如下内容:add_filter(‘login_d...去除WordPress登录页面的翻译组件 2023-08-30 · Pastore Antonio
Linux 下Wordpress博客搭建 WordPress#下载安装文件cd/usr/local/nginx/html/blogw...Linux下WordPress博客搭建 2021-12-11 · Pastore Antonio
从零开始在linux下搭建wordpress博客 一,准备linux环境本地虚拟机可以忽略第一部分微博以及微信的公共平台现在正火的一塌糊涂。既...从零开始在linux下搭建wordpress博客 2021-12-11 · Pastore Antonio
centos 常见问题 1:DNS配置域名无法在Linux下解析是一个比较普遍的问题,造成这个问题有很多原因,比如:服务器...centos常见问题 2023-11-08 · Pastore Antonio
linux中查找包含指定内容的文件 文件名+内容根据时间查找日志查询指定时间段内的日志查找关键字只显示包含内容的文件名文件名+...linux中查找包含指定内容的文件 2021-12-11 · Pastore Antonio
Linux 下Wordpress博客搭建 WordPress#下载安装文件cd/usr/local/nginx/html/blogw...Linux下WordPress博客搭建 2021-12-11 · Pastore Antonio
从零开始在linux下搭建wordpress博客 一,准备linux环境本地虚拟机可以忽略第一部分微博以及微信的公共平台现在正火的一塌糊涂。既...从零开始在linux下搭建wordpress博客 2021-12-11 · Pastore Antonio
linux 安装php8 准备工作  创建空文件夹>mkdir/opt/php//创建目录>cd/...linux安装php8 2021-12-11 · Pastore Antonio

最新发布

Sql Server 部署SSIS包完成远程数据传输 简介与背景在现代数据管理中,如何高效地完成远程数据的更新任务一直是一个重要的挑战。本文的背景起源于...SqlServer部署SSIS包完成远程数据传输 转载 2026-02-14
Coolify的使用 简介Coolify是一种功能强大的自托管综合解决方案,旨在简化应用、数据库以及开源服务的托管流程。...Coolify的使用 转载 2026-02-14
Coolify的使用 简介Coolify是一种功能强大的自我托管解决方案,专为那些希望掌控自己的应用、数据库以及开源服...Coolify的使用 转载 2026-02-14
SharePoint 2019 Web Application Creation 在SharePoint2019中创建WebApplication,可以使用PowerSh...SharePoint2019WebApplicationCreation 转载 2026-02-14
vscode使用sftp上传 简介在现代开发环境中,VSCode凭借其强大的扩展性和丰富的功能,成为许多开发者的首选代码编辑器。...vscode使用sftp上传 转载 2026-02-14
aspnet-wwwroot-error-solution ASP.NETCore启动报错:DirectoryNotFoundExceptionwwwroo...aspnet-wwwroot-error-solution #C# 2025-12-28
SharePoint Server 出现 ERR_HTTP2_PROTOCOL_ERROR 如果SharePointServer在http的情况下能够访问,但是在https下不能访问报错如...SharePointServer出现ERR_HTTP2_PROTOCOL_ERROR #C# 2025-10-21
.NET CORE 快速文本搜索器 简单的搜索引擎:usingSystem;usingSystem.Collections.Gen....NETCORE快速文本搜索器 #C# 2025-09-25
.NET CORE 传统方式调用SharePoint 直接贴代码:usingMicrosoft.SharePoint.Client;usingPnP....NETCORE传统方式调用SharePoint #C# 2025-09-25
Azure 申请SharePoint 应用 登录后台如下:进入Azure:选择之后进入创建应用:进入之后输入名字按照如下图示点击注册:创...Azure申请SharePoint应用 #C# 2025-09-25