引言

Linux 服务器是一个非常灵活的开发和服务内容的平台。 为应用程序提供服务没有单一的正确方式,但有一些特定的程序或应用程序集可以很好地协同工作。 如果您安装了相当数量的面向 web 的软件,您可能会注意到一般的安装和配置过程遵循相同的路径。

一般来说,这些应用程序由数据库管理系统支持,如 mysql / mariadb、 PostgreSQL、 MongoDB 等。 实际的 web 内容是通过 web 服务器访问的,比如 Apache 或 Nginx。 动态内容是通过服务器端编程语言(如 PHP、 Python、 Ruby 等)处理的。 这就是我们所说的“应用程序堆栈”的基础。

最传统的应用程序堆栈是 LAMP 堆栈。 也就是 Linux 作为操作系统,Apache 作为 web 服务器,MySQL 作为数据库,PHP 作为处理信息。 根据您的要求,可以替换其他组件。 开源软件的优点之一就是它的灵活性和适应性。

使用这些 web 栈安装的一种流行的应用是论坛软件。 大多数论坛都需要你经历相同的基本过程,包括安装网络服务器、数据库系统和编程语言(包括允许这些工具进行通信的库和模块)。 接下来,您需要安装实际的软件,然后配置所有的部件以便一起工作。

对于大多数种类的论坛软件,一般的程序是相同的。 在本文中,我们将使用 Ubuntu 12.04上的 MyBB 论坛软件来演示适当的步骤。 许多其他论坛(Simple Machines、 Vanilla、 phpBB、 PunBB 等)将使用非常类似的程序,尽管每个论坛之间会有一些变化。

第一步-安装堆叠

在本文中,我们将使用 Ubuntu 12.04液滴。

当你试图让这个软件离开地面时,你需要做的第一件事是安装堆栈组件,这将做繁重的提升。 在我们的例子中,传统的 LAMP 堆栈将很好地为我们服务。

我们将首先安装每个组件,并在下一步中配置它们。

安装 Apache

首先,更新你的软件包并安装 Apache,这将是我们的 web 服务器。 当用户访问你的网站时,这个软件提供网页服务。 互联网上的每一个网站都有一个网络浏览器。

sudo apt-get update
sudo apt-get install apache2

安装 MySQL

接下来,我们将安装 MySQL,这将是我们的数据库管理系统。 数据库管理系统负责以有组织的方式存储信息。 它可以用来排序、搜索、更新和格式化对网站有用的大多数数据(用户、统计数据、页面等)。

在实际的数据库管理软件之上,我们还将安装一些库和模块,使我们的其他组件能够轻松地与它通信。 在安装过程中,你将被要求选择并确认一个数据库管理员密码。 这可以是你想要的任何东西:

sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql

安装 PHP

我们需要安装的唯一剩下的堆栈组件是 PHP 解释器及其相关库。 Php 就是我们所说的服务器端脚本语言。

基本上,这意味着它是一种在服务器上执行代码的编程语言。 这允许您根据用户请求和存储在数据库中的信息生成动态内容。 一种编程语言可以作为连接其他部分的粘合剂:

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

第二步——配置堆栈

现在我们已经安装了 web 堆栈的所有组件,我们需要做一些快速配置来保护和初始化我们的环境,并确保一切都配置为一起工作。 无论何时设置面向 web 的服务,都应该采取这些步骤,因为缺省配置并不总是理想的。

配置

首先,我们将初始化 MySQL 环境,我们可以通过输入:

sudo mysql_install_db

然后,我们可以通过反转一些不安全的设置来保护我们的安装,但是默认允许简单的测试。 输入以下命令运行交互式脚本:

sudo mysql_secure_installation

这会问你几个问题。 首先,它会提示您输入在 MySQL 安装期间设置的数据库管理员密码。 然后,对接下来的每个问题回答“是”(除了密码更改问题,如果你对自己的选择满意的话)。

Apache 配置

接下来,我们需要在 Apache 配置目录中配置一个文件,将 PHP 文件首选为常规 HTML 页面。 这意味着,如果要在服务模糊的请求之间进行选择,服务器将选择 PHP 页面。 当 web 服务器与 PHP 和数据库一起使用时,这通常是您希望 web 服务器工作的方式。

用你喜欢的编辑器编辑这个文件,我们在这里使用 nano:

sudo nano /etc/apache2/mods-enabled/dir.conf

在这个文件中,有一个被称为 DirectoryIndex 的指令,它列出了当 web 浏览器请求一个目录时要提供的首选文件名。 我们需要将 index.php 添加到列表的开头。 编辑文件,使其匹配以下内容:

<IfModule mod_dir.c>

      DirectoryIndex index.php index.html index.cgi index.pl index.php index.xhtml index.htm

</IfModule>

实现这个更改之后,你需要重新启动 web 服务器,这个更改才能生效:

sudo service apache2 restart

Php 配置

就我们的目的而言,默认的 PHP 配置可以正常工作。 但是,在其他情况下,您可能需要更改其配置文件中的一些值,以启用额外的功能,锁定不需要的资源等。

Php 配置文件位于 / etc / php5。 您可能最关心的文件是 / etc / php5 / apache2 / php.ini。 这将配置 PHP 在与 Apache 交互时的行为:

sudo nano /etc/php5/apache2/php.ini

正如你所看到的,这个文件非常长。 这部分是因为有太多的配置选项,部分是因为文件有很好的注释。

有时候,可以通过更改文件中的某些值来优化应用程序。 例如,如果你正在做一些高强度的计算,你可能需要增加 PHP 进程的最大内存使用量:

memory_limit = 128M

不过,对于我们的目的来说,默认值应该没有问题。

第三步——创建应用程序数据库

我们已经安装了堆栈软件,并将其配置为能够很好地协同工作。 Mysql 已经启动并运行,但是目前还没有一个数据库可以用于我们的应用程序。 我们将创建一个,以便我们的论坛软件可以管理其数据。

首先,登录 MySQL,这会提示你输入你在安装过程中为管理 MySQL 而选择的密码:

mysql -u root -p

您将被登录到 MySQL 界面,并且您的命令提示符将发生变化。 我们可以从这个提示符向数据库软件发出 SQL 命令。 Sql 是 MySQL 实现的查询语言。 它用于创建、修改数据库软件和数据本身,并与之进行交互。

为了从我们的论坛划分信息,我们需要创建一个数据库,这是我们可用的组织的基本单位。 我们将以相关软件的名字命名它,以防有一天在同一台机器上托管多个数据库。 这将使我们能够很容易地确定每个包含的内容。

在我们的示例中,我们正在安装“ MyBB”软件,因此我们将相应地命名它。 所有 SQL 命令都应该以分号结尾(;) :

CREATE DATABASE mybb;

我们还应该创建一个特定的用户来使用这个数据库。 这是一个很好的实践,因为它允许我们在细粒度级别上控制软件可以访问的内容。 在这里,我们将创建一个用户,并在一行中为其分配一个密码:

CREATE USER 'mybbuser'@'localhost' IDENTIFIED BY 'password';

我们有一个数据库和一个用户,但他们还没有关联。 我们需要授予用户访问数据库的权限:

GRANT ALL PRIVILEGES ON mybb.* TO 'mybbuser'@'localhost' IDENTIFIED BY 'password';

我们可以通过输入以下命令来实现我们的修改并退出 MySQL 接口:

FLUSH PRIVILEGES;
exit

第四步-下载及配置论坛软件

我们现在有我们的网络栈配置和数据库创建我们的应用程序。 所有的初步步骤都已经完成,我们可以下载并开始配置实际的应用程序。

我们将在 home 文件夹中的临时目录下载初始文件。 创建它,并立即切换到目录:

mkdir ~/temp
cd ~/temp

我们将在这个文件夹中下载并配置软件,然后将其移动到网络根目录中,在那里 Apache 可以提供文件。 你必须从他们各自的网站上获取项目的文件。 在我们的例子中,我们可以直接从网站上获得最新版本:

wget -O mybb.zip http://www.mybb.com/download/latest

我们需要解压缩文件的解压缩,这是尚未安装在我们的系统。 我们可以通过下面的命令来修复这个问题:

sudo apt-get install unzip

现在我们可以从 zip 压缩文档中提取软件:

unzip mybb.zip

这将创建两个名为 Documentation 和 Upload 的目录。 Upload 目录包含实际的论坛文件,而 Documentation 目录包含文档,这并不奇怪。 您可以将文档目录移动到任何需要的位置。 至于另一个目录,我们需要把它移到网络根目录:

sudo mv ~/temp/Upload /var/www/forum

现在,我们在文档根目录中有这些文件,Apache 可以在这里找到它们并提供它们。 但是,应用程序没有配置文件。 它确实附带了示例配置文件,我们可以按原样复制这些文件。 更改到我们刚刚移动文件到的论坛目录:

cd /var/www/forum

将默认配置文件移动到位置:

sudo mv inc/config.default.php inc/config.php

现在我们只需要调整几个文件的权限,以便论坛软件可以正确配置:

sudo chmod a+rw inc/settings.php
sudo chmod a+rw inc/config.php
sudo chmod a+rw cache
sudo chmod a+rw uploads
sudo chmod a+rw uploads/avatars

通过这些修改,MyBB 软件应该能够访问配置文件和上传目录,并在必要时进行修改。

大多数时候,在这一点上,软件的其余部分是通过网络浏览器配置的。 在这方面没有什么不同。 打开浏览器,找到你的 IP 地址或域名,然后是 / forum / install / :

http://your_domain/forum/install/

您应该看到基于 web 的配置工具的第一页。 这将指导您完成配置过程的最后阶段。 你将选择你的首选项并告诉 MyBB 关于你设置的信息:

点击“下一步”按钮进入前几页。需求检查页面应该全部为绿色:

在下一页上,您必须输入您配置的数据库信息。 如果你一直这样做,你的页面应该是这样的:

在“板配置”页面,填写适当的方式访问您的论坛。 您可能需要将 IP 地址更改为域名,并填写一些其他信息:

填写管理用户以完成流程。

完成配置后,需要从 web 根目录中删除安装文件夹。 这样可以防止未经授权的用户重新配置软件:

sudo rm -r /var/www/forum/install

你可以访问以下网站:

http://your_domain/forum

总结

虽然本文以 MyBB 为例,但这个一般过程对于大多数论坛软件是相同的,也适用于其他类型的面向 web 的应用程序。

您应该检查应用程序的具体安装步骤,但是安装和配置 LAMP 堆栈,为应用程序创建数据库,然后将文件移动到 web 根的过程将与大量此类型的安装相关。