作为程序员一定要保持良好的睡眠,才能好编程

composer私有服务器搭建(satis)基础教程

发布时间:2020-02-28


搭建私有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


image.png



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/


image.png



采用执行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    获取远程数据。会把远程的数据拉取到本地服务器。


切记不使用的包文件不要获取,占用磁盘资源比较多


image.png


6、配置服务器访问composer


image.png




image.png


到此为止 私有仓库搭建完毕。





遇到的问题:




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的内存使用量,服务器的响应和负载降低的就不仅仅是几个百分点的效果了。