说明:如果在每个命令目录都存在某个命令时,通过系统的 $PATH 变量决定优先级
$ echo $PATH
# 输出:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/protobuf/bin/:/root/bin
如果你的程序命令没有放在以上文件夹,我们也可通过相对路径以及绝对路径启动该命令:
$ ./php -m # 当你在 php 命令文件目录中时,
$ /www/server/php/72/bin/php -m # 宝塔 php 命令目录
根据这个原理,我们可以安装多个 ph p版本,并启动
$ /www/server/php/72/bin/php -m
$ /www/server/php/56/bin/php -m
我们可以使用 ps 查看当前进程(相当于windows的任务管理器)
$ ps -ef |grep php
输出:
root 8351 8346 0 09:07 ? 00:00:00 /usr/bin/php /www/wwwroot/es3_demo/test.php
root 10618 8970 0 14:26 pts/0 00:00:00 grep --color=auto php
用于筛选出当前运行中,包含php关键字的进程信息 通过kill -9 PID可杀死某一个进程:
$ kill -9 10618
使用killall 可杀死指定名字的进程:
killall -9 php
说明:kill 和 killall 其实是给进程发送一个进程信号的命令,-9 是 SIGKILL 信号,终止进程,可通过kill,killall 命令发送其他信号
swoole扩展,先下载swoole官方源码:https://github.com/swoole/swoole-src 解压,进入目录
$ phpize # 当不存在 ./configure 时执行
$ ./configure --with-php-config=/usr/local/php/bin/php-config
$ make
$ make install
这时候 .so 文件会自动生成到 php 扩展目录(有些扩展需要自己移动进去), 在 php.ini 最后面加上
extension = swoole.so
然后 php -m 查看扩展,就能看到 swoole 扩展安装好了
我们知道,开启一个 tcp/udp 服务,都得占用一个端口,所有我们可以通过查看端口的方式去判断服务是否开启成功.
使用netstat命令可查看端口占用情况
netstat命令各个参数说明如下:
查看80端口占用情况:
$ netstat -ntulp |grep 80
输出:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1036/nginx: master
lsof命令需要自行安装
$ sudo yum install lsof
使用方法如下:
$ lsof -i tcp # 列出所有tcp网络连接
$ lsof -i udp # 列出所有udp网络连接信息
$ lsof -i :8080 # 列出使用8080端口信息
当你开启一个 tcp 服务,却发现访问不了,那么你得考虑下是否是防火墙拦截了
目前,最常见的拦截有以下几种情况:
服务器本机拦截,可通过防火墙管理软件,开端口或者直接关闭防火墙进行解决(不建议):
例如 centos 7下,防火墙管理软件为 firewalld 基础命令为:
$ systemctl start firewalld # 启动
$ systemctl stop firewalld # 停止
$ systemctl status firewalld # 查看状态
$ systemctl disable firewalld # 开机禁用
$ systemctl enable firewalld # 开启启动
$ firewall-cmd --zone=public --add-port=80/tcp --permanent # 开放80/tcp端口 (--permanent永久生效,没有此参数重启后失效)
$ firewall-cmd --reload # 重新加载配置
$ firewall-cmd --zone= public --query-port=80/tcp # 查看80/tcp端口
$ firewall-cmd --zone= public --remove-port=80/tcp --permanent # 删除该端口开放