[精讚] [會員登入]
511

[Centos7] 安裝php套件管理程式Composer+ Codeignioter3

很多人在用的套件管理程式 Composer+ Codeignioter3+ 指定安裝目錄

此文完整連結 http://n.sfs.tw/11141

複製連結 [Centos7] 安裝php套件管理程式Composer+ Codeignioter3@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2017-06-02 14:01:12 最後編修
2017-05-26 12:43:48 By 瘦河馬
 

很多人在用的套件管理程式

安裝Composer[1]

# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# php -r "if (hash_file('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Installer verified
# php composer-setup.php
All settings correct for using Composer
Downloading...
Composer (version 1.4.2) successfully installed to: /root/composer.phar
Use it: php composer.phar
# php -r "unlink('composer-setup.php');"

 安裝完畢把composer.phar搬到程式路徑中並改名為composer[2]

# mv composer.phar /usr/local/bin/composer

這樣就能在任何位置執行。

或是直接在安裝時加上參數即可

# php composer-setup.php --install-dir=/usr/local/bin --filename=composer

使用composer安裝codeigniter3

到你的專案目錄下,假設目前是空的

# cd /var/www/html
由於這個目錄需要root的權限才能寫入,因此以root的身分執行,若有出現警告可以忽略
# composer create-project codeigniter/framework ./

這樣子會在你的目錄下直接產生codeigniter,如果想指定安裝目錄,把後面的 "./" 改成你指定的目錄即可

# ls

裡面的檔案除了codeigniter本身的以外,下面這些屬於composer的,由[2]的解釋:

composer.json  json 資料格式的設定檔,提供資訊給 Composer,讓它知道要安裝什麼套件,及該套件的版本。

composer.lock 會明確列出這個專案中用到的套件及它的版本,可以用來確保其他人使用到同一個版本號的套件。

vendor/ 存放套件的地方

這樣算是裝好了,刪除說明文件

# rm -rf user_guide
# rm readme.rst

修改套件安裝路徑及把用不到套件刪掉

# vi composer.json

把不要的套件刪掉,vendor/ 是預設的安裝路徑,我把他改到 third_party這個路徑,所以修改完後像這樣。

{
    "config": {
        "vendor-dir": "application/third_party"
    },
        "description": "The CodeIgniter framework",
        "name": "codeigniter/framework",
        "type": "project",
        "homepage": "https://codeigniter.com",
        "license": "MIT",
        "support": {
                "forum": "http://forum.codeigniter.com/",
                "wiki": "https://github.com/bcit-ci/CodeIgniter/wiki",
                "irc": "irc://irc.freenode.net/codeigniter",
                "source": "https://github.com/bcit-ci/CodeIgniter"
        },
        "require": {
                "php": ">=5.2.4"
        },
        "suggest": {
        },
        "require-dev": {
        }
}

刪除已安裝套件

# rm vendor/ -rf

更新套件,目前不裝任何套件

# composer update

# ls /var/www/html/application/third_party

可以看到目錄多出兩個檔案,這樣子就設定好了。

用composer安裝套件並測試

先依照codeigniter的說明做mod_rewrite設定

# cd /var/www/html
# vi .htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteBase /
RewriteRule ^(.*)$ index.php/$1 [L]

編輯設定檔

# vi application/config/config.php

$config['composer_autoload'] = APPPATH . 'third_party/autoload.php';

隨便找個套件試試,隨便試,只是要測試能用能順利使用composer裝的第三方套件

安裝套件

# composer require fireball/jwt

修改controller

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
use \Firebase\JWT\JWT;

class In extends CI_Controller {

    public function a()
    {
       $key = "example_key";
       $token = array(
         "iss" => "http://example.org",
        "aud" => "http://example.com",
        "iat" => 1356999524,
        "nbf" => 1357000000
      );

     $jwt = JWT::encode($token, $key);
     $decoded = JWT::decode($jwt, $key, array('HS256'));
     print_r($decoded);
    }
}

輸出

正確!

其他

移除套件

# composer remove vendor/package

參考資料

[1] https://getcomposer.org/download/

[2] Tony Blog http://blog.tonycube.com/2016/12/composer-php.html

[3] https://stackoverflow.com/questions/11883374/how-to-specify-composer-install-path

[4] https://jsnwork.kiiuo.com/archives/2408/php-%E5%9C%A8-codeigniter-%E6%93%8D%E4%BD%9C-composer-%E8%87%AA%E5%8B%95%E8%BC%89%E5%85%A5%E5%A5%97%E4%BB%B6

你可能感興趣的文章

[Centos6] php5.3升級為php5.6 Centos6 + php5.6 升級

[LINUX] 利用 usermod 修改使用者的參數和資料 使用指令 usermod 修改使用者的參數和資料

[Centos7] audit 服務 在紅帽和suse的linux中有一個audit這樣的daemon,寫入的是核心層的記錄。

使用GPG檔案加解密 簡易的檔案加解密方式,可以讓你重要的資料包括文字檔加解密。

SELinux 常用指令和檔案 在Redhat系列中,Centos5以後加入了selinux,他並沒有這麼可怕,不必每次看到Selinux ,就想把他

Linux ext3 系統下刪除檔案救回全記錄 今天一個不小心,下了 rm 的指令,從此奮戰一個下午,終於把檔案救回來,以下是全記錄...

[Centos7] 把帳號新增移除具有root權限等級的sudoer 把帳號新增或移除具有root權限等級的sudoer

[APACHE] PHP<5.5及 PHP>=5.5 安裝APC php5.5版後的apc只能手動安裝,此文包含php<5.5及php>=5.5兩種安裝方法

[Centos6 7] 掛載磁碟 只是掛載新磁碟

安裝網頁套件管理程式 Bower 一個非常棒的Javascript套件管理程式bower,用完愛不釋手。

我有話要說


限制:留言最高字數1000字,超過部分會被截掉。請注意:留言不可帶有網址,會被濾掉。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

為什麼要買長達二十年的保單? 為什麼要買長達二十年的保單?找一個可以說服我買二十年保單的理由。

[jQuery] textarea 的取值和給值 HTML 的 TEXTAREA 標籤若要用 jquery 取值,不能使用 .text() 或 .html() ,使用 .

沒有非誰做不可的事,也沒有不可被取代的人 沒有非誰做不可的事,也沒有不可被取代的人

如何在linux下執行java 原生的java應用程式可以使用簡單的方法在console下面寫出來,適合作簡單的應用

[Freebsd] 定時測試 ADSL 是否斷線並重連 中華電信 ADSL 雖有固定 ip,可是他卻會不定時「斷線」, 使用以下的 方法可以定時測試是否斷線,以及重新撥接。