使用OpenBSD的HTTPD在OpenBSD 6.5上运行WordPress

guiyun affiliate

介绍

您越接近将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 suecho "https://cdn.openbsd.org/pub/OpenBSD" > /etc/installurlexit

现在,我们必须添加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 5types { 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_fpmdoas rcctl start httpddoas acme-client -ADFv example.comdoas 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 sucd /var/www/htdocshtpasswd htpasswd wp_userchown www:www htpasswdchmod 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 /tmpwget https://wordpress.org/latest.tar.gztar xvfz latest.tar.gzdoas mv wordpress /var/www/htdocs/example.comchown -R www:www /var/www/htdocs/example.com

我们必须复制/etc/resolve.conf/etc/hosts/var/www/etc这样,WordPress才能成功进入市场。您将需要此文件,以便通过WordPress管理站点下载插件和主题。

doas mkdir /var/www/etcdoas 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


guiyun affiliate

作者头像
南宫俊逸创始人

君子好学,自强不息~

上一篇:Nginx 访问日志分析,并生成柱状图
下一篇:在Fedora 28上安装Fork CMS

相关推荐

4

发表评论