php程序员的linux基础知识点

近期回顾总结linux基础知识点

近期调整架构方面的问题,所以会使用很多的linux相关知识,做一点点知识总结

批量杀死进程

ps -ef|grep ‘进程关键词’|awk ‘{print $2}’|xargs kill -9

  • awk 提取PID
  • xargs 将参数列表分段传给附带命令
linux磁盘管理
1. df-查看磁盘总体使用情况(-h 根据需要展示大小单位)
2. (待) du-查看文件占用磁盘大小( --max-depth=1 用来确定搜索深度 )
3. (待)fdisk,空间管理工具,可以对挂载的磁盘进行分区和格式
4. 最后使用mount挂载到对应的文件目录入口:`mount 分区 入口路径`
linux下,编译安装php7.3
1. 下载源码
2. 解压:`tar -zvxf 源码压缩包`,cd 进入解压缩目录
3. 开始编译前配置与检测:`./configure --prefix=安装目录 --with-插件 `, 常用插件参考文档地址:[12月工作日志](http://note.youdao.com/noteshare?id=9b0630eb352fd416f89fe0f906e25860)
4. 如果检测有异常,对应安装相应的依赖即可
5. 万年不变编译二连开始:make && make install
6. 编译好以后,辅助完善步骤:
    1. 配置文件:`cp 解压目录/php.ini-product 安装目录/定义配置文件目录`;
    2. php-fpm,php-fpm.conf,php-fpm.d/www.conf,找到安装目录中bin文件夹下,找到对应的php-fpm.bak备份文件,复制一份生成对应文件(cp命令,一般可以新建到安装目录的sbin目录下), 安装目录/etc/目录下可以找到对应配置文件
    3. 其他的辅助项目:php-fpm建立快捷命令,自启动服务注册等等
linux下,编译安装swoole
1. 下载源码
2. 进入源码目录,使用phpize命令(用于准备扩展库的编译环境,生成configure命令指令文件,一般在 `php根目录/bin/phpize`)
3. 此时源码目录中,会有configure文件,使用`./configure --with-php-config=PHP根目录/bin/php-config`指定你需要安装的php版本
4. 有错误的情况下,按照指示,安装好相关依赖(依赖源码编译,一般也是三联,cmake生成make指令文件,然后make && make install)。
5. 然后,编译二连:`make && make install`
6. 等待一定时间,编译后,找到php.ini, 开启扩展:添加 `extension=swoole.so`
7. 检查是否生效:`php -m|grep swoole`
linux后台运行命令
1. 使用 ==&== 字符:`command1 >> command1.log 2>&1 &`, 此时如果不关闭shell窗口,命令会一直在后台运行(其中2>&1是错误与正常的日志全部写入前面指定的文件)
2. 使用nohup+指令+&,后台运行并且忽略shell窗口信号:`nohup command1 >> command1.log 2>&1 &`;
3. (待查) 其他
linux自启动管理
  1. nginx服务自启动

    • centos 7.0下使用
    1. /etc/init.d/,建立相关自启动服务的指令文件,参考12月工作日志
    2. chkconfig --add nginx
    3. chkconfig nginx on
    • centos 7以上,可以利用systemctl便捷建立服务
    1. 先建立/usr/lib/systemd/system/nginx.service文件
    2. nginx.service文件内容,参考https://www.cnblogs.com/piscesLoveCc/p/5867900.html
    [Unit]
    Description=nginx
    After=network.target
      
    [Service]
    Type=forking
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    ExecStop=/usr/local/nginx/sbin/nginx -s quit
    PrivateTmp=true
      
    [Install]
    WantedBy=multi-user.target
    
    1. 文件内容说明:
    [Unit]:服务的说明
    Description:描述服务
    After:描述服务类别
    [Service]服务运行参数的设置
    Type=forking是后台运行的形式
    ExecStart为服务的具体运行命令(指令文件路径按自己系统的路径,这里只是参考)
    ExecReload为重启命令
    ExecStop为停止命令
    PrivateTmp=True表示给服务分配独立的临时空间
    注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
    [Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
    
    
    1. 重载systemctl配置:systemctl daemon-reload
    2. 保存文件,设置开机自启动:systemctl enable nginx.service
    3. 对应使用命令为 systemctl start/stop/reload nginx.service
  2. php-fpm服务自启动

    centos7以上版本,使用systemctl进行配置服务
    1. 开启php-fpm的pid文件:修改php-fpm.conf文件(一般在php安装目录/etc/php-fpm.conf),开启php-fpm.pid文件路径,一般去掉pid = /var/run/php-fpm.pid前面的;号注释服就可以了
    2. 创建文件:/usr/lib/systemd/system/php-fpm.service
    3. 文件内容:
    [Unit]
    Description=php-fpm
    After=syslog.target network.target
      
    [Service]
    Type=forking
    PIDFile=/var/run/php-fpm.pid
    ExecStart=/usr/local/php/sbin/php-fpm
    ExecReload=/bin/kill -USR2 $MAINPID
    ExecStop=/bin/kill -9 $MAINPID
    PrivateTmp=true
      
    [Install]
    WantedBy=multi-user.target
    
    1. 重载systemctl配置:systemctl daemon-reload
    2. 保存文件,设置开机自启动:systemctl enable php-fpm.service
    3. 对应使用命令:systemctl start/stop/reload php-fpm.service
  3. 定制命令自启动

    1. 直接使用 /etc/rc.d/rc.local文件(需要增加运行权限chmod +x rc.local),只需要在文件中添加需要自启动的脚步就可以了

猜你喜欢

转载自blog.csdn.net/qinmin1/article/details/103541585