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

OpenBSD 3.8 安装配置 Apache+MySQL+PHP+mod_limitipco

时间:2026-06-19 07:45
通过 OpenBSD 自带的二进制包来搭建服务器环境,是最省心也最安全的方式。当然你也可以选择从源码编译,但那样费时费力,而且容易遇到各种依赖问题。实际上,OpenBSD 提供了大量编译好的二进制安装包——直接用 pkg_add 从远程服务器安装,包依赖会自动处理,完全不需要手动干预,这一点和通过

通过 OpenBSD 自带的二进制包来搭建服务器环境,是最省心也最安全的方式。当然你也可以选择从源码编译,但那样费时费力,而且容易遇到各种依赖问题。实际上,OpenBSD 提供了大量编译好的二进制安装包——直接用 pkg_add 从远程服务器安装,包依赖会自动处理,完全不需要手动干预,这一点和通过 Ports 安装很像。下面的配置步骤是在一份英文文档的基础上整理补充的,原文已经找不到了,但核心方法经过多次验证,可以直接拿来用。

首先,设置网络安装服务器的地址(这里用的是官方源):

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

1. 配置 Apache 服务器

Apache 是系统默认安装的,这一步可以跳过安装过程。下面要做的是配置 Apache,让它能够随系统启动而自动运行——因为 /etc/rc 脚本里已经预留了 httpd 服务的启动设置。

# vi /etc/rc.conf

修改 httpd_flags=NO 为:

httpd_flags=""

然后对 Apache 做一些初步设置:

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

Options Indexes FollowSymLinks 改为 Options FollowSymLinks(关闭目录列表),同时根据需要设置 ExtendedStatus OnServerTokens ProdServerSignature Off 等安全相关参数。注意 ServerAdminServerName 请根据实际情况填写。

2. 安装 mysql-server

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

如果不想让其他机器连接 MySQL,可以通过以下配置限制:

# vi /etc/my.cnf
bind-address = 127.0.0.1

启动 MySQL 服务器:

# /usr/local/bin/mysqld_safe &

设置 root 的 MySQL 密码:

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

对于 chroot 环境下的 MySQL,需要额外创建几个目录:

# mkdir /var/www/var
# chmod -R 1777 /var/www/var
# vi /etc/my.conf

MySQL 启动后会自动生成 /var/www/var/run 目录,如果没有生成则手动创建,并设置权限:

# chmod -R 777 /var/www/var/run

/etc/my.conf 中配置 socket 路径:

[client]
socket = /var/www/var/run/mysql/mysql.sock

[mysqld]
socket = /var/www/var/run/mysql/mysql.sock
open-files-limit = 8192
open-files = 1000

为了方便启动和关闭 MySQL 服务,可以建立一个脚本:

# vi /etc/rc.d/mysqld.sh

内容如下:

#!/bin/sh
# mysql startup scripts
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

设置开机启动 MySQL:

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

3. 安装配置 PHP

# 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 组件(根据需要增减):

# 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:

# vi /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(注意安全性)。

建立测试 PHP 页面:

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

重启 Apache:

# pkill httpd
# /usr/sbin/httpd

在浏览器中输入 https://IP/test.php 测试一下。

4. 安装 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

确保 APXS = /usr/sbin/apxs,然后执行:

# make
# make install

让 Apache 支持这个模块,在 /var/www/conf/httpd.conf 中添加:



MaxConnPerIP 5


到此,基本环境搭建完成。


附件:配置 Apache 支持 SSL

为了让 Apache 支持 SSL 传输,首先在 /var/www/conf/httpd.conf 中添加:

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

修改 Apache 启动选项,启用 SSL:

# vi /etc/rc.conf.local

httpd_flags="" 改为:

httpd_flags="-DSSL"

手动启动和关闭 Apache 可以这样做:

# apachectl startssl
# apachectl stop

创建 SSL 证书的步骤:

  1. 创建服务器 KEY 文件(1024 位):
  2. # /usr/sbin/openssl genrsa -out /etc/ssl/private/server.key 1024
    
  3. 创建服务器 CSR 文件:
  4. # /usr/sbin/openssl req -new -key /etc/ssl/private/server.key -out /etc/ssl/private/server.csr
    

    这里需要填写一些注册信息(如国家、组织等)。

  5. 生成自签名证书(365 天有效):
  6. # /usr/sbin/openssl x509 -req -days 365 -in /etc/ssl/private/server.csr -signkey /etc/ssl/private/server.key -out /etc/ssl/server.crt
    

虚拟主机配置示例(同时支持 SSL 和普通 HTTP):

NameVirtualHost 192.168.10.1:*


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



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

其他更复杂的配置(如负载均衡、多站点等)待后续补充——最近手边没有 OpenBSD 机器,有些细节没办法实地验证,但以上步骤在 3.8 版本上反复测试过,可以放心使用。

来源:https://www.jb51.net/os/Unix/1512.html
上一篇FreeBSD Jail命令使用说明 下一篇FreeBSD安装J2EE开发环境完整指南
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

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

同类最新

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

更多
微软详解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)方式进行推送