搭建私有composer仓库操作步骤
1、下载composer/catis
git clone https://github.com/composer/satis.git
通过这条命令,下载composer私有仓库的文件。
下载到本地一个 satis 文件夹
说明:下载的文件,需要php7.3及以上的环境,如果版本不是7.3的,请升级php版本。
linux下php7.3安装教程:http://www.xiaosongit.com/index/detail/id/841.html
2、下载composer.phar文件
php -r "readfile('http://install.phpcomposer.com/installer');" | php
3、通过composer install 安装
[root@iz25vpndgurz satis]# /usr/local/php/php7.3/bin/php -v PHP 7.3.10 (cli) (built: Feb 22 2020 16:40:50) ( ZTS )
首先将composer的镜像资源设置为 中国镜像
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
采用执行php路径的形式执行:
[root@iz25vpndgurz satis]# /usr/local/php/php7.3/bin/php composer.phar install
[root@iz25vpndgurz satis]# /usr/local/php/php7.3/bin/php composer.phar install Do not run Composer as root/super user! See https://getcomposer.org/root for details Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. It is recommended that you run `composer update` or `composer update <package name>`. Package operations: 22 installs, 38 updates, 4 removals - Removing symfony/yaml (v3.2.8) - Removing symfony/debug (v3.2.8) - Removing seld/cli-prompt (1.0.3) - Removing phpunit/phpunit-mock-objects (3.4.3)
执行过程需要等待一会,网络比较偏慢
4、创建satis.json文件
{ "name": "syz_composer_repository", "homepage": "https://composer.xiaosongit.com", "repositories": [], "abandoned": { "dflydev/markdown": true }, "require": { "guzzlehttp/guzzle": "6.5.2", "lcobucci/jwt": "^3.3" }, "config": { "secure-http": false }, "archive": { "directory": "dist", "format": "tar", "prefix-url": "https://composer.xiaosongit.com/", "skip-dev": true, "blacklist": [ "dflydev/markdown" ] }, "require-dependencies": true, "require-dev-dependencies": true }
5、执行命令拉取静态生成静态文件
./bin/satis build satis.json public
此操作过程,是根据satis.json 获取远程数据。会把远程的数据拉取到本地服务器。
切记不使用的包文件不要获取,占用磁盘资源比较多
6、配置服务器访问composer
到此为止 私有仓库搭建完毕。
遇到的问题:
php的Allowed memory size of 134217728 bytes exhausted问题解决办法
报错:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 128 bytes) in xxxx/mysqli_result.php on line 183
解析: 134217728/1024/1024 = 128
解决方案1:
通过ini_set函数修改配置选项值
ini_set(‘memory_limit’,’256M’); //升级为256M内存
解决方案2:
1、修改php.ini
修改php配置
vi /usr/local/php/etc/php.ini
memory_limit = 128 改成memory_limit = 256
php-fpm重启
/etc/init.d/php-fpm restart
重启Nginx
service nginx restart
PHP5中,对于memory_limit的设定已经从以往的8M扩大到128M的上限。
对于配置中的定义解释是: memory_limit = 128M ; Maximum amount of memory a script may consume (128MB) 最大单线程的独立内存使用量。
也就是一个web请求,给予线程最大的内存使用量的定义。
memory_limit的内存分配,标配是128M。一旦独立的线程超过了128M,那PHP会报错: Fatal error: Allowed memory size of 33554432 bytes对于8G内存的服务器,如果同时并发的响应达到50,每个都是128M的峰值,那估计也是服务器会卡死的时候。
尽量降低128M的内存配置,如果调整至64M,服务器的负载基本能下降一半左右,如果能调整至32M效果更好。但是对于应用的要求就更高,很多表建立初期就没有考虑到这个问题,如果你要采用memcache作为数据的存储,必须提前完成优化数据表的设计部署,降低独立线程PHP的内存使用量,服务器的响应和负载降低的就不仅仅是几个百分点的效果了。