状态: 已弃用
本文介绍了不再受支持的 Ubuntu 版本。 如果您当前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:
原因: Ubuntu 12.04 已于 2017 年 4 月 28 日终止生命周期 (EOL) and no longer receives security patches or updates. This guide is no longer maintained.
请参阅: 本指南可能仍可用作参考,但可能不适用于其他 Ubuntu 版本。 如果可用,我们强烈建议使用为您正在使用的 Ubuntu 版本编写的指南。 您可以使用页面顶部的搜索功能来查找更新的版本。
关于锂
Lithium 是一个用于开发 Web 应用程序的全栈 PHP 框架。 它基于模型-视图-控制器 (MVC) 架构,专为 PHP 5.3+ 构建,并与 MongoDB 或 CouchDB 等最新存储技术集成。
它旨在提供出色的项目组织以及在您开发自己独特的 Web 应用程序时在框架之外编写代码的可能性。 此外,它具有强大的插件系统,允许您从框架外部使用您最喜欢的组件(例如用于模板的 Twig 或用于 ORM 的 Doctrine2)。
在本教程中,我们将了解如何在 VPS 上安装 Lithium,以及如何开始使用简单的 Web 应用程序。 为此,我假设您已经设置好服务器并正在运行 LAMP 堆栈(Apache、MySQL 和 PHP)。 如果您还没有,DigitalOcean 上有一个 很棒的教程 可以帮助您进行设置。
阿帕奇设置
由于我们使用 Apache 作为网络服务器,并且 Lithium 大量使用 .htaccess 文件进行 URL 重写,我们还需要确保 Apache 实际上允许它这样做。 如果您尚未完成以下步骤,则需要立即执行。
编辑负责您将拥有应用程序的文件夹的虚拟主机文件(在我们的例子中,假设默认的 Apache 文档根目录:/var/www):
sudo nano /etc/apache2/sites-available/default
在标有此开头的块内:
<Directory /var/www/>
确保你有 AllowOverride All
而不是 AllowOverride None
。
接下来我们需要做的是启用 mod_rewrite
(如果您还没有启用它)。 要检查它是否已启用,请使用以下命令:
apache2ctl -M
如果您在列表中看到“rewrite_module”,那就没问题了。 如果没有,请使用以下命令启用模块:
a2enmod rewrite
在对虚拟主机文件或启用 Apache 模块进行任何更改后,您必须重新启动 Apache:
sudo service apache2 restart
安装
在我们开始安装 Lithium 之前,让我们安装 Git,以便我们可以使用它从 GitHub 获取框架。 您可以使用以下 2 个命令执行此操作:
sudo apt-get update sudo apt-get install git-core
接下来,我们可以将 Lithium git 存储库克隆到我们的服务器上(同时在我们的 Web 服务器的文档根目录中:/var/www 对于 Apache):
git clone git://github.com/UnionOfRAD/framework.git site
这将克隆框架存储库并将其放置在名为 site
的文件夹中。 现在我们可以将 Lithium 作为子模块安装:
cd site git submodule init git submodule update
现在,这会将 lithium
库以及库/锂/文件夹中的我们的服务器克隆。 这将是引导应用程序所必需的。
命令行
Lithium 带有一个命令行实用程序 (li3
),它有助于代码生成、文档等。 但是为了让它可以在任何地方使用,我们需要将控制台库添加到 shell 路径中。 打开位于您的主文件夹中的 .bash_profile
文件(如果您还没有,您可以创建它):
nano ~/.bash_profile
并在其中粘贴以下内容:
PATH=$PATH:/path/to/docroot/lithium/libraries/lithium/console
确保在您的情况下将路径替换为通向控制台的正确路径。 所以在我们的例子中,它将是:
PATH=$PATH:/var/www/site/libraries/lithium/console
在任何此类移动之后,您应该运行以下命令以确保 bash 命令生效:
source ~/.bash_profile
现在测试命令以确保它通过运行它来确保它正常工作,而不需要任何选项来获取它的帮助信息:
li3
数据库连接
大多数 Web 应用程序都需要依赖数据库进行存储。 使用 Lithium,您可以使用各种数据库引擎,如 MySQL、MariaDB、MongoDB、CouchDB 等。 为了设置我们的测试应用程序,我们将使用 MySQL,但您可以自由地尝试任何您觉得更舒服的东西。 here 有更多关于使用 MongoDB 进行设置的信息。
我们需要的第一件事是数据库,因此请确保您有一个。 如果您不知道如何使用 MySQL 并创建数据库,请阅读 this great tutorial on using MySQL。
要设置数据库连接,首先编辑位于应用程序 (site/) 的 app/config 文件夹中的 bootstrap.php
文件:
nano /var/www/site/app/config/bootstrap.php
在此文件中,如果已注释,请取消注释以下行:
require __DIR__ . '/bootstrap/connections.php';
然后编辑以下文件:
nano /var/www/site/app/config/bootstrap/connections.php
并取消注释在以下块下找到的数据库配置:
/** * Uncomment this configuration to use MySQL as your default database. */
您会注意到针对不同数据库引擎的多个块。 此外,在适当的地方设置您的 MySQL 连接信息。
你的申请
是时候访问浏览器了,看看我们目前有什么。 您可以通过导航到您的 ip/站点来执行此操作。 在那里,您应该看到您的 Lithium 应用程序已启动并运行,其中包含有关其状态和需要为其工作的服务器配置的一些信息。
如果您看到以下消息:
Magic quotes are enabled in your PHP configuration
您需要编辑服务器上的 php.ini 文件:
sudo nano /etc/php5/apache2/php.ini
并在其中粘贴以下行:
magic_quotes_gpc = Off
然后保存文件并重新启动 Apache:
sudo service apache2 restart
模型-视图-控制器
由于 Lithium 是一个 MVC 框架,您将在文件夹结构中看到 3 个重要的文件夹:controllers/、models/ 和 views/。 让我们快速创建我们的第一个控制器并使用它在页面上打印 Hello world!
。
在 controllers/ 文件夹中创建一个名为 HelloController.php
的新文件,其内容如下:
<?php namespace app\controllers; class HelloController extends \lithium\action\Controller { public function index() { echo "Hello World!"; } } ?>
您可以保存文件。 我们在这里所做的是创建一个新的控制器类,该控制器类位于一个精心命名的文件中(基于类名)并扩展了 Lithium 控制器类。 在里面,我们创建了一个 index 方法,如果在调用这个控制器时没有传递参数,它将被调用。 在这个方法中,我们只是打印出消息。
要在浏览器中访问它,您现在必须导航到 your-ip/site/hello,您应该会在页面上看到 Hello World
打印。
结论
在本教程中,我们了解了如何安装 Lithium PHP 并进行必要的服务器配置以使其正常工作。 我们已经看到了如何将它连接到数据库(我们还没有使用过)并创建了我们的第一个控制器,它只是将消息打印到页面上。
在下一个教程中,我们将进一步了解 MVC 架构如何与 Lithium 一起工作。 我们将使用视图和模型(以说明与我们的 MySQL 存储引擎的交互)。