在Ubuntu 16.04上,设置Codeigniter应用程序

・6 分钟阅读

介绍

Codeigniter是一个非常强大,占用空间很小的PHP框架。

本指南假设你有一个LAMP堆栈和root权限访问你的VPS。

安装Codeigniter

首先,转到Apache根目录。

 
cd/var/www/html

 

下载最新的稳定的Codeigniter版本。


wget https://github.com/bcit-ci/CodeIgniter/archive/3.1.5.zip

解压下载的文件。

 
unzip 3.1.5.zip

 

如果出现错误: The program 'unzip' is currently not installed. 你必须安装解压缩。


sudo apt install unzip

现在尝试再次提取。

注意一个名为CodeIgniter-3.1.5的新目录,将此文件夹重命名为codeigniter


mv CodeIgniter-3.1.5 codeigniter

导航到http://[vultr-instance-ip]/codeigniter 你将看到codeigniter欢迎页面。这个欢迎页面是由位于application/controllers的一个叫Welcome.php的控制器生成的,加载的页面位于application/views,称为Welcome.php

配置和漂亮的URL

Codeigniter现在已经启动,并且运行了,你应该进行一些初始配置,如果打算使用数据库,则必须在位于application/config/database.phpdatabase.php配置文件中配置数据库访问,找到以下块,并且使用你的连接信息进行更新。


$db['default'] = array(
 'dsn' => '',
 'hostname' => 'localhost',
 'username' => '',
 'password' => '',
 'database' => '',
 'dbdriver' => 'mysqli',
 'dbprefix' => '',
 'pconnect' => FALSE,
 'db_debug' => (ENVIRONMENT !== 'production'),
 'cache_on' => FALSE,
 'cachedir' => '',
 'char_set' => 'utf8',
 'dbcollat' => 'utf8_general_ci',
 'swap_pre' => '',
 'encrypt' => FALSE,
 'compress' => FALSE,
 'stricton' => FALSE,
 'failover' => array(),
 'save_queries' => TRUE
);

保存文件并退出,你已完成数据库配置,现在让我们查看Codeigniter URL方案。

漂亮的网址


http://[vultr-instance-ip]/codeigniter/index.php/[controller]/[method]/[param]

按照MVC方法,[controller]段表示位于application/controllers的控制器类,[method]段是一个方法,而[param]段是传递给方法的参数。

现在,通过将以下方法添加到索引方法中来测试这个配置,application/controllers/Welcome.php


public function hello($user = 'John Doe')
{
 echo"Hello {$user}!";
}

现在导航到 http://[vultr-instance-ip]/codeigniter/index.php/welcome/hello/Jack 你应该在浏览器中看到Hello Jack !

删除index.php

默认情况下url中会包含index,php要删除它我们必须启用Apache mod eu rewrite module会一个htaccess file添加到应用程序的根文件夹中,并且在application/config/config,php中进行一些配置。

首先,让我们检查一下mod_rewrite是否已经通过运行以下命令启用。

 
apache2ctl -M

 

如果在列表中看到rewrite_module,则可以继续,否则启用它。

 
a2enmod rewrite

 

重启Apache服务器。


sudo service apache2 restart

现在在/var/www/html/codeigniter/创建.htaccess文件并将以下内容放入其中。


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

确保通过设置AllowOverrideAll,并且在虚拟主机文件中添加Order allow,denyallow from all,或者在你的全局apache配置中启用你的.htaccess文件。


<Directory /var/www/>
 Options Indexes FollowSymLinks
 AllowOverride All
 Require all granted
 Order allow,deny
 allow from all
</Directory>

现在从index.php配置文件application/config/config.php中的URL中删除文件。

查找下面的代码,


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

用这个替换。


$config['index_page'] = '';

你现在可以不用index.php文件访问你的URL ,定位到 http://[vultr-instance-ip]/codeigniter/welcome/hello/Jack 看看这个,你应该看到与以前相同的消息。

结束语

我们已经安装了Codeigniter框架,并且从我们的URL中删除了index.php ,你可以通过以下方式了解有关此框架的更多信息官方用户指南

Haojinghui profile image