1. 程式人生 > >Composer是幹嘛的,怎麼用它。(1) 安裝

Composer是幹嘛的,怎麼用它。(1) 安裝

前言:

隨著開源的東西越來越多,一些好的程式碼我們是可以直接拿過來用的,github更是加快了這一節奏,在github上我們可以看到一些開源的專案、程式碼塊、函式庫、類結構等,我們可以直接Fork,然後用在我們自己的專案中,既高效又方便。nodejs 出現後,更是一大批開源的好東西被我們使用,npm就是nodejs中蠻好用的包管理軟體,我們可以用npm 命令複製其他人的一些好的專案,用起來很爽。但是,php中貌似還沒有這樣類似的包管理工具,我們發現別人的程式碼,還是停留在手工階段,手工將其他人的程式碼copy到自己的專案中,有更新我們同樣靠手工copy檔案。於是composer應運而生了。

1、composer是什麼?

前言說了。composer是PHP的包管理、包依賴關係管理工具,有了它,我們就很輕鬆一個命令就可以把他人優秀的程式碼用到我們的專案中來,而且很容易管理依賴關係,更新刪除等操作也很輕易的實現。

2、 composer 的安裝

composer是一款軟體,當然也需要安裝。它支援多平臺,我們將在window和centos 上安裝它。

2.1 wondows 安裝

首先官網下載:https://getcomposer.org/Composer-Setup.exe 。很小。1M都沒有。這個連結永遠是最新版本的。下載好了後。就是各種下一步下一步安裝了,到這一步,需要填入php.ini的所在目錄,記住wamp這類的安裝包會有2個php.ini檔案。不要填apache的目錄所在php.ini。需要填入php目錄下的這個配置檔案。

這樣安裝完成了。很爽。

2.2 安裝的時候可能會出現以下出錯:

1. The openssl extension is missing, which will reduce the security and stability of Composer. If possible you should enable it or recompile php with --with-openssl"


意思是說php沒有開啟openssl配置。我們開啟php目錄下的php.ini。將openssl前面的分號去掉就可以了:


2. 提示php的版本太低,composer支援5.3+的版本。如果你是5.3-的話就只能去升級一下php的版本了。

接下來我們驗證一下安裝成功了沒?開啟cmd。win+r 快捷鍵開啟cmd命令對話方塊,輸入composer:


說明安裝成功了。恭喜。

windows的版本安裝,相對於比較簡單很方便,其實呢,它替我們做了很多事。

1. 幫我們把php和composer這2命令給加到了系統環境變數。這樣我們能全域性只直接使用這2個命令:

我們在安裝的時候可以看到:


我們開啟系統的環境變數看看,是否添加了:


2. 幫我們把php composer.phar命令簡化成composer命令了。很爽:


2.3 linux上的安裝

linux上的安裝其實說簡單也跟簡單,官網上有很多種安裝方式,我們知道第一種就可以了,也是最快的。
curl -s http://getcomposer.org/installer | php

2.4 錯誤提示

1. 如果出現-bash: php: command not found 錯誤提示,說明php是原始碼安裝的,php這個命令沒有加入到系統環境。我們在上一步安裝windows版本的時候,軟體已經幫自動我們幫把php命令加入了系統環境path路徑。

linux下如何把php加入系統環境呢,很簡單:

修改/etc/profile檔案使其永久性生效,並對所有系統使用者生效,在檔案末尾加上如下兩行程式碼
PATH=$PATH:/usr/local/php5/bin
export PATH

最後:執行 命令source /etc/profile或 執行點命令 ./profile使其修改生效,執行完可通過echo $PATH命令檢視是否新增成功。

2. 如果提示:

#!/usr/bin/env php
Some settings on your machine make Composer unable to work properly.
Make sure that you fix the issues listed below and run this script again:
The openssl extension is missing, which means that secure HTTPS transfers are impossible.
If possible you should enable it or recompile php with --with-openssl

也是一樣,php的openssl沒有安裝,需要進入php原始碼重新編譯,我這裡簡單記錄下如何新增php的openssl擴充套件:

1. 因為我是原始碼方式安裝的php,所以需要重新編譯,這點比windows上蛋疼的多。進入php的原始碼包,如果刪除了的,需要重新下載這個對應的版本:

[[email protected] ~]# cd /lamp/php-5.4.11/ext/openssl/
[[email protected] openssl]# 

2. 用phpize新增配置編譯:
#openssl目錄下有個config.w32和config0.m4,把config0.m4改名為config.m4(不清楚什麼原因,必須這麼改,很重要!!!)
[[email protected] openssl]# cp config0.m4 config.m4
[[email protected] openssl]# /usr/local/php/bin/phpize #使用phpize命令動態新增配置
[[email protected] openssl]# ./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config #編譯
[[email protected] openssl]# make
[[email protected] openssl]# make test
[[email protected] openssl]# make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20100525/

注意:如果configure這一步出錯:configure: error: libssl not found!。可能是系統沒安裝openssl擴充套件,可以:yum -y install openssl-devel 安裝。

3. 修改php.ini ,把剛才編譯好的openssl.so新增進去:

[[email protected] no-debug-zts-20100525]# vi /usr/local/php/etc/php.ini 
#GG 定位到最小面,加入這一行:
extension=openssl.so

搞定,由於我們使用php,並沒有用到apache。所以可以不用重啟apache伺服器。

安裝好了後,我們驗證下是否正確安裝:

$ php composer.phar #執行 


3、 composer的使用

我們在正確成功安裝好composer之後,就可以使用這個利器了。不管是windows版本還是linux版本使用命令方式都一樣:
php composer.phar + 命令

我們剛才安裝的windows版本直接可以使用composer 命令,前面說了,其實也是php composer.phar這2個的組合。 新的問題出來了。就是我們每次要去新下載一個其他人的專案,我們都必須要到在新專案的目錄下重新下載一次composer.phar檔案或者是這樣:[[email protected] /]# php  /home/test/composer.phar  相對路徑讀取到composer。能不能也把composer.phar像php命令這樣搞成一個全域性的。直接用 composer該多好啊!
[[email protected] /]# cd /usr/local/composer/
[[email protected] composer]# cp composer.phar /usr/bin/composer 

搞定,這樣就能和windows一樣,全域性使用composer命令了。 由於csdn的蛋疼的文件格式,已經讓我的處女病發作了,再寫下去整個排版都無法直視了。所以,下一篇來講composer的具體使用。

相關推薦

Composer怎麼(1) 安裝

前言: 隨著開源的東西越來越多,一些好的程式碼我們是可以直接拿過來用的,github更是加快了這一節奏,在github上我們可以看到一些開源的專案、程式碼塊、函式庫、類結構等,我們可以直接Fork,然後用在我們自己的專案中,既高效又方便。nodejs 出現後,更是一大批開源

F() 表示式這裡的F我理解是fast的意思能節省讀寫資料庫的時間在資料庫sql語言層面對欄位進行自增(+= 1)操作

1、F() 表示式,F我理解是fast的意思,用它能節省讀寫資料庫的時間,在資料庫sql語言層面對欄位進行自增(+= 1)操作,在Query Expressions章節介紹,這章沒讀過,趕緊收藏。 https://docs.djangoproject.com/en/2.1/ref/models/

編寫一個ArrayList類來儲存1到10之間的數打亂順序後輸出按從小到大輸出按從大到小輸出

/** * Created by whp on 2018/7/30. */ public class Test { public static void main(String[] args) { List list = new ArrayList();

不用再打渠道包了就可以快速統計多個渠道!

使用Shareinstall的免打包渠道統計技術,可以實現只上傳一個APK安裝包,以直接向各個渠道分配渠道連結(二維碼)的方式實現多渠道統計,完全不用再麻煩技術的同事幫忙打包,直接由渠道業務管理的同事操作生成渠道連結即可。 稍微介紹一下,Shareinstall其實是一個APP的推廣輔助

來自語義資訊理論的多標籤分類方法——有簡單方法複雜的?

流行的多標籤分類方法大多把多分類化為多個二分類。流行的有One-to-Rest方法和Binary Relevance方法。 One-to-Rest方法的問題是, 圍繞一個標籤y1分類, 把一個沒有y的例子當成y1的反例, 這時不對的。 比如兩個例子(25歲, “年輕人”)和

在Excel2003中A表示第1B表示第2列Z表示第26列AA表示第27列AB表示第28列以此類推請寫出一個函式輸入字母表示的列號編碼輸出是第幾列

這道題其實就是26進位制字串轉十進位制的題,由於A到Z在ASCii中是連續的 補充知識點: 在ASCII碼中,我們要記住幾個關鍵的字元! 0:48 A:65 a:97 (1)數字在前,大寫字母其後,最後是小寫字母。 (2)小寫字母和大寫字母差32。 下面是簡單的模擬過程

【程序5】 題目:利用條件運算符的嵌套來完成此題:學習成績>=90分的同學A表示60-89分之間的B表示60分以下的C表示 1.程序分析:(a>b)?a:b這是條件運算符的基本例子

window code 例子 prompt 利用 學習 amp text span if…else語句相對比較多,但是容易理解 1 var scroe = window.prompt("請輸入1-100之間的數") 2 scroe = parseInt

1千萬條有重復的短信以文本文件的形式保存一行一條也有重復5分鐘時間找出重復出現最多的前10條短信

ascii碼 宋體 哈希表 文本 深度 pan 進行 span 二次 1,哈希表法   分成若幹組,進行掃描。相同記錄只加1次,重復次數加1,之後進行第二次掃描,得出重復次數的前十名。 2,從小到大排序(我覺得最好不用這種方法,準確性不高) 3,內存映射(建議)   對每條

Java學習——方法中傳遞參數分簡單類型與復雜類型(引用類型)編程計算100+98+96++4+2+1的值遞歸方法實現

dig oid 傳遞 system alt style 類型 遞歸 gen package hello; public class digui { public static void main(String[] args) { /

C程式設計設定兩個外部中斷(INT0和INT1)按鍵優先順序IP=0x04即把外部中斷1設定為高階優先順序外部中斷0為低階優先順序使外部中斷1巢狀在外部中斷0中

問題 用C程式設計,設定兩個外部中斷(INT0和INT1)按鍵,優先順序IP=0x04,即把外部中斷1設定為高階優先順序,外部中斷0為低階優先順序,使外部中斷1巢狀在外部中斷0中。 要求:中斷觸發方式為下降沿觸發,按鍵有消抖功能 模擬 程式碼 #include <

一列數的規則如下: 11、2、3、5、8、13、21、34...... 求第30位數是多少 遞迴演算法實現//斐波那契數列

1 public class MainClass 2 { 3 public static void Main() 4 { 5 Console.WriteLine(Foo(30)); 6 } 7 public static int Foo(int i) 8 {

一列數的規則如下: 11、2、3、5、8、13、21、34...... 求第30位數是多少 遞歸算法實現//斐波那契數列

write pub else ole 位數 return spa sta ati 1 public class MainClass 2 { 3 public static void Main() 4 { 5 Console.WriteLine(F

int.TryParse是怎麼

為什麼現在改用int.TryParse了 以前一直用 int.Parse(x)或者 Convert.ToInt64(x),後來專案中發現如果x變數的值為null是,就報錯了,哪怕我這樣寫 int.Parse(x=x??"0")   意思是:"如果x為空,就給x賦值‘0’ 字串

習題 11.1 將例11.1的程式片斷補充和改寫成一個完整、正確的程式公用繼承方式在程式中應包括輸入資料的函式在程式執行時輸入numnamesexageaddr的值程式應輸出以上

C++程式設計(第三版) 譚浩強 習題11.1 個人設計 習題 11.1 將例11.1的程式片斷補充和改寫成一個完整、正確的程式,用公用繼承方式。在程式中應包括輸入資料的函式,在程式執行時輸入num,n

例題:建立一個物件陣列內放5個學生的資料(學號、成績)指標指向陣列首元素輸出第1,3,5個學生的資料【面向物件設計】

題目: 建立一個物件陣列,內放5個學生的資料(學號、成績),用指標指向陣列首元素,輸出第1,3,5個學生的資料。 解答:  程式程式碼如下: #include <iostream>

習題 12.4 寫一個程式定義抽象基類Shape派生出3個派生類:Circle(圓形)、Rectangle(矩形)、Triangle(三角形)一個函式printArea分別輸出以上

C++程式設計(第三版) 譚浩強 習題12.4 個人設計 習題 12.4 寫一個程式,定義抽象基類Shape,由它派生出3個派生類:Circle(圓形)、Rectangle(矩形)、Triangle(三

習題 12.5 寫一個程式定義抽象基類Shape派生出5個派生類:Circle、Square、Rectangle、Tarpezoid、Triangle虛擬函式分別計算幾種圖形面積並求

C++程式設計(第三版) 譚浩強 習題12.5 個人設計 習題 12.5 寫一個程式,定義抽象基類Shape,由它派生出5個派生類:Circle、Square、Rectangle、Tarpezoid、Triangle。用虛擬函式分別計算幾種圖形面積,並求它們的和

“我有5年工作經驗”“不你只是把1年經驗了5年!”

1 “我想跳槽了!”月前朋友略顯激動的給我發來一條微信。 我問她:“現在的工作不是挺好的嘛,事少、離家近。” “好啥呀,我都工作5年了,還是一個月收入不到5k的底層小會計。” “但是你的工作輕鬆啊。” “輕鬆有

# 從鍵盤輸入一個正整數2的冪次方的形式輸出約定冪次方括號來表示即表示為2(b),b=1冪省略例如139=2^7+2^3+2^1+2^0即:2(7)+2(3)+2+2(0)

樣例輸入: 402 樣例輸出: 2(8)+2(7)+2(4)+2 要求:冪不能重複,如:139=26+26+23+21+20(出現了2個6次方) 參考 C 程式碼: #include<stdio.h> #include<stdlib.h>

把只包含質因子2、3和5的數稱作醜數(Ugly Number)例如6、8都是醜數但14不是因為包含質因子7 習慣上我們把1當做是第一個醜數求按從小到大的順序的第N個醜數

/* 思路: 通俗易懂的解釋: 首先從醜數的定義我們知道,一個醜數的因子只有2,3,5,那麼醜數p = 2 ^ x * 3 ^ y * 5 ^ z,換句話說一個醜數一定由另一個醜數乘以2或者乘以3或者乘以5得到,那麼我們從1開始乘以2,3,5,就得到2,3,5三個醜數,在從這