在具有OpenBSD HTTPD的OpenBSD 6.5上运行WordPress

介绍

您越接近将OpenBSD安装保持为默认状态,并且没有添加太多软件包,它将越安全。尽管WordPress的最常见设置是使用Apache和PHP,但绝对有可能(并且更可取)使用OpenBSD的内置httpd。本教程将使您开始全面设置Let's Encrypt证书,Web服务器和WordPress。您将需要root用户访问权限才能执行此操作。

初始配置

如果尚未这样做,则需要创建一个/etc/doas.conf文件。该doas命令是OpenBSD的轻松替代sudo

su -
echo "permit nopass keepenv :wheel" > /etc/doas.conf

我们必须告诉OpenBSD软件包位于何处。这在/etc/installurl文件中发生。

doas su
echo "https://cdn.openbsd.org/pub/OpenBSD" > /etc/installurl
exit

现在,我们必须添加PHP和WordPress将需要的一些额外模块,以处理诸如图像和加密之类的事情。出现提示时,选择安装最新的PHP软件包。您要做的一件事是将模块ini文件从示例目录复制到主目录。为了启用其他PHP模块,必须这样做。

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/.

获取让我们加密证书

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

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

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"
    }
}

还要使用您喜欢的编辑器create /etc/acme-client.conf

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,然后获得颁发的证书。您将看到已颁发证书。

doas rcctl enable httpd php73_fpm
doas rcctl start httpd
doas acme-client -ADFv example.com
doas rcctl stop httpd

添加服务器定义

/etc/httpd.conf在“让我们加密”定义之后,向中添加以下配置行。将httpd设置为执行从http到https的重定向,因为您拥有免费的SSL证书,并且您���远都不想冒险通过不安全的链接发送登录名和密码。请注意location "/posts/*"这一点,这是使WordPress永久链接看起来很漂亮的部分。此外,此配置还包含一种有助于防止暴力尝试登录WordPress管理站点的方法。

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管理站点的安全性。选择一个好的密码。这将提示您输入用户名和密码以运行wp-login.php脚本。

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通过在底部添加此条目来进行以下更改。

mysqld:\
    :openfiles-cur=1024:\
    :openfiles-max=2048:\
    :tc=daemon:

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

 doas mysql_install_db
 doas rcctl enable mysqld
 doas rcctl start mysqld
 doas mysql_secure_installation

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

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安装文件夹。

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管理站点下载插件和主题。

doas mkdir /var/www/etc
doas cp /etc/hosts /var/www/etc/.
doas cp /etc/resolv.conf /var/www/etc/.

启动httpd和php73_fpm

doas rcctl start httpd php73_fpm

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

一旦安装了WordPress,就可以设置永久链接,使它们看起来对SEO更友好了。在WordPress管理屏幕上,转到Settings -> Permalinks。单击Custom Structure并键入/posts/%postname%。进行更改后,单击Save Changes按钮。您现在有了看起来更漂亮的链接。例如,一个永久链接将如下所示:https://example.com/posts/example-blog-post



Leave a Comment

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。