一、composer常用命令列表和实践使用
1. composer常用的命令列表如下:
#. composer install 命令(composer.lock与composer.json)
如果当前目录下存在composer.lock文件,则从此文件读取依赖版本,否则就读取composer.json文件,处理依赖关系,把依赖安装到vendor目录成功后并创建composer.lock文件。composer.lock相当于一个当前使用各依赖的一个版本的缓存,防止随意修改升级带来问题。在修改了composer.json但是没有修改composer.lock的时候执行install命令会提示没有修改不需要更新,这时需要删除composer.lock文件以重新install.
composer update 升级依赖
要获取依赖的最新版本,并且升级composer.lock 文件,使用composer update命令,这时会忽略已存在的composer.lock文件,直接读取composer.json下载最新的符合条件的依赖,并更新composer.lock.
#. composer require 安装新的依赖包
composer require 命令用来安装新的依赖包,并将依赖写入当前目录的 composer.json 文件中。如果 composer.json 文件中,添加或改变了依赖,修改后的依赖关系将被安装或者更新。
#. composer search 搜索依赖包
composer search 命令可以搜索远程的依赖包,通常它只搜索packagist.org上的包,你可以简单的输入你的搜索条件。例如composer search monolog
#. composer show 列出可用软件包
composer show列出所有可用的软件包,你可以使用 show 命令。
#. composer config composer编辑配置
composer config 命令允许你编辑 Composer 的一些基本设置,无论是本地的 composer.json 还是全局的 config.json 文件。
语法:config [options] [setting-key] [setting-value1] ... [setting-valueN]
setting-key 是配置选项的名称,setting-value1 是配置的值。可以使用数组作为配置的值(像 github-protocols),多个 setting-value 是允许的。
例如,全局配置 Composer 的国内镜像:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
#. composer config --list 查看 Composer 的配置信息:
2. 命令使用示例如下:
[kermit@123 queue]$ composer show
phpmailer/phpmailer dev-master 028acee PHPMailer is a full-featured email creation and transfer class for PHP
ssdb/phpssdb dev-master 4583553 SSDB PHP Client
[kermit@123 queue]$ somposer config --list
bash: somposer: command not found
[kermit@123 queue]$ composer config --list
[repositories.packagist.org.type] composer
[repositories.packagist.org.url] https?://repo.packagist.org
[repositories.packagist.org.allow_ssl_downgrade] true
[process-timeout] 300
[use-include-path] false
[preferred-install] auto
[notify-on-install] true
[github-protocols] [https, ssh]
[vendor-dir] vendor (/opt//queue/vendor)
[bin-dir] {$vendor-dir}/bin (/opt//queue/vendor/bin)
[cache-dir] /home/kermit/.composer/cache
[data-dir] /home/kermit/.composer
[cache-files-dir] {$cache-dir}/files (/home/kermit/.composer/cache/files)
[cache-repo-dir] {$cache-dir}/repo (/home/kermit/.composer/cache/repo)
[cache-vcs-dir] {$cache-dir}/vcs (/home/kermit/.composer/cache/vcs)
[cache-ttl] 15552000
[cache-files-ttl] 15552000
[cache-files-maxsize] 300MiB (314572800)
[bin-compat] auto
[discard-changes] false
[autoloader-suffix]
[sort-packages] false
[optimize-autoloader] false
[classmap-authoritative] false
[apcu-autoloader] false
[prepend-autoloader] true
[github-domains] [github.com]
[bitbucket-expose-hostname] true
[disable-tls] false
[secure-http] true
[cafile]
[capath]
[github-expose-hostname] true
[gitlab-domains] [gitlab.com]
[store-auths] prompt
[archive-format] tar
[archive-dir] .
[htaccess-protect] 1
[home] /home/kermit/.composer
[kermit@123 queue]$
二、服务器lnmp环境自动化部署脚本
以前公司运维用来自动化服务器lnmp环境的shell脚本,这里没有mysql的,可能是我以前剪切掉了,mysql的部署也有过一篇文章,不记得是哪篇,如有需要,请在博客中进行搜索, 整个里面的路径自己去完善一下,因为公司内用的是内网的资源路径,写在这里也没有用。在我的这个小站里搜索也都能搜索到下载路径。publish:November 6, 2018 -Tuesday 自动化部署脚本如下:
#!/bin/bash
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
rpm --import /etc/pki/rpm-gpg/RPM*
yum -y install gcc gcc-c++ autoconf openssl openssl-devel perl-devel perl-ExtUtils-Embed
yum -y install autoconf* automake* zlib* libxml* ncurses ncurses-devel* libgcrypt* libtool*
yum -y install cmake bison libaio readline-devel glibc glibc-devel glib2 glib2-devel libidn libidn-devel
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gd gd-devel mysql-devel
yum -y install libmcrypt libmcrypt-devel mcrypt mhash curl curl-devel bzip2 bzip2-devel e2fsprogs e2fsprogs-devel libevent libevent-devel re2c
yum -y install perl perl-devel perl-ExtUtils-Embed
#添加www用户
/usr/sbin/groupadd www && /usr/sbin/useradd -g www www -s /sbin/nologin
#pcre的下载路径自己填写
wget -c http://pathto/source/package/pcre-8.39.tar.gz
tar -zxvf pcre-8.39.tar.gz
cd pcre-*
./configure
make &&make install
cd ..
#nginx的下载路径自己填写
wget -c http://pathto/source/package/nginx-1.10.1.tar.gz
tar -zxvf nginx-1.10.1.tar.gz
cd nginx-*
./configure --user=www --group=www --prefix=/opt/modules/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_perl_module --with-pcre=../pcre-8.39 --with-debug
make && make install
cd ..
#添加进自启动
/opt/modules/nginx/sbin/nginx
echo "/opt/modules/nginx/sbin/nginx" >>/etc/rc.local
#php的下载路径自己填写
wget -c http://pathto/source/package/php-5.6.24.tar.gz
tar -zxvf php-5.6.24.tar.gz
cd php-5.6.24
./configure --prefix=/opt/modules/php --with-config-file-path=/opt/modules/php/etc \
--with-libdir=lib64 --with-mysql --with-mysqli \
--with-iconv-dir --with-freetype-dir --with-jpeg-dir \
--with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml \
--disable-rpath --enable-bcmath --enable-shmop \
--enable-sysvsem --enable-inline-optimization --with-curl \
--enable-mbregex --enable-mbstring --with-mcrypt \
--enable-ftp --with-gd --enable-gd-native-ttf --with-openssl \
--with-mhash --enable-pcntl --enable-sockets --with-xmlrpc \
--enable-zip --enable-soap --with-pear --with-gettext \
--enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-opcache
make && make install
#php安装后的后续处理
cp php.ini-production /opt/modules/php/etc/php.ini
cd ..
cp /opt/modules/php/etc/php-fpm.conf.default /opt/modules/php/etc/php-fpm.conf
echo "/opt/modules/php/sbin/php-fpm" >>/etc/rc.local
/opt/modules/php/sbin/php-fpm
#安装扩展
cd php-5.6.24/ext/pdo_mysql/
/opt/modules/php/bin/phpize
./configure --with-php-config=/opt/modules/php/bin/php-config
make && make install
cd ../../..
#mongo安装,下载路径自己填写
wget http://pathto/source/package/mongo-1.6.14.tgz
tar -zxvf mongo-1.6.14.tgz
cd mongo-1.6.14
/opt/modules/php/bin/phpize
./configure --with-php-config=/opt/modules/php/bin/php-config
make && make install
cd ..
#redis安装,下载路径自己填写
wget http://pathto/source/package/redis-2.2.8.tgz
tar -zxvf redis-2.2.8.tgz
cd redis-2.2.7
/opt/modules/php/bin/phpize
./configure --with-php-config=/opt/modules/php/bin/php-config
make && make install
cd ..
#amqp安装,下载路径自己填写
wget http://pathto/source/package/amqp-1.7.1.tgz
tar -zxvf amqp-1.7.1.tgz
cd amqp-1.7.1
yum install librabbitmq-devel librabbitmq
/opt/modules/php/bin/phpize
./configure --with-php-config=/opt/modules/php/bin/php-config
make && make install
cd ../../..
#写入php扩展
cat >> /opt/modules/php/etc/php.ini <<EOF
extension_dir = "/opt/modules/php/lib/php/extensions/no-debug-non-zts-20131226/"
extension="mongo.so"
extension="redis.so"
extension="pdo_mysql.so"
extension="amqp.so"
EOF
三、netstat命令常用选项笔记-及state各值的意义
netstat命令是一个常用的非常有用的监控TCP/IP网络的的工具,今天在使用的时候又忘了它的选项,另外之前没有发现它还有一个-c选项,我在使用的时候还刷了好几把,今天再简单整理一下,先列出netstat的全部[选项]
-a或--all:显示所有连线中的Socket; -A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址; -c或--continuous:持续列出网络状态; -C或--cache:显示路由器配置的快取信息; -e或--extend:显示网络其他相关信息; -F或--fib:显示FIB; -g或--groups:显示多重广播功能群组组员名单; -h或--help:在线帮助; -i或--interfaces:显示网络界面信息表单; -l或--listening:显示监控中的服务器的Socket; -M或--masquerade:显示伪装的网络连线; -n或--numeric:直接使用ip地址,而不通过域名服务器; -N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称; -o或--timers:显示计时器; -p或--programs:显示正在使用Socket的程序识别码和程序名称; -r或--route:显示Routing Table; -s或--statistice:显示网络工作信息统计表; -t或--tcp:显示TCP传输协议的连线状况; -u或--udp:显示UDP传输协议的连线状况; -v或--verbose:显示指令执行过程; -V或--version:显示版本信息; -w或--raw:显示RAW传输协议的连线状况; -x或--unix:此参数的效果和指定"-A unix"参数相同; --ip或--inet:此参数的效果和指定"-A inet"参数相同。
其中比较常用的组合特别说明一下,-a选项会列出所有监听状态、连接状态、等待状态等的全数据。而t、u、x是按照连接协议将这些区分开来。
# netstat -a #列出所有端口 # netstat -at # 列出所有TCP端口 # netstat -au # 列出所有UDP端口 # netstat -ax # 列出所有UNIX端口
和-a选项不同,使用-l只列出当前监听的状态,比如数据库3306一般只有一条监听状态,但是连接等待等其它状态会有很多。
# netstat -l #列出所有监听的端口 # netstat -lt # 只显示监听的TCP端口 # netstat -lu # 只显示监听的UDP端口 # netstat -lx # 只显示监听的UNIX端口
通过使用的组合:
#列出所有端口包括监听状态以及所有已连接等待挂起的连接,这个适合用于统计连接数,例如:
netstat -anp
#列出所有监听的端口,在排查某个端口被哪个应用程序占用时使用这个一目了然
netstat -lnp
上面两个常用的参数中的关键选项就是p选项,其能将应用PID/Program name直白地显示出来。另外-n选项直接使用ip地址,而不通过域名服务器,netstat 会通过反向域名解析技术查找每个 IP 地址对应的主机名。这会降低查找速度,如果你觉得 IP 地址已经足够,而没有必要知道主机名,就使用 -n 选项禁用域名解析功能。另外还有一个-c选项挺好用的,有时在监控的时候需要让它实时变化持续输出信息,就像top一样隔几秒更新一下一样。-c可以让netstat的数据也隔几秒进行更新。
netstat能显示内核路由信息,使用命令:netstat -rn ,其效果和route -n 是一样的。
另外netstat能显示网络接口信息。比较好的用法是nestat -ie 其效果和ifconfig 一样。
其它显示所有端口的统计信息 netstat -s等,不过用得较少。基本常用的就是:netstat -anp , netstat -lnp 以及加-l、-t筛选监听、TCP连接两个选项。
其它:关于netstat命令中state各值的意义
1、LISTENING状态:服务启动后首先进入侦听(LISTENING)状态(服务端的状态)。State显示是LISTENING时表示处于侦听状态,就是说该端口是开放的,等待连接,但还没有被连接。就像你房子的门已经敞开的,但还没有人进来。
2、ESTABLISHED状态:ESTABLISHED的意思是建立连接。表示两台机器正在通信。
3、TIME_WAIT状态:TIME_WAIT的意思是结束了这次连接。说明监听的端口曾经有过访问,但访问结束了,等待处理下一个请求。
4、SYN_SENT状态:与LISTENING状态相对应,SYN_SENT是客户端的状态,从本机访问其它计算机服务时打开的源端口,SYN_SENT状态表示请求连接,当你要访问其它的计算机的服务时首先要发个同步信号给该端口,此时状态为SYN_SENT,如果连接成功了就变为 ESTABLISHED,此时SYN_SENT状态非常短暂。但如果发现SYN_SENT非常多且在向不同的机器发出,那你的机器可能中了冲击波或震荡波之类的病毒了。这类病毒为了感染别的计算机,它就要扫描别的计算机,在扫描的过程中对每个要扫描的计算机都要发出了同步请求,这也是出现许多SYN_SENT的原因。