[PHP] centos下通过命令行安装composer
摘要
最近有一个项目需要用到Laravel框架,Laravel 使用 Composer 来管理代码依赖。所以,在使用 Laravel 之前,得先安装了 Composer。最后使用 Composer 来下载 Laravel 安装包。
一、基本配置
操作系统:阿里云ECS centos6.8
PHP环境:PHP 5.6.3 (cli)
OpenSSL: 1.0.1u
composer官网下载地址: https://getcomposer.org/download/
二、通过命令行安装composer
在终端依次运行以下命令:
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;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
这里官网有一段说明:
This installer script will simply check some php.ini settings, warn you if they are set incorrectly, and then download the latest composer.phar in the current directory. The 4 lines above will, in order:
Download the installer to the current directory
Verify the installer SHA-384 which you can also cross-check here
Run the installer
Remove the installer
大概意思就是需要检查要一下PHP配置,然后下载一个最新的composer包在本地,然后验证是否支持 SHA-384,最后安装完了就把包删了。
三、可能发生的错误(略)
我是遇到了。。。没遇到就直接跳过
[Composer\Downloader\TransportException] The "https://getcomposer.org/version" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed Failed to enable crypto failed to open stream: operation failed
大概意思就是证书验证没通过也就是证书路径没找到,GG了一下,找到了解决办法:
1.自己下载一个证书
wget http://curl.haxx.se/ca/cacert.pem
2.将证书复制到/usr/local/openssl目录下(可以略过)
mv cacert.pem /usr/local/openssl/cert.pem
3.打开php.ini配置openssl证书路径
vim /usr/local/php/etc/php.ini
4.找到openssl.cafile=,去掉“;”注释
openssl.cafile=/usr/local/share/openssl/cert.pem
5.ESC保存wq退出
6.重启PHP
四、安装完成
本地有一个composer.phar的包,这个时候我们就可以执行以下命令来完成composer操作
php composer.phar --version
这样子是不是很麻烦?这时候就将composer添加到系统可执行路径下
mv composer.phar /usr/local/bin/composer
然后执行查看当前composer版本
composer --version
PS:composer还有一个不成文(gan de hao)的规定就是不能使用root或super user直接执行。。。官网有介绍说是要保护系统的安全。
那就切换到普通用户角色
su singee77
输入密码就可以执行了。