Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >用OpenBSD的httpd在OpenBSD 6.5上运行WordPress

用OpenBSD的httpd在OpenBSD 6.5上运行WordPress

原创
作者头像
cnllww
修改于 2022-10-20 06:08:01
修改于 2022-10-20 06:08:01
1.7K00
代码可运行
举报
文章被收录于专栏:OpenBSD中文文档OpenBSD中文文档
运行总次数:0
代码可运行

翻译:柳尉 本文链接 原文链接

2019-09-20


介绍

OpenBSD安装越接近默认值、并且没有添加多少包,它就越安全。虽然WordPress更常见的设置是使用Apache和PHP,但使用OpenBSD的内置httpd绝对是可行的(而且更可取)。本教程将让您完成获取一个Let's Encrypt证书、一个WEB服务器和WordPress的完整设置。您需要root用户访问权限才能执行此操作。

如果您还没有这样做,您需要创建一个/etc/doas.conf文件,doas命令是OpenBSD对sudo命令的简单替代。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su -
echo "permit nopass keepenv :wheel" > /etc/doas.conf

我们必须告诉OpenBSD安装包的网络位置,写入/etc/installurl文件中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
doas su
echo "https://cdn.OpenBSD.org/pub/OpenBSD" > /etc/installurl
exit

现在我们必须添加PHP和WordPress需要的一些额外模块,以便处理图像和加密等事情。输入以下命令,当出现提示时,选择安装最新的PHP包。您还需要将模块配置文件.ini从示例目录复制到主目录,必须这样做才能启用这些PHP模块。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
doas pkg_add -r mariadb-client mariadb-server php php-curl php-mysqli pecl73-mcrypt pecl73-imagick
doas su -
cp /etc/php-7.3.sample/* /etc/php-7.3/.

获取Let's Encrypt证书

OpenBSD有一个很好的应用程序,叫做acme-client ,这个小小的创新应用将为您生成帐户密钥、私钥,并为您获取证书。acme-client依赖于一个WEB服务器,因此我们定义了一个快速的默认服务器。

使用您喜欢的编辑器,创建/etc/httpd.conf,我们稍后还会将其他服务器定义添加到此文件中。我们现在需要做的是准备httpd来执行质询响应,以获得免费、有效的SSL证书

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
prefork 5
types { include "/usr/share/misc/mime.types" }
server "default" {
 listen on egress port 80
 root "/htdocs"
 directory index "index.html"
 location "/.well-known/acme-challenge/*" {
 request strip 2
 root "/acme"
 }
}

同时使用您喜爱的编辑器,创建/etc/acme-client.conf 。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
authority letsencrypt {
 api url "https://acme-v01.api.letsencrypt.org/directory"
 account key "/etc/acme/letsencrypt-privkey.pem"
}
authority letsencrypt-staging {
 api url "https://acme-staging.api.letsencrypt.org/directory"
 account key "/etc/acme/letsencrypt-staging-privkey.pem"
}
domain example.com {
 alternative names { www.example.com }
 domain key "/etc/ssl/private/example.com.key"
 domain full chain certificate "/etc/ssl/example.com.fullchain.pem"
 sign with letsencrypt
}

启用并启动httpd,然后获取颁发的证书,您将看到已颁发的证书。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
doas rcctl enable httpd php73_fpm
doas rcctl start httpd
doas acme-client -ADFv example.com
doas rcctl stop httpd

添加服务器定义

在获取到Let's Encrypt证书文件后,将以下配置行添加到/etc/httpd.conf中。设置httpd以执行从http到https的重定向,因为您有一个免费的SSL证书,并且您永远不想冒险通过不安全的链接发送登录名和密码。注意这行: location "/posts/*",这一组设置是为了让WordPress的永久链接看起来更漂亮。此外,此配置文件还包含一组防止暴力尝试登录WordPress后台管理页面的方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server "example.com" {
listen on egress port 80
 alias "www.example.com"
 block return 302 "https://$SERVER_NAME$REQUEST_URI"
}
server "example.com" {
 listen on egress tls port 443
 alias "www.example.com"
 root "/htdocs/example.com
 directory index "index.php"
 location "/posts/*" {
 fastcgi {
 param SCRIPT_FILENAME "/htdocs/example.com/index.php"
 socket "/run/php-fpm.sock"
 }
 }
 location "/wp-json/*" {
 fastcgi {
 param SCRIPT_FILENAME "/htdocs/example.com/index.php"
 socket "/run/php-fpm.sock"
 }
 }
 location "/wp-login.php*" {
 authenticate "WordPress" with "/htdocs/htpasswd"
 fastcgi socket "/run/php-fpm.sock"
 }
 #Uncomment the following lines to disable xmlrpc. You increase security 
 #at the expense of being able to use to use 
 #the Android and iPhone WordPress App.
  #location "xmlrpc.php*" {
 # block return 404
 #} 
 location "*.php*" {
 fastcgi socket "/run/php-fpm.sock"
 }
 tls {
 certificate "/etc/ssl/example.com.fullchain.pem"
 key "/etc/ssl/private/example.com.key"
 }
}

创建用于登录WordPress后台管理页面的用户名和密码文件,以提高WordPress管理站点的安全级别。选择一个好的密码,这里将提示您输入用户名和密码,以便运行wp-login.php脚本。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
doas su
cd /var/www/htdocs
htpasswd htpasswd wp_user
chown www:www htpasswd
chmod 0640 htpasswd

准备和配置MariaDB

MariaDB是MySQL的一个替换分支,我们需要为WordPress做一些初始配置及数据库准备工作。

在我们能够有效地使用MariaDB之前,我们需要允许mysql守护进程使用比默认值更多的资源,为此,通过在/etc/login.conf文件底部添加以下条目进行更改。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysqld:\
 :openfiles-cur=1024:\
 :openfiles-max=2048:\
 :tc=daemon:

启用并启动MariaDB。此过程将设置一个root密码并有选择地删除测试数据库,在安装阶段遵循此建议是个好主意。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 doas mysql_install_db
 doas rcctl enable mysqld
 doas rcctl start mysqld
 doas mysql_secure_installation

创建WordPress数据库和数据库用户。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql -u root -p
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
EXIT

安装和配置WordPress

已经有很长一段时间WordPress没有提供官方的OpenBSD安装包了,因为它基本上是开箱即用的。下载、解压缩并移动WordPress安装文件夹即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar xvfz latest.tar.gz
doas mv wordpress /var/www/htdocs/example.com
chown -R www:www /var/www/htdocs/example.com

我们必须将/etc/resolve.conf和/etc/hosts复制到/var/www/etc下面,这样WordPress才能成功运行应用市场,你需要这样才能通过WordPress后面管理站点下载插件和主题。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
doas mkdir /var/www/etc
doas cp /etc/hosts /var/www/etc/.
doas cp /etc/resolv.conf /var/www/etc/.

启动httpd及php73-fpm

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
doas rcctl start httpd php73_fpm

浏览到服务器定义中使用的URL。您将看到WordPress安装向导。对于数据库服务器选项一栏,将localhost替换为127.0.0.1。

一旦WordPress安装完成,就可以设置永久链接了,这样它们看起来更适合搜索引擎优化。从WordPress管理屏幕,转到设置->永久链接(Settings -> Permalinks),单击自定义结构(Custom Structure)并键入/posts/%postname%。进行此更改后,单击“保存更改(Save Changes)”按钮。你现在就能有好看的链接了,例如,永久链接如下所示:https://example.com/posts/example-blog-post

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Nginx从陌生到入门08(完结篇)——部署WordPress&amp;开启HTTPS&amp;301跳转
部署https,你可以在可以免费申请ssl证书的网站上下载证书后再手动配置 ,也可以使用acme.sh 或者宝塔这些来申请。 我这里采用certbot。之前我有介绍过,是一个非常好用的申请ssl程序。
huolong
2023/12/05
3580
Nginx从陌生到入门08(完结篇)——部署WordPress&amp;开启HTTPS&amp;301跳转
挺带劲!这款免费开源的监控系统真强大~
一提到监控系统,大家很快就能想到Zabbix、Prometheus等,今天,民工哥给大家推荐一款绝不逊色 Zabbix 的监控软件 Librenms。
民工哥
2021/05/11
2.7K0
通过 Ngnix 配置解决 WordPress 固定链接 404 问题
排查后原因是 Nginx 配置问题,期间还遇到跳转 https:// 无限死循环的问题,故记录正确完整 Nginx 配置。
轩源
2024/09/29
2610
docker-compose快速搭建wordpress个人网站
先后用过wordpress、GHost搭建过个人博客,Wordpress让人诟病的是相比与GHost的轻量而庞大复杂框架,安装环境依赖复杂,配置繁琐,过程痛苦,升级版本更是糟心,所以长期依赖一直用GHost撑着心血来潮的博客。但是,wordpress对得起复杂架构的是她的普适性,博客是小试身手,各种论坛、企业门户、甚至电商平台也是轻松胜任;其android、ios的APP端入口更是方便随手拍个照片写个感想。docker技术发展,wordpress曾经麻烦的搭建过程就变的很简单。
flavorfan
2021/12/05
1.7K0
docker-compose快速搭建wordpress个人网站
正确使用 acme.sh, 让你的网站永久使用 ssl 证书,It's free!
acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书.
用户1418987
2023/12/06
11.2K1
正确使用 acme.sh, 让你的网站永久使用 ssl 证书,It's free!
【5分钟玩转Lighthouse】搭建WordPress博客
我们本期【5分钟玩转Lighthouse】系列教程中,将为大家介绍如何借力腾讯云Lighthouse实例,快速搭建基于WordPress的个人博客网站。
溪歪歪
2020/09/04
19.4K19
【5分钟玩转Lighthouse】搭建WordPress博客
CentOS7 部署WordPress
依次执行以下命令,进入/usr/share/nginx/html/目录,并下载与解压 WordPress。
ruochen
2021/12/04
1.2K0
Docker获取Let`s Encrypt SSL 证书
为了方便维护、升级,同时也避免破坏本地的开发环境,我这里使用docker方式来运行certbot。整个过程分为两步:首次申请证书和证书更新。
孟斯特
2023/11/15
8660
Nginx服务配置篇·第二课:Wordpress部署安装
上一篇文章我们配置好Nginx以及PHP环境后,这一片就可以直接进行Wordpress的安装了,打造你的第一个博客网站。
我不是程序员110
2022/09/26
6.8K2
Nginx服务配置篇·第二课:Wordpress部署安装
CentOS上安装WordPress(二)
介绍 WordPress 是一个使用 PHP 和 MySQL 的免费开源网站和博客工具。WordPress 是目前互联网上最流行的 CMS(内容管理系统),拥有超过 20,000 个插件来扩展其功能。这使 WordPress 成为快速轻松地启动和运行网站的绝佳选择。 前提条件 你需要使用具有sudo特权的非 root 用户安装和配置 CentOS 7 服务器,并且安装好Nginx,PHP,MySQL 详细步骤参照 CentOS中WordPress博客系统安装之LNMP安装(一) 第一步 - 为 WordPr
玖柒的小窝
2021/10/21
6430
CentOS上安装WordPress(二)
CentOS7.2基于LNMP+WordPress离线安装
编辑配置文件 vi /etc/nginx/conf.d/default.conf
指剑
2022/07/15
4095
CentOS7.2基于LNMP+WordPress离线安装
#重构#64MB内存安装Wordpress(Caddy/PHP7.0/Sqlite)
2017年写过一篇64MB搭建Wordpress文章,当时使用的是Lighttpd/SQLite/PHP5,今年换上比较流行的Caddy+PHP7再来水一篇文章。
子润先生
2021/06/09
3090
Laravel 开发和部署环境搭建
  近来趁着 Ubuntu 20.04 发行版的发布,在台式机上安装了桌面版体验了一下。不知道是因为笔者的台式机(2016年组装的,CPU 还在 Intel 第4代)有点过于陈旧了,还是最新发行版的安装要求变高了,安装完成后总觉得使用起来不是很顺手。用着用着就死机了,键盘和鼠标完全失效。而且原来在 Ubuntu 上的美化操作也不是很好使了,因此就尝试了 Linux Mint 20 发行版(基于 Ubuntu 20.04)。自从安装完成后,体验下来还是比较顺畅,能够成功安装搜狗中文输入法、字体、主题、其他常用软件。于是就萌生了在 Linux Mint 上搭建 Laravel 开发环境的想法。
zhonger
2022/10/28
1.7K0
补充记录腾讯云 DNSPod 域名 API 申请 Let’s Encrypt 泛域名 SSL 证书需要注意的几点
刚写完了腾讯云 DNSPod 域名 API 申请 Let’s Encrypt 泛域名 SSL 证书这篇教程,感觉中间有几点是新手需要注意的,申请 SSL 泛域名过程比较繁杂,有些许不同的环境因素就会导致另外一个结果,特别是第一次配置这个,很难保不遇到意外情况。魏艾斯博客在操作中遇到了一些问题,一一解决之后写出来,补充记录腾讯云 DNSPod 域名 API 申请泛域名 SSL 证书需要注意的几点,不但给自己以后留下一个可查询的记录,同时希望能帮到遇到此类问题的朋友。 1、install socat first
魏艾斯博客www.vpsss.net
2018/06/01
1.8K0
LAMP实现编译安装FPM模式wordpress
Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案.
咻一咻
2020/05/29
3600
LAMP及部署wordpress/phpMyadmin
引言 lamp含义:黄金组合。简要介绍一下下面这四个东西吧。linux,不用说了有很多发行版本,主流的三大版本是Debian系列,RedHat系列,slackware系列。apache,全称叫Apache HTTP Server,是世界使用排名第一的web服务器软件,httpd是超文本传输协议http服务器的主程序。可通过简单的API扩展,将PHP/Perl/Python等解释器编译到服务器中。PHP是全球最好的脚本语言,主要用于web开发,python是高级编程语言,功能也很强大。 mysql和maria
小小科
2018/05/04
1.6K0
LAMP及部署wordpress/phpMyadmin
CentOS 7.5 + PHP 5.6.36 + Nginx 1.14.0 配置笔记
Nginx 配置文件主要分成四部分:main(全局设置)、server(主机设置)、upstream(上游服务器设置,主要为反向代理、负载均衡相关配置)和 location(URL匹配特定位置后的设置),每部分包含若干个指令。main 部分设置的指令将影响其它所有部分的设置;server 部分的指令主要用于指定虚拟主机域名、IP 和端口;upstream 的指令用于设置一系列的后端服务器,设置反向代理及后端服务器的负载均衡;location 部分用于匹配网页位置(比如,根目录“/”,“/images”,等等)。他们之间的关系式:server 继承 main,location 继承 server;upstream 既不会继承指令也不会被继承,它有自己的特殊指令,不需要在其他地方的应用。
赵达
2018/07/16
1.5K0
啊,原来申请数字证书这么简单
数字证书在公开密码算法中扮演着重要的角色,可用于数字签名、密钥协商、身份认证等等。如果要部署 HTTPS 网站,首先就要申请数字证书。
云水木石
2021/04/22
8790
CentOS中WordPress博客系统安装之LNMP安装(一)
介绍 WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统。WordPress具有插件架构和模板系统。截至2018年4月,排名前1000万的网站中超过30.6%使用WordPress。WordPress是最受欢迎的网站内容管理系统。全球有大约30%的网站都是使用WordPress架设网站的。 LNMP 一组开源软件简称,它们通常安装在一起以使服务器能够托管动态网站和 Web 应用程序。这个j简写实际上是一个首字母缩写词,它代表Linux 操作系统,带有Nginx Web 服务
玖柒的小窝
2021/10/21
5040
CentOS中WordPress博客系统安装之LNMP安装(一)
补充记录腾讯云 DNSPod 域名 API 申请 Let’s Encrypt 泛域名 SSL 证书需要注意的几点
刚写完了腾讯云 DNSPod 域名 API 申请 Let’s Encrypt 泛域名 SSL 证书这篇教程,感觉中间有几点是新手需要注意的,申请 SSL 泛域名过程比较繁杂,有些许不同的环境因素就会导致另外一个结果,特别是第一次配置这个,很难保不遇到意外情况。魏艾斯博客在操作中遇到了一些问题,一一解决之后写出来,补充记录腾讯云 DNSPod 域名 API 申请泛域名 SSL 证书需要注意的几点,不但给自己以后留下一个可查询的记录,同时希望能帮到遇到此类问题的朋友。
魏艾斯博客www.vpsss.net
2018/05/07
4.8K10
补充记录腾讯云 DNSPod 域名 API 申请 Let’s Encrypt 泛域名 SSL 证书需要注意的几点
推荐阅读
相关推荐
Nginx从陌生到入门08(完结篇)——部署WordPress&amp;开启HTTPS&amp;301跳转
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验