在VPS上安装面向Web的应用程序的简单指南
介绍
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 droplet。
尝试启动此软件时,您需要做的第一件事是安装将完成繁重工作的堆栈组件。 在我们的案例中,传统的 LAMP 堆栈将很好地为我们服务。
我们将首先安装每个组件,并在下一步中配置它们。
安装 Apache
首先,更新您的软件包并安装 Apache,这将是我们的 网络服务器 。 当用户访问您的网站时,该软件会为网页提供服务。 Internet 上的每个站点都由 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 配置
首先,我们将初始化 MySQL 环境。 我们可以通过键入以下内容来初始化数据库环境:
sudo mysql_install_db
之后,我们可以通过反转一些不安全的设置来保护我们的安装,但默认设置是为了方便测试。 通过键入以下内容运行交互式脚本:
sudo mysql_secure_installation
这会问你几个问题。 首先,它会提示您输入在 MySQL 安装期间设置的数据库管理员密码。 然后,对以下每个问题回答“是”(如果您对自己的选择感到满意,密码更改问题除外)。
阿帕奇配置
接下来,我们需要在 Apache 配置目录中配置一个文件,以将 PHP 文件优先于常规 HTML 页面。 这意味着如果在服务不明确的请求之间进行选择,服务器将选择 PHP 页面。 这通常是您希望 Web 服务器与 PHP 和数据库一起使用时的工作方式。
使用您喜欢的编辑器编辑此文件。 我们将在这里使用 nano
:
sudo nano /etc/apache2/mods-enabled/dir.conf
在此文件中,有一个名为 DirectoryIndex
的指令,它列出了 Web 浏览器请求目录时要提供的首选文件名。 我们需要将 index.php
添加到列表的开头。 编辑文件,使其与以下内容匹配:
DirectoryIndex <span class="highlight">index.php</span> index.html index.cgi index.pl index.php index.xhtml index.htm
实施此更改后,您需要重新启动 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 命令都应以分号 (;) 结尾:
创建数据库mybb ;
我们还应该创建一个特定的用户来使用这个数据库。 这是一种很好的做法,因为它允许我们在细粒度级别上控制软件可以访问的内容。 在这里,我们将在一行中创建一个用户并为其分配一个密码:
CREATE USER ' mybbuser '@'localhost' IDENTIFIED BY ' password ';
我们有一个数据库和一个用户,但它们还没有关联。 我们需要授予用户访问数据库的权限:
授予 mybb上的所有权限。* 到 ' mybbuser '@'localhost' IDENTIFIED BY ' password ';
我们可以通过键入以下内容来实现我们的更改并退出 MySQL 界面:
FLUSH PRIVILEGES; exit
第四步——下载并配置论坛软件
现在,我们已经配置了 Web 堆栈并为我们的应用程序创建了一个数据库。 所有初步步骤都已完成,我们可以下载并开始配置我们的实际应用程序。
我们将在主文件夹的临时目录中下载初始文件。 创建它并立即更改目录:
mkdir ~/temp cd ~/temp
这是我们将下载和配置我们的软件的文件夹,然后将其移动到 Apache 可以提供文件的 Web 根目录。 您必须从他们各自的网站获取项目文件。 在我们的例子中,我们可以直接从网站获取最新版本:
wget -O mybb.zip http://www.mybb.com/download/latest
我们需要使用 unzip
解压缩文件,它尚未安装在我们的系统上。 我们可以用这个命令来解决这个问题:
sudo apt-get install unzip
现在我们可以从 zip 存档中提取软件:
unzip mybb.zip
这将创建两个名为 Documentation
和 Upload
的目录。 Upload
目录包含实际的论坛文件,而 Documentation
目录则包含文档。 您可以将文档目录移动到您想要的任何位置。 至于其他目录,我们需要将其移动到 web 根目录:
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 软件应该能够访问配置文件并上传目录并根据需要进行更改。
大多数时候,此时,软件的其余部分是通过网络浏览器配置的。 MyBB 在这方面也不例外。 打开您的网络浏览器并导航到您的 IP 地址或域名,然后是 /forum/install/
:
http:// your_domain /forum/install/
您应该会看到基于 Web 的配置工具的第一页。 这将指导您完成配置过程的最后阶段。 您将选择您的偏好并告诉 MyBB 有关您的设置的信息:
单击“下一步”按钮浏览前几页。 需求检查页面应该都是绿色的:
在下一页上,您必须输入您配置的数据库信息。 如果您一直在关注,您的页面应该如下所示:
在“Board Configuration”页面上,填写访问论坛的适当方式。 您可能需要将 IP 地址更改为域名并填写一些其他信息:
填写管理用户以完成该过程。
完成配置运行后,您需要从 Web 根目录中删除安装文件夹。 这可以防止未经授权的用户重新配置软件:
sudo rm -r /var/www/forum/install
您可以通过以下方式访问该网站:
http://你的域名/论坛
结论
虽然本文以 MyBB 为例,但这个一般过程对于大多数论坛软件是相同的,也适用于其他类型的面向 Web 的应用程序。
您应该检查应用程序的具体安装步骤,但是安装和配置 LAMP 堆栈、为应用程序创建数据库以及将文件移动到 Web 根目录的过程与大量此类安装有关。