游乐游手机版
首页/系统平台/文章详情

OpenBSD 3.8快速搭建Apache+MySQL+PHP+SSL环境

时间:2026-06-18 07:51
用 OpenBSD 自己提供的二进制软件包来搭建服务器环境,其实是最省心的方法。你当然也可以下载源码包自己编译安装,但那样既费时又费力,还容易踩坑。OpenBSD 官方仓库里已经准备好了大量编译好的二进制包,直接用 pkg_add 安装就行,不仅能保证系统的安全性(毕竟都是官方的签名包),还能自动处

用 OpenBSD 自己提供的二进制软件包来搭建服务器环境,其实是最省心的方法。你当然也可以下载源码包自己编译安装,但那样既费时又费力,还容易踩坑。OpenBSD 官方仓库里已经准备好了大量编译好的二进制包,直接用 pkg_add 安装就行,不仅能保证系统的安全性(毕竟都是官方的签名包),还能自动处理包之间的依赖关系——这一点跟 ports 的方式很像,但更快捷。下面这份文档是在一份英文文档基础上整理补充出来的,具体原始的 E 文出处已经找不到了,但内容经过实践验证,可以直接上手。

首先,设定网络安装服务器的地址:

# export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/3.8/packages/i386/

Apache 服务器配置

Apache 是 OpenBSD 系统默认安装的,所以这一步可以跳过安装,直接进行配置。为了让 Apache 随系统开机启动,需要修改 /etc/rc.conf

# vi /etc/rc.conf

httpd_flags=NO 改为 httpd_flags=""(当然,如果后续要启用 SSL,后面会改成别的)。

然后对 Apache 做基本设置:

# vi /var/www/conf/httpd.conf

ExtendedStatus On
ServerAdmin admin@example.com
ServerName yourserver.com
ServerTokens Prod
ServerSignature Off
Options Indexes FollowSymLinks 改为 Options FollowSymLinks

安装 MySQL Server-4.0.24p1

# pkg_add -v mysql-server-4.0.24p1.tgz
# cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf

如果不希望其他机器连接 MySQL,可以在 /etc/my.cnf 里加上 bind-address = 127.0.0.1

启动 MySQL 服务器:

# /usr/local/bin/mysqld_safe &

设置 root 密码:

# /usr/local/bin/mysqladmin -u root password mypass

为了方便启动和关闭 MySQL 服务,可以创建一个脚本 /etc/rc.d/mysqld.sh

#!/bin/sh
case "$1" in
start)
    if [ -x /usr/local/bin/mysqld_safe ]; then
        /usr/local/bin/mysqld_safe &
    fi
    ;;
stop)
    pkill mysqld &
    rm -f /var/run/mysql/mysql.sock &
    ;;
*)
    echo "$0 start | stop"
    ;;
esac
exit 0
# chmod 555 /etc/rc.d/mysqld.sh

再在 /etc/rc.local 里加入开机启动:

if [ -f /etc/my.cnf ]; then
    /etc/rc.d/mysqld.sh start
fi

安装配置 PHP-4.4.1

# pkg_add -v php4-core-4.4.1p0.tgz
# cp /usr/local/share/examples/php4/php.ini-recommended /var/www/conf/php.ini
# /usr/local/sbin/phpxs -s

因为 OpenBSD 上的 Apache 启用了 chroot 机制,必须为 PHP 创建工作目录:

# mkdir /var/www/tmp
# chmod 1777 /var/www/tmp

下面按需安装几个 PHP 组件,装完后用 phpxs -a 激活:

# pkg_add -v php4-gd-4.4.1p0-no_x11.tgz
# /usr/local/sbin/phpxs -a gd

# pkg_add -v php4-mysql-4.4.1p0.tgz
# /usr/local/sbin/phpxs -a mysql

# pkg_add -v php4-ncurses-4.4.1p0.tgz
# /usr/local/sbin/phpxs -a ncurses

# pkg_add -v php4-imap-4.4.1p0.tgz
# /usr/local/sbin/phpxs -a imap

# pkg_add -v php4-curl-4.4.1p0.tgz
# /usr/local/sbin/phpxs -a curl

# pkg_add -v php4-dbx-4.4.1p0.tgz
# /usr/local/sbin/phpxs -a dbx

# pkg_add -v php4-ldap-4.4.1p0.tgz
# /usr/local/sbin/phpxs -a ldap

# pkg_add -v php4-pdf-4.4.1p0.tgz
# /usr/local/sbin/phpxs -a pdf

# pkg_add -v php4-snmp-4.4.1p0.tgz
# /usr/local/sbin/phpxs -a snmp

最后配置 Apache 支持 PHP。编辑 /var/www/conf/httpd.conf

DirectoryIndex index.html index.php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

再修改 /var/www/conf/php.ini

doc_root = "/htdocs"
register_globals = On

建立测试页:

# vi /var/www/htdocs/test.php

重启 Apache 后访问 https://IP/test.php 即可测试。

# pkill httpd
# /usr/sbin/httpd

限制单 IP 并发连接数

使用 mod_limitipconn 模块可以限制每个 IP 的并发连接数。下载并编译:

# wget https://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz
# tar xzf mod_limitipconn-0.04.tar.gz
# cd mod_limitipconn-0.04
# vi Makefile

将 Makefile 中的 APXS 改为 /usr/sbin/apxs,然后:

# make
# make install

在 Apache 配置中启用:


    
        MaxConnPerIP 5
    

到此,基础环境就已经搭建完毕。

附件部分:SSL 传输配置

如果需要让 Apache 支持 HTTPS,需要额外配置 SSL。首先在 /var/www/conf/httpd.conf 中添加两行:

SSLCertificateFile    /etc/ssl/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key

为了让 Apache 启动时启用 SSL,修改 /etc/rc.conf.local

# vi /etc/rc.conf.local
httpd_flags="-DSSL"

手动启动/停止 SSL 模式可以使用:

# apachectl startssl
# apachectl stop

下面是生成自签名证书的完整步骤:

  1. 创建服务器密钥文件(1024 位):
# /usr/sbin/openssl genrsa -out /etc/ssl/private/server.key 1024
  1. 创建证书签名请求(CSR):
# /usr/sbin/openssl req -new -key /etc/ssl/private/server.key -out /etc/ssl/private/server.csr

按提示填写注册信息即可。

  1. 生成自签名证书(365 天有效):
# /usr/sbin/openssl x509 -req -days 365 -in /etc/ssl/private/server.csr -signkey /etc/ssl/private/server.key -out /etc/ssl/server.crt
  1. 虚拟主机配置示例:
NameVirtualHost 192.168.10.1:*


    ServerAdmin admin@example.com
    DocumentRoot /var/www/llzqq
    ServerName yourdomain.com
    ErrorLog logs/yourdomain.com-error_log
    CustomLog logs/yourdomain.com-access_log common
    SSLEngine on
    SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
    SSLCertificateFile /etc/ssl/server.crt
    SSLCertificateKeyFile /etc/ssl/private/server.key



    ServerAdmin admin@example.com
    DocumentRoot /var/www/llzgg
    ServerName yourdomain2.com
    ErrorLog logs/yourdomain2.com-error_log
    CustomLog logs/yourdomain2.com-access_log common

到这里,整个 OpenBSD + Apache + MySQL + PHP 的服务器环境,包括 SSL 支持,就全部配置完成了。

来源:https://www.jb51.net/os/Unix/1534.html
上一篇FreeBSD允许root用户telnet登录的配置方法 下一篇OpenBSD 3.8自带FTPD架设FTP服务器完整详细步骤与方法指南
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
微软详解Win11时间点还原 默认每24小时创建恢复点
系统平台 · 2026-06-30

微软详解Win11时间点还原 默认每24小时创建恢复点

微软今日推送了最新的 6 月可选更新,并发布博客详细解读了 Win11 全新的“时间点还原”(Point-in-time restore)功能——这一功能本质上是对系统恢复体验的一次全面升级,旨在让用户更轻松地应对电脑故障。 微软表示,面向 Windows 11 客户端用户的“时间点还原”功能现已正

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验
系统平台 · 2026-06-30

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验

微软今天推送了Windows 11 26H1设备的6月可选更新KB5095091,安装完成后系统版本号会升级到Build 28000 2340。值得一提的是,这次更新并非面向所有设备,而是专门为搭载高通骁龙X2系列芯片的机型准备的——包括骁龙X2 Plus、X2 Elite和X2 Elite Ext

Win11六月可选更新KB5095093修复回收站弹窗异常
系统平台 · 2026-06-30

Win11六月可选更新KB5095093修复回收站弹窗异常

微软已悄然推送Windows 11六月可选更新,编号KB5095093。本次更新覆盖两个版本:24H2用户安装后版本号升级至Build 26100 8737,而25H2用户则更新至Build 26200 8737。 本次更新并非仅是小修小补,而是带来了多项实质性新功能。下面我们就来详细解析这些更新内

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞
系统平台 · 2026-06-30

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞

科技媒体 Cult of Mac 昨日(6月23日)发布博文指出,苹果在 macOS 27 Beta 2 更新中悄然封堵了一个此前可用的后门——用户曾能通过一条终端命令绕过候补名单,直接启用新版 Siri AI,如今这一方法已失效。 简要回顾一下:在 macOS 27 Beta 1 阶段,只需在 M

微软加速Win11 25H2推送 覆盖所有符合条件家用PC
系统平台 · 2026-06-30

微软加速Win11 25H2推送 覆盖所有符合条件家用PC

近日(6月23日),科技媒体 Windows Latest 发布了一则值得关注的动态:微软已进一步扩大 Windows 11 25H2 的推送范围,所有满足硬件要求、且不受 IT 部门管理的家庭版和专业版设备,现在均可顺利接收本次更新。 此次升级有一个显著特点——采用“启用包”(eKB)方式进行推送