1 | sed -i "s/555/sk/g" `grep 555 -rl ./` |
这里的555是要替换的内容,sk是替换后的内容, ./指的是当前目录,可以是相对目录也可以是绝对目录,根据自己的实际要求.
1 | sed -i "s/555/sk/g" `grep 555 -rl ./` |
这里的555是要替换的内容,sk是替换后的内容, ./指的是当前目录,可以是相对目录也可以是绝对目录,根据自己的实际要求.
前情提要
首先你需要先拥有公钥和私钥文件,或者密钥字符串,如果没有请看我写的使用openssl生成普通RSA密钥对.
上代码
1 |
|
最后保存成php文件哈,我这里保存为index.php.
执行
在linux控制台输入如下命令:
1 |
|
当然如果搭建了web访问php的方式,可以通过web访问.
输出结果如下:
资源id
Resource id #6
资源id
Resource id #8
---------------------------------------
待加密数据:123
---------------------------------------
私钥加密元数据:
kDNIsmsqw0/JReqOL8J0QRb+/MPInk0XPbWfreL2+anLinDuHHvSEehca4WhvCtRRU5DySlNpgXmUOd7xF4z9EfQEH4KE2TYD5km3O5h1+aPz6AUbmbNDDcqOhob4Ldmbaw5O9m1cdYNXRLyT3CD1773CriSrcuWsQtxyxwa6jzBO8ZP3Ry5bKKAANbCLamwZ0thioIO3PnOoVGsFr6JsM+/kyIKOKBqhJR071cnl3liNt8GwkOIkmj3PWp+tb3+wxEO9ClLH6SNMvE9c2zbTZ+L3BfLWW4EmusNIIcfq9ifi9yFfiJPeNZhilMXH01B4gcRnsBS8vOfiK6NXBLEJw==
公钥解密得到元数据:
123
---------------------------------------
公钥加密元数据:
WVIdFhmNcdk5VcDm0IfkcWqA1oCdrYCZ/E25Mn7Ku/eLfe8AHm4TzQEzGFyrGdT/NlO3mw7ghqoDC+tvGAhUmuOoxXvCTBwGD4+qSYLQ3dpvqt/F0Q8bwNdbZtciczAR4U9lnwyqQ6AlLZcus3ULfMaBtFPaLQqyWVYSM2vNJ4t3zlcDtZMH/gCUMTasSrFVjND6YgA13SReKlX67TJR1KzjrT14QWgSiQaW3Bw4GY/Db7MGocsj0TnYgXoXg47remzgpll1U7l2TpLgq9WEUqs5YMWS3VQ+MAFBN2ghrSzy91npUReQNZdglSmWAna8Dg+/WgjVzj4waugMqLOzGw==
私钥解密得到元数据:
123
生成私钥
1 | openssl genrsa -out rsa_private_key.pem 2048 #生成私钥 这里的2048要与php中的openssl.cnf配置文件中的一致,否则在php中使用会出错 |
将私钥转换为pkcs8格式
1 | openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out private_key.pem |
生成公钥
1 | openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem |
1 | /** |
1 | /** |
1.创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小)。
1 | dd if=/dev/zero of=/root/swapfile bs=1M count=1024 |
2.格式化为交换分区文件:
1 | mkswap /root/swapfile #建立swap的文件系统 |
3.启用交换分区文件:
1 | swapon /root/swapfile #启用swap文件 |
4.使系统开机时自启用,在文件/etc/fstab中添加一行:
/root/swapfile swap swap defaults 0 0
设定
要在系统上启用IUS存储库,请安装ius-release 软件包。该软件包包含IUS存储库配置和公共软件包签名密钥。许多IUS软件包都具有EPEL存储库中的依赖项 ,因此也请安装epel-release软件包。
1 | yum install https://repo.ius.io/ius-release-el7.rpm |
配置ius为阿里云的源站地址
进入配置目录
1 | cd /etc/yum.repos.d |
使用'll'命令可以看到有三个ius源的配置
-rw-r--r--. 1 root root 669 5月 2 2019 ius-archive.repo
-rw-r--r--. 1 root root 591 5月 2 2019 ius.repo
-rw-r--r--. 1 root root 669 5月 2 2019 ius-testing.repo执行如下命令:
sed 's/repo.ius.io/mirrors.aliyun.com\/ius/g' ./ius.repo -i
sed 's/repo.ius.io/mirrors.aliyun.com\/ius/g' ./ius-archive.repo -i
sed 's/repo.ius.io/mirrors.aliyun.com\/ius/g' ./ius-testing.repo -i到此,ius源安装配置已完成
阿里云也有epel,如果想更换成阿里云的源站,配置类似
附阿里云镜像站地址:https://opsx.alibaba.com/mirror?lang=zh-CN
上面有详细的配置过程,如您已使用,请忽略本提示
停掉防火墙
因为是在虚拟机中测试,为了省去繁琐的端口开放步骤,直接将firewall停掉,执行代码
1 | systemctl stop firewalld |
安装apache
apache其实是基金会的名字,我们其实要装的是httpd,httpd是apache基金会的一个开源项目.
执行安装命令
1 | yum install httpd |
安装完成以后,先别着急启动,首先将apache的端口号改成8080(这个随意,目的是为了防止和nginx的80端口冲突),执行命令:
1 | vi /etc/httpd/conf/httpd.conf |
大约在42行
42 Listen 8080完事以后'wq'保存
安装php
在centos7中自带的php版本(5.4)较低,下面介绍使用ius源安装最新的php,具体怎么配置ius源,请看我的另一篇关于'centos7下使用ius源'.
配置好源站以后我们安装最新的php7.3,这里只介绍安装最基本的php扩展支持,执行命令:
1 | yum list | grep php73 |
输出结果如下:
php73-cli.x86_64 7.3.11-1.el7.ius @ius
php73-common.x86_64 7.3.11-1.el7.ius @ius
php73-fpm.x86_64 7.3.11-1.el7.ius @ius
php73-fpm-httpd.noarch 7.3.11-1.el7.ius @ius
php73-fpm-nginx.noarch 7.3.11-1.el7.ius @ius
mod_php73.x86_64 7.3.11-1.el7.ius ius
php73-bcmath.x86_64 7.3.11-1.el7.ius ius
php73-dba.x86_64 7.3.11-1.el7.ius ius
php73-dbg.x86_64 7.3.11-1.el7.ius ius
php73-devel.x86_64 7.3.11-1.el7.ius ius
php73-embedded.x86_64 7.3.11-1.el7.ius ius
php73-enchant.x86_64 7.3.11-1.el7.ius ius
php73-gd.x86_64 7.3.11-1.el7.ius ius
php73-gmp.x86_64 7.3.11-1.el7.ius ius
php73-imap.x86_64 7.3.11-1.el7.ius ius
php73-interbase.x86_64 7.3.11-1.el7.ius ius
php73-intl.x86_64 7.3.11-1.el7.ius ius
php73-json.x86_64 7.3.11-1.el7.ius ius
php73-ldap.x86_64 7.3.11-1.el7.ius ius
php73-mbstring.x86_64 7.3.11-1.el7.ius ius
php73-mysqlnd.x86_64 7.3.11-1.el7.ius ius
php73-odbc.x86_64 7.3.11-1.el7.ius ius
php73-opcache.x86_64 7.3.11-1.el7.ius ius
php73-pdo.x86_64 7.3.11-1.el7.ius ius
php73-pdo-dblib.x86_64 7.3.11-1.el7.ius ius
php73-pecl-amqp.x86_64 1.9.4-3.el7.ius ius
php73-pecl-apcu.x86_64 5.1.18-1.el7.ius ius
php73-pecl-apcu-devel.x86_64 5.1.18-1.el7.ius ius
php73-pecl-apcu-panel.noarch 5.1.18-1.el7.ius ius
php73-pecl-geoip.x86_64 1.1.1-10.el7.ius ius
php73-pecl-igbinary.x86_64 3.0.1-1.el7.ius ius
php73-pecl-igbinary-devel.x86_64 3.0.1-1.el7.ius ius
php73-pecl-imagick.x86_64 3.4.4-2.el7.ius ius
php73-pecl-imagick-devel.x86_64 3.4.4-2.el7.ius ius
php73-pecl-lzf.x86_64 1.6.7-2.el7.ius ius
php73-pecl-memcached.x86_64 3.1.4-1.el7.ius ius
php73-pecl-mongodb.x86_64 1.6.0-1.el7.ius ius
php73-pecl-msgpack.x86_64 2.0.3-3.el7.ius ius
php73-pecl-msgpack-devel.x86_64 2.0.3-3.el7.ius ius
php73-pecl-redis.x86_64 5.0.2-1.el7.ius ius
php73-pecl-smbclient.x86_64 1.0.0-3.el7.ius ius
php73-pecl-xdebug.x86_64 2.7.2-2.el7.ius ius
php73-pecl-yaml.x86_64 2.0.4-3.el7.ius ius
php73-pgsql.x86_64 7.3.11-1.el7.ius ius
php73-process.x86_64 7.3.11-1.el7.ius ius
php73-pspell.x86_64 7.3.11-1.el7.ius ius
php73-recode.x86_64 7.3.11-1.el7.ius ius
php73-snmp.x86_64 7.3.11-1.el7.ius ius
php73-soap.x86_64 7.3.11-1.el7.ius ius
php73-sodium.x86_64 7.3.11-1.el7.ius ius
php73-tidy.x86_64 7.3.11-1.el7.ius ius
php73-xml.x86_64 7.3.11-1.el7.ius ius
php73-xmlrpc.x86_64 7.3.11-1.el7.ius ius下面说下我们必须安装的几个
1 | yum install php73-fpm-httpd php73-common php73-cli php73-fpm |
其中php73-fpm-httpd在安装的时候默认会将后面的php73-common php73-fpm依赖一起安装,安装php73-fpm-httpd这个东西,就省去了我们配置php和apache环境的麻烦.
到此时,我们已经可以启动apache和php了,执行命令:
1 | systemctl start php-fpm |
此时 ,在目录 /var/www/html/ (注:该目录不是nginx的项目默认目录,后面做负载均衡以后代码路径要按照nginx默认路径,或者在nginx中配置你希望的目录) 下创建index.php,已经可以通过虚拟机地址–http://192.168.0.134:8080/index.php ,正常访问php站点了
安装nginx配置负载均衡
执行命令安装nginx
1 | yum install nginx #请注意,该命令需要'epel'源的支持,请保证预先配置完毕 |
同样是先不要启动nginx,执行如下命令对nginx进行配置
1 | cd /etc/nginx/conf.d |
创建php.conf,文件
1 | vi php.conf |
输入一下内容:
upstream backend {
server 127.0.0.1:8080;
}最后'wq'保存
然后配置nginx.conf
vi /etc/nginx/nginx.conf在server块添加如下内容:
location ~ \.php$ {
proxy_pass http://backend;
}最后wq保存退出
然后启动nginx
1 | systemctl start nginx |
在/usr/share/nginx/html(nginx默认路径,可自定义)中创建index.php文件
然后使用http://虚拟机ip/index.php就可以访问了,至此,负载均衡配置完毕.
如果你想安装php的其他扩展,比如gd,你可以执行命令
1 | yum install php73-gd |
其他类似
最后说明一下,在Centos及redhat中,由于selinux的策略问题,nginx反向代理apache会出现502的错误,查看日志会有Permission denied的提示,解决方式有两种:
第一就是关闭selinux策略,这个太常见,自行百度
第二就是执行如下命令:
/usr/sbin/setsebool httpd_can_network_connect true
假设您要在Fedora或CentOS上安装特定的RPM软件包,但是要在安装前检查软件包的内容。当您尝试在系统中安装任何丢失的二进制文件或库文件时,可能会出现这种情况。
在本教程中,我将描述如何列出CentOS,Fedora或RHEL上RPM软件包中包含的所有文件。
方法一
有一个称为repoquery的命令行工具,可以查询YUM存储库的信息。该工具使您无需安装RPM软件包即可查看其内容。
要在CentOS,Fedora或RHEL上安装repoquery:
sudo yum install yum-utils要使用repoquery检查包含在特定软件包(例如nginx)中的文件的列表:
repoquery -l nginx如下:
/etc/logrotate.d/nginx
/etc/nginx/fastcgi.conf
/etc/nginx/fastcgi.conf.default
/etc/nginx/fastcgi_params
/etc/nginx/fastcgi_params.default
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/mime.types
/etc/nginx/mime.types.default
/etc/nginx/nginx.conf
/etc/nginx/nginx.conf.default
/etc/nginx/scgi_params
/etc/nginx/scgi_params.default
/etc/nginx/uwsgi_params
/etc/nginx/uwsgi_params.default
/etc/nginx/win-utf
/usr/bin/nginx-upgrade
/usr/lib/systemd/system/nginx.service
/usr/lib64/nginx/modules
/usr/sbin/nginx
/usr/share/doc/nginx-1.16.1
/usr/share/doc/nginx-1.16.1/CHANGES
/usr/share/doc/nginx-1.16.1/README
/usr/share/doc/nginx-1.16.1/README.dynamic
/usr/share/doc/nginx-1.16.1/UPGRADE-NOTES-1.6-to-1.10
/usr/share/licenses/nginx-1.16.1
/usr/share/licenses/nginx-1.16.1/LICENSE
/usr/share/man/man3/nginx.3pm.gz
/usr/share/man/man8/nginx-upgrade.8.gz
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx/html/404.html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/en-US
/usr/share/nginx/html/icons
/usr/share/nginx/html/icons/poweredby.png
/usr/share/nginx/html/img
/usr/share/nginx/html/index.html
/usr/share/nginx/html/nginx-logo.png
/usr/share/nginx/html/poweredby.png
/usr/share/vim/vimfiles/ftdetect/nginx.vim
/usr/share/vim/vimfiles/ftplugin/nginx.vim
/usr/share/vim/vimfiles/indent/nginx.vim
/usr/share/vim/vimfiles/syntax/nginx.vim
/var/lib/nginx
/var/lib/nginx/tmp
/var/log/nginx*注意:该命令只能列出源仓库中的软件包,也就是说,我们使用 yum list ,能够列出软件名称的rpm包*
方法二
第二种查看软件包中所有文件而不安装的方法是通过rpm命令。但是,在这种情况下,您需要在本地下载RPM软件包,以便使用rpm命令查询该软件包。
您可以使用yum命令下载RPM软件包。由于不想安装它,因此必须使用“ --downloadonly”选项。
yum install yum-plugin-downloadonly要下载特定的RPM软件包下载到指定路径“ --downloaddir”命令选项
现在,您可以使用yum命令下载RPM软件包。
yum install nginx -y --downloadonly --downloaddir=/tmp使用’reinstall’选项,即使当前在系统上安装了RPM软件包,上述命令也将下载该软件包,当然也可以用’install’。下载的软件包将根据要求存储在/tmp目录中。
要列出下载的RPM软件包的文件,请运行以下命令。
[root@localhost tmp]# rpm -qpl /tmp/nginx-1.16.1-1.el7.x86_64.rpm
警告:/tmp/nginx-1.16.1-1.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 352c64e5: NOKEY
/etc/logrotate.d/nginx
/etc/nginx/fastcgi.conf
/etc/nginx/fastcgi.conf.default
/etc/nginx/fastcgi_params
/etc/nginx/fastcgi_params.default
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/mime.types
/etc/nginx/mime.types.default
/etc/nginx/nginx.conf
/etc/nginx/nginx.conf.default
/etc/nginx/scgi_params
/etc/nginx/scgi_params.default
/etc/nginx/uwsgi_params
/etc/nginx/uwsgi_params.default
/etc/nginx/win-utf
/usr/bin/nginx-upgrade
/usr/lib/systemd/system/nginx.service
/usr/lib64/nginx/modules
/usr/sbin/nginx
/usr/share/doc/nginx-1.16.1
/usr/share/doc/nginx-1.16.1/CHANGES
/usr/share/doc/nginx-1.16.1/README
/usr/share/doc/nginx-1.16.1/README.dynamic
/usr/share/doc/nginx-1.16.1/UPGRADE-NOTES-1.6-to-1.10
/usr/share/licenses/nginx-1.16.1
/usr/share/licenses/nginx-1.16.1/LICENSE
/usr/share/man/man3/nginx.3pm.gz
/usr/share/man/man8/nginx-upgrade.8.gz
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx/html/404.html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/en-US
/usr/share/nginx/html/icons
/usr/share/nginx/html/icons/poweredby.png
/usr/share/nginx/html/img
/usr/share/nginx/html/index.html
/usr/share/nginx/html/nginx-logo.png
/usr/share/nginx/html/poweredby.png
/usr/share/vim/vimfiles/ftdetect/nginx.vim
/usr/share/vim/vimfiles/ftplugin/nginx.vim
/usr/share/vim/vimfiles/indent/nginx.vim
/usr/share/vim/vimfiles/syntax/nginx.vim
/var/lib/nginx
/var/lib/nginx/tmp
/var/log/nginx
从某个地方下载了一个 RPM 文件(epel-release-latest-8.noarch.rpm),我想从 RPM 软件包中手动提取文件。有没有一种无需安装就可以从 RPM 软件包中提取文件的简便方法?
RPM 软件包包含一组文件,通常是编译后的软件二进制文件,库及其开发源文件。这些文件以 cpio 存档格式打包,最后与所有必需的特定于包的元数据一起包装在 RPM 文件中。
您可以使用rpm或repoquery命令查看RPM软件包的内容。
如果要从 RPM 软件包中提取文件而不安装它,请按以下步骤操作:首先从 RPM 文件中获取 cpio 归档文件,然后从 cpio 归档文件中提取实际文件。
下面介绍如何从 Linux 命令行实现此目的。
安装必要的工具
首先,安装必要的命令行工具。
在Ubuntu,Debian或Linux Mint上:
sudo apt-get install rpm2cpio在CentOS,Fedora或RHEL上:
yum install rpm从RPM包中提取文件
安装必要的工具后,请按照以下步骤操作。这会将epel-release-latest-8.noarch.rpm中的所有文件提取到当前目录中。
rpm2cpio foo.rpm | cpio -idmv该rpm2cpio命令从一个RPM文件cpio归档和的cpio从cpio归档命令提取文件。
cpio命令使用的选项描述如下。