第一次因為專案需要,而跟 PHP 後端工程師配合,我們選定了CI這套 framework 來使用,對於 CI 算是第一次接觸,因此想把從無到有的架設過程給記錄下來。

codeigniter

1、擁有 php 環境

Mac 內建 Apache,只要打開即可。

sudo apachectl start

2、安裝 CI

  • 官網下載整份文件檔
  • 放進 server 的路徑下 /Libary/WebServer/Documents/
  • 安裝完畢!

3、讀取靜態頁面

新增頁面

此處新增名為 page.php 的檔案 application -> view -> cep(optional dir) -> page.php

  • page.php

新增 static files

如 CSS、JS 檔,習慣性會創建 assets 資料夾將他們放進去,並且放在跟 application 同階層的 dir 內,如圖。 assets

新增 route

application -> config -> routes.php 新增如下:

$route['(:any)'] = 'cep/$1';
$route['default_controller'] = "cep";
$route['404_override'] = '';

新增 controller

在 controllers 資料夾內,新增 php 檔,內定新的 public function,參照 welcome.php 修改即可。

新增一個 class extends CI_Controller,裡面加上 page()這個 public function。

class Cep extends CI_Controller {

    public function index()
    {
        $this->load->view('cep/index');
    }

    public function page()
    {
        $this->load->view('cep/page');
    }

}

路徑修改

  • application -> config -> config.php 改一行 $config['base_url'] = '/專案資料夾名字/';
  • application -> config -> autoload.php 改一行 $autoload['helper'] = array('url'); 原本是沒有 url,加上 url。
  • page.php 這頁的 CSS 和 JS 檔,修改成
<link rel="stylesheet" href="<?php echo base_url(); ?>assets/css/bootstrap.min.css">
<link rel="stylesheet" href="<?php echo base_url(); ?>assets/css/main.css">
<script src="<?php echo base_url(); ?>assets/js/vendor/modernizr-2.6.2.min.js"></script>

如此一來便可以在http://localhost/專案資料夾/index.php/page 看到靜態頁面了。

4、移除 CI URL 上的 index.php

因為每次網址上面都需要有 index.php,覺得不好看,因此兩個步驟把它改掉。

  1. 在 root 加上.htaccess檔,內容如下
RewriteEngine on
RewriteCond $1 !^(index\.php)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
  1. 修改 apache 設定,將 httpd.conf 改掉。 原本 AllowOverride none 改成 All 即可。
<Directory /Library/WebServer/Documents>
    Options FollowSymLinks
    AllowOverride All
</Directory>
  1. 重新啟動 apache sudo apachectl restart

後記

因尚有其他專案,故本專案檔是全部在一個資料夾內,非直接在 web server 的 root 實作。