[精讚] [會員登入]
394

[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 的ifconfig和netstat Centos7 和RHEL 7 最小安裝中竟然沒有ifconfig和netstat?原來centos/rhel準備把這兩個指令作廢,那怎麼辦?

DNS壓力測試工具queryperf 要怎麼知道我安裝的DNS是否能耐受的住網路上的攻擊或大量查詢,這裡有一個免費的工具 queryperf

[Centos6] 安裝VNC連線程式 在Centos6桌上環境安裝VNC 連線程式

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

[Centos7] 安裝apache+php7+mariadb10+selinux Centos7 安裝apache+php7+mariadb10+selinux

[Centos7] 使用網路安裝 Centos7 使用網路來安裝Centos7,雖然這不是什麼新鮮事,但可以省你的磁碟空間或光碟片

[CentOS] 改錯fstab 無法開機怎麼辦? Linux 改錯fstab 無法開機怎麼辦?

[Centos] 安裝及使用postfix,設定虛擬帳號及轉寄 使用postfix來設定虛擬帳號及轉寄

[Linux] mongodb 初步--2/3 我使用mongo 的一些大小事:叢集

[Centos7] 新的防火牆firewalld Centos7新的防火牆firewalld 和前面的iptables有很大的不同

我有話要說


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

訪客留言

[無留言]

隨機好文

HP SAS硬碟leds燈號說明 HP SAS硬碟leds燈號(hp g7/g6系統適用)說明

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

Smarty安裝 smarty 是著名的樣版引擎,非常的好用,用多了突然發現拿掉smarty反而不會寫php了,以下是安裝過程..

[Centos6] 安裝wordpress Centos 6下安裝wordpress,非常簡單

[CKeditor4] 修改特殊字元 CKeditor4 中設定自己想用的特殊字元