[精讚] [會員登入]
378

[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

你可能感興趣的文章

[Centos7] 安裝sphinx+php7 在centos7上安裝sphinx,在PHP7上運作正確

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

TFTP Server 安裝及使用 讓設備的網路設定檔或是韌體經由TFTP拷備出來,操作的方法

PHP for sphinx 函式庫安裝 PECL/sphinx PHP>= 5.2.2 已經能原生支援 sphinx,可是預設的沒有裝,我們得自己裝才能用

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

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

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

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

[CentOS] 設定和使用quota quota 的觀念已經很老了,不過每次都會忘記所以寫下來,有需要觀念的朋友請參看鳥哥的網站吧

[bc] linux 的計算機bc 如何計算帶小數點的指數 用 bc 來計算帶小數點的指數,得轉個彎才行

我有話要說


限制:留言最高字數1000字,超過部分會被截掉。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

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

PHP for sphinx 函式庫安裝 PECL/sphinx PHP>= 5.2.2 已經能原生支援 sphinx,可是預設的沒有裝,我們得自己裝才能用

[札記] 2016.7~12月札記 札記,只是札記

[JAVA] JWS, JWT, JWE, JOSE是什麼? [JAVA] JWS, JWT, JWE, JOSE是什麼?非常的複雜,儘量來搞清楚..

「許功蓋」的字以及源由 有玩過電腦一段時間的人,都聽過這個人(有一天我才發現7年級的竟然都不認識這個"人")。 在古老的年代