都说php单纯,那是他们帮你实用性好。或者说在linux布署php因此高效率运行出来,很多十多年php合作开发实战经验的人也是不乐意的。即使牵涉的科学习题并许多。(windows合作开发自然环境无此责任编辑谈及中俄)写出该文,协助他们归纳,期望也能协助刚进阶的网络管理阿宝。

以来列举大背景科学知识 责任编辑如前所述Centos 7作业控制系统(Fedora, Redhat及类似于控制系统)

一、大背景科学知识

  • yum
  • rpm
  • wget
  • ln
  • vim
  • systemctl
  • .bash_profile
  • Red Hat Enterprise Linux 7 简写 rhel_7 (
  • Extra Packages for Enterprise Linux (or EPEL)

Linux的yum

yum( Yellow dog Updater, Modified) 大黄狗,哈哈。是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。如前所述 RPM 包管理,能够从指定的服务器自动下载 RPM 包然后加装,可以自动处理依赖性关系,因此一次加装所有依赖的软件包,无须繁琐地一次次下载、加装。yum 提供了查找、加装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

自动草稿

如CentOS控制系统内置的yum源中,没有想要的加装包。可额外添加yum源。 比较常用yum源,epel 和 remi 。

添加yum源,都会在/etc/yum.repos.d/文件夹中添加有相应的.repo文件

1、加装 EPEL 源。
 yuminstallepel-releaseepel-release这一软件包被包括在 CentOS 的 Extras 仓库中,加装后EPEL源已默认启用epel仓库。

哈哈,我也是搬过来的fedoraproject.org/wiki/EPEL/zh-cn

什么是企业版 Linux 附加软件包(EPEL)

企业版 Linux 附加软件包(以下简称 EPEL)是一个 Fedora 特别兴趣小组,用以创建、维护以及管理针对企业版 Linux 的一个高质量附加软件包集,面向的对象包括但不限于 红帽企业版 Linux (RHEL)、 CentOS、Scientific Linux (SL)、Oracle Linux (OL) 。

EPEL 的软件包通常不能与企业版 Linux 官方源中的软件包发生冲突,或者互相替换文件。EPEL 项目与 Fedora 基本一致,包含完整的构建控制系统、升级管理器、镜像管理器等等。

我可以信赖这些软件包吗?

EPEL 项目致力于提供优质和稳定的软件包服务。然而,EPEL 是由志愿者所维护的,因此不提供任何商业支持。这种项目的实质就是,软件包会随着单个版本的进程加入和退出 EPEL 仓库。此外,有可能偶尔一些不兼容的升级发布后需要管理员的操作。根据政策将会提前通知给予管理员足够的时间去测试和提供建议。

加装remi 源

CentOS7 :wgethttps://rpms.remirepo.net/enterprise/remi-release-7.rpmrpm-Uvh remi-release-7.rpm

加装remi 源 以后,已默认启用 remi-safe 仓库也可自行开启remi仓库。vim/etc/yum.repos.d/remi.repo将其中 [remi] 下的enabled=0改为enabled=1,保存退出。

都说 :remi源有很多版本的PHP 。哈哈

blog.remirepo.net/post/2017/02/23/Additional-PHP-packages-for-RHSCL

什么是 SCLO?什么是 SCLO RH?

前缀rh-用于在 Red Hat Software Collections 产品中提供的 Red Hat 集合;如果是由社区创建的集合就是 sclo-,。

我看有的把Software Collections 简写成了 SCL有的是 sclo。请大牛指点

yum 语法

yumrepolist all//显示所有仓库yumrepolist enabled//显示可用的仓库yuminstall package_name//下载并加装一个rpm包yumupdate package_name 更新一个rpm包yumremove package_name 删除一个rpm包yumsearch package_name 在rpm仓库中搜寻软件包yuminfo package_name 查看加装包的信息yumlocalinstall package_name.rpm 将加装一个rpm包,使用你他们的软件仓库为你解决所有依赖关系yumupdate package_name.rpm 更新当前控制系统中所有加装的rpm包yumlist 列举当前控制系统中加装的所有包yumclean packages 清理rpm缓存删除下载的包yumclean headers 删除所有头文件yumclean all 删除所有缓存的包和头文件
~]yumcheck-update加载的插件:product-id,search-disabled-repos,subscription-managerdracut.x86_64033-360.el7_2rhel-7-server-rpmsdracut-config-rescue.x86_64033-360.el7_2rhel-7-server-rpmskernel.x86_643.10.0-327.el7rhel-7-server-rpmsrpm.x86_644.11.3-17.el7rhel-7-server-rpmsrpm-libs.x86_644.11.3-17.el7rhel-7-server-rpmsrpm-python.x86_644.11.3-17.el7rhel-7-server-rpmsyum.noarch3.4.3-132.el7rhel-7-server-rpms

上面输出中的包被列为可用更新。列表中的第一个包是dracut。示例输出中的每一行都由几行组成,如果是dracut

  • dracut— 包的名称,
  • x86_64— 包所针对的 CPU 架构,
  • 033— 要加装的更新包的版本,
  • 360.el7— 更新包的发布,
  • _2— 构建版本,作为 z-stream 更新的一部分添加,
  • rhel-7-server-rpms— 更新包所在的存储库。

输出还显示我们可以更新内核(内核包)、yum 和 RPM 本身(yumrpm包)以及它们的依赖项(例如rpm-libsrpm-python包),所有这些都使用该yum命令。

记住yum加装完,需要用rpm查询相关信息

rpm -ql php72w-fpm

记住yum加装完,需要用rpm查询相关信息

rpm -ql php72w-fpm

记住yum加装完,需要用rpm查询相关信息

rpm -ql php72w-fpm

[root@z yum.repos.d]rpm -ql php72w-fpm/etc/logrotate.d/php-fpm
/etc/php-fpm.conf
/etc/php-fpm.d
/etc/php-fpm.d/www.conf
/etc/sysconfig/php-fpm
/usr/lib/systemd/system/php-fpm.service
/usr/lib/tmpfiles.d/php-fpm.conf
/usr/sbin/php-fpm
/usr/share/doc/php72w-fpm-7.2.34/usr/share/doc/php72w-fpm-7.2.34/fpm_LICENSE
/usr/share/doc/php72w-fpm-7.2.34/php-fpm.conf.default/usr/share/fpm
/usr/share/fpm/status.html
/usr/share/man/man8/php-fpm.8.gz
/var/log/php-fpm
/var/run/php-fpm

Linux的rpm

自动草稿

linux软件分为 二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接加装在计算机中,而源代码包将会由RPM自动编译、加装。源代码包经常以src.rpm作为后缀名。Debian, Ubuntu参考 DEB 和APT软件工具 常用命令组合:

rpm 语法

-ivh:加装显示加装进度--install--verbose--hash-Uvh:升级软件包--Update;-qpl:列举RPM软件包内的文件信息[Query Package list];
-qpi:列举RPM软件包的描述信息[Query Packageinstallpackage(s)];
-qf:查找指定文件属于哪个RPM软件包[QueryFile];
-Va:校验所有的RPM软件包,查找丢失的文件[ViewLost];
-e:删除包

wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,因此可以使用 HTTP 代理。”wget” 这个名称来源于 World Wide Web 与 get 的结合。因参数众多,这里不再列举,自行搜索。类似于的有curl

wget语法

wget-odownload.logURL比如:wget-oaaa.tarhttpxxxxx.tar

Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于于 windows 的任务管理器。

ps语法

ps [options] [--help]
ps 的参数非常多, 在此仅列举几个常用的参数并大略介绍含义-A 列举所有的进程-w 显示加宽可以显示较多的资讯-au 显示较详细的资讯-aux 显示所有包含其他使用者的行程au(x) 输出格式 :

ps -ef | grep 进程关键字

ps -ef | grep php

Linux netstat 命令用于显示网络状态。

利用 netstat 指令可让你得知整个 Linux 控制系统的网络情况。

因参数众多,这里不再列举,自行搜索最常用的如下方显示

netstat -tunlp |grep端口号
netstat -tunlp |grep9000

Linux的service

Linux 服务管理两种方式service和systemctl

systemd是Linux控制系统最新的初始化控制系统(init),作用是提高控制系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。systemd对应的进程管理命令是systemctl。

service请自行搜索

systemctl语法

systemctlstart php-fpmsystemctlstatus php-fpmsystemctlstop php-fpmsystemctlrestart php-fpmsystemctlenable php-fpmsystemctldidable php-fpm

linux家目录的 bash_profile

如果你想对所有的使用bash的用户修改某个实用性并在以后打开的bash都生效的话可以修改这个文件,修改这个文件不用重启,重新打开一个bash即可生效。

~/.bash_profile:每个用户都可使用该文件输入专用于他们使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些自然环境变量,执行用户的.bashrc文件.

Linux grep

命令用于查找文件里符合条件的字符串。

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名称为,则 grep 指令会从标准输入设备读取数据。

ps -ef |grepphp
或者grep-r9000php-fpm.conf

Linux ln软连接

Linux ln(英文全拼:link files) ,它的功能是为某一个文件在另外一个位置建立一个同步的链接。

当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复地占用磁盘空间。类似于于windows的快捷方式

ln [参数][源文件或目录][目标文件或目录]

软连接的删除,直接删除软连接的目标文件就可以了。

压缩包管理

自动草稿

Linux的tar

最常用的打包命令是 tar,使用 tar 程序打出来的包我们常称为 tar 包,tar 包文件的命令通常都是以 .tar 结尾的。生成 tar 包后,就可以用其它的程序来进行压缩了。其他的还有常用的压缩与解压缩命令有:tar、gzip、gunzip、bzip2、bunzip2、compress 、uncompress、 zip、 unzip、rar、unrar 等。但一般tar和gz一起使用,打包和压缩一起搞。linux就是好,约定大于实用性,比如.tar.gz就知道是用tar打包了因此也压缩了。

打包tar-cfall.tar*.jpg打包因此压缩tar-cvzfall.tar.gz*.jpg解压tar-xzfall.tar.gztar-xzfall.tgz

终于可以开始加装自然环境了

源码加装

即使php的加装和运行依赖很大底层库,那第一步一定是先把需要的底层库加上。不然就会遇到各种缺少依赖,又牵涉到了yum源的科学习题了。多呀。

加装前,先检查一遍是否加装和启动了。不用上来就搞。

[root@xxxxxx~]psaxf|grepphp-fpm4460pts/0S 0:00\_grep--color=autophp-fpm4452?Ss     0:00 php-fpm:masterprocess(/usr/local/etc/php-fpm.conf)4453?S0:00\_php-fpm:poolwww4454?S0:00\_php-fpm:poolwww[root@xxxxxx~]netstat-ntlup|grep9000tcp00127.0.0.1:90000.0.0.0:*LISTEN      4452/php-fpm:maste[root@xxxxx~]php-vPHP7.3.24(cli)(built:Dec16202114:37:02)(NTS)Copyright(c)1997-2018ThePHPGroupZendEnginev3.3.24,Copyright(c)1998-2018ZendTechnologies[root@xxxxx~]whereisphpphp:/usr/lib64/php/etc/php.d/usr/local/lib/php.ini/usr/local/lib/php/usr/local/php/usr/share/php/usr/local/php7.3.24new/bin/php/usr/share/man/man1/php.1.gz

如果版本过旧,先删除掉旧的。(当然如果把自然环境变量实用性为新的版本也可以不删除

1、停止php-fpm(当然也要停止nginx)

systemctlstop php-fpm

2、或者直接干掉进程,(假如进程号为1000)

  • pkill php-fpm 1000
  • kill -9 1000
  • kill -INT `cat /xxxx/php-fpm.pid`

二、源码加装

源码加装的套路

下载
解压
进入源码目录
实用性makemakeinstall

1、加装依赖

我都是管他用不用,先给给来一刷子。哈哈

yuminstall mysql-devel -yyuminstall libxml2 -yyuminstall libxml2-devel -yyuminstall curl curl-devel -yyuminstall -y libicu-develyuminstall gcc-c   -yyum-y install unixODBC-*yum-y install postgresql-develyuminstall libtidy-devel libtidy -yyuminstall nc -yyuminstall -y libjpeg-turbo-devel libpng-devel freetype-devel libtiff-devel libXpm-devel libwebp-devel fontconfig-develyuminstall autoconf -y

2、目录规划

源码包目录:/usr/local/src/xxxx.tar.gz

加装目录:/usr/local/xxx

/usr/local/php
/usr/local/nginx

3、下载源码包

当然是从官网下载了。别说官网不知道。其实我经常进的是cn2.php.net

wget https://www.php.net/distributions/php-7.2.13.tar.gz

4、解压

tar-zxvfphp-7.2.13.tar.gz

解压完就会生成一个php-7.2.13的目录,对吧

5、进入目录呀

cd/usr/local/src/php-7.2.13

6、源码加装的魅力来了./configure

搞出来

/configure

1.本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2.分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3.不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4.本站提供的源码、模板、插件等其他资源,都不包含技术服务请大家谅解!
5.如有链接无法下载或失效,请联系管理员处理!
6.本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!