如何在Ubuntu12.04云服务器上安装CodeIgniter

来自菜鸟教程
跳转至:导航、​搜索


状态: 已弃用

本文介绍了不再受支持的 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 版本编写的指南。 您可以使用页面顶部的搜索功能来查找更新的版本。


关于 CodeIgniter

CodeIgniter 是一个用于 PHP 的开源 Web 应用程序框架,体积小但实用性非常强大。 它的目标是通过为最常见的任务提供一组库和帮助程序,使人们能够比平常更快地编写他们的应用程序。 它基于 Model-View-Controller 方法,将逻辑与表示分离。

本教程将向您展示如何使用命令行在您的云服务器上设置 CodeIgniter。 它还将完成您可能想要进行的一些初始配置。

本教程假设您已经在运行您自己的具有 root 访问权限的 VPS,并在其上安装了 LAMP(Linux、Apache、MySQL 和 PHP)。 你可以参考 this tutorial 如果你还没有 ' 的话,你可以使用后者。

安装 CodeIgniter (CI)

首先,您需要导航到云服务器的目录根文件夹,例如:

cd /var/www

下载 CI 的最新稳定版本。 到 CI 网站的 下载页面 并检查最新版本。 然后,运行以下命令进行下载:

wget http://ellislab.com/asset/ci_download_files/reactor/CodeIgniter_2.1.2.zip

确保将 URL 末尾的 zip 文件的名称替换为您在此处找到的最新稳定版本(当前版本)。

如果您运行 ls 命令,您应该会在您的文件夹中看到 zip 文件。 使用以下命令解压它:

unzip CodeIgniter_2.1.2.zip

如果你得到“unzip: command not found”错误,这意味着你没有'没有安装Unzip。 只需运行以下命令即可安装它:

sudo apt-get install unzip

现在再试一次。

如果您运行 ls 命令,您' 会注意到那里提取的新 CodeIgniter 文件夹。 您可以使用以下命令将该文件夹重命名为 codeigniter (或任何您想要的):

mv /var/www/CodeIgniter_2.1.2 /var/www/codeigniter

现在您可以将浏览器指向该文件夹:

&ltyour_domain>/codeigniter

在那里,您将看到 CodeIgniter 欢迎消息。

此消息由示例控制器生成,您可以在名为 welcome.phpapplication/controllers 文件夹中找到该示例控制器。 该控制器仅加载位于 application/views 文件夹中的视图,其中包含简单的 HTML 消息。

配置

现在已经设置了 CodeIgniter,您应该为您的应用程序进行一些初始配置。 如果您打算使用数据库,则需要设置一个并提供信息,以便 CodeIgniter 能够与之通信。 如果您不熟悉如何创建 MySQL 数据库,请参考 本教程。 完成后,编辑以下文件(确保将“codeigniter”文件夹名称替换为已安装的文件夹名称):

nano /var/www/codeigniter/application/config/database.php

然后找到以下块并对其进行编辑以包含您的数据库信息:

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'your_username';
$db['default']['password'] = 'your_password';
$db['default']['database'] = 'your_database';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

保存文件,退出,您就完成了数据库配置。 接下来,打开 config.php 文件并在其中进行一些更改:

nano /var/www/codeigniter/application/config/config.php

现在,设置您的基本网址。 找到这个块并根据你的情况进行编辑:

$config['base_url'] = 'http://www.example.com';

如果您的 example.com 域名指向您安装 CodeIgniter 的文件夹,则这是您将设置的内容。 换句话说,如果您为 example.com 域名创建了一个虚拟主机,那么它的文档根目录将位于,例如 /var/www/codeigniter。 要了解如何在 Apache 中创建虚拟主机,可以参考本教程

保存文件并退出。

旁注:虚拟主机

在下面列出的 URL 中,代码点火器的文档根指向 /var/www/codeigniter。 这可以通过更改虚拟主机文件中的文档根目录来完成:

sudo nano /etc/apache2/sites-enabled/000-default
&ltVirtualHost *:80>
        DocumentRoot /var/www/codeigniter
        [.......]
&ltVirtualHost *:80>

您可能想要更改的下一件事是删除您需要在控制器名称之前放入 URL 的 index.php 段。 你看,CodeIgniter URL 的结构如下:

base url / index.php / controller name / controller function / controller parameter 1 / controller parameter 2 / controller parameter etc 

要对此进行测试,您可以打开 welcome.php 控制器文件:

nano /var/www/codeigniter/application/controllers/welcome.php

在 index 函数下方,添加另一个函数,如下所示:

public function test($param) {
  echo $param;
}

如果您将浏览器指向 http://www.example.com/index.php/welcome/test/3,您应该会看到页面上显示数字 3。 替换最后一段,它将改为显示。 这很酷。

但是您可能想要删除“index.php”部分,以便您的 URL 看起来干净整洁。 有两个步骤可以做到这一点。 首先,重新打开您之前编辑的配置文件:

nano /var/www/codeigniter/application/config/config.php

找到以下代码:

$config['index_page'] = 'index.php';

并将其替换为:

$config['index_page'] = '';

保存并退出。 现在 CodeIgniter 将不再自动在 URL 中包含“index.php”。 然而,这还不够。 这只是意味着如果您只是从 URL 中省略它,您将收到一堆“Page not found”错误。 您还需要创建一个 .htaccess 文件来为您处理一些重定向。

注意: 要使用 .htaccess 功能,' 需要在 Apache 服务器上启用 mod_rewrite。 要检查这一点,请运行以下命令:

apache2ctl -M

如果您在列表中看到 rewrite_module,那么您就可以开始了。 如果没有,只需使用以下命令启用它:

a2enmod rewrite

并重新启动 Apache 以使更改生效:

sudo service apache2 restart

您现在可以继续。 在 CodeIgniter 根文件夹中创建 .htaccess 文件(在 index.php 文件旁边):

nano /var/www/codeigniter/.htaccess

并粘贴以下代码:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php?/$0 [PT,L] 

通过在虚拟主机文件中将 AllowOverride 设置为 All 确保您的 .htaccess 文件已启用:

&ltDirectory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
&lt/Directory>

保存文件并退出。 现在,如果您在浏览器中访问该站点,则 ' 不需要在 url 中包含 index.php

http://www.example.com/welcome/test/3 

而且您的网址看起来好多了。 您已准备好开始使用 CodeIgniter 的奇迹开发您的 PHP 应用程序。

CodeIgniter—文章#1CodeIgniter—文章#2CodeIgniter—文章#3文章提交人:Danny