docker学习笔记2-基础操作

万物始于Hello World !

//执行代码如果本地没有ubuntu:20.04,它会自动去官方拉取
root@iZbp13ivhh5aqlnjtzr427Z:~# docker run ubuntu:20.04 /bin/echo "Hello World!"

//得到信息
Unable to find image 'ubuntu:20.04' locally
20.04: Pulling from library/ubuntu
d4c3c94e5e10: Pull complete 
Digest: sha256:874aca52f79ae5f8258faff03e10ce99ae836f6e7d2df6ecd3da5c1cad3a912b
Status: Downloaded newer image for ubuntu:20.04
Hello World!

这时候我们得到了我们想要的hello wordel ,代表着你已经是一个会docker的程序员了。

相当于创建了一个新的系统或伪终端 下面第二行root@c4e4cae5a004:/# 说明我们已经进入到新的ubuntu 22.04的容器

//执行代码
root@iZbp13ivhh5aqlnjtzr427Z:~# docker run -i -t ubuntu:22.04 /bin/bash
//得到信息
Unable to find image 'ubuntu:22.04' locally
22.04: Pulling from library/ubuntu
a8b1c5f80c2d: Pull complete 
Digest: sha256:a6d2b38300ce017add71440577d5b0a90460d0e57fd7aec21dd0d1b0761bbfb2
Status: Downloaded newer image for ubuntu:22.04
root@c4e4cae5a004:/# 

参数解析:

  • -t 表示在新容器内指定一个伪终端或终端
  • -i 表示允许你对容器内的标准输入 (STDIN) 进行交互

退出容器:

  • ctrl+d
  • exit

继续阅读

docker学习笔记1-安装docker

最靠谱的安装方法就是直接参考官方文档

debian/ubuntu系统安装docker

# 卸载所有冲突的包
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
# 添加Docker官方GPG密钥:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# 将仓库添加至Apt源列表:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

安装Docker

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

查看是否安装成功,成功了会出现版本编号

sudo docker -v

其他系统请去官方文档查看安装方法 不建议使用centos 已经停止维护了。

官方文档地址如下

https://docs.docker.com/engine/install/

centos7.9编译安装swoole 4.8.9

//下载源码包  (如链接失效请自行去官网寻找)
wget -c https://github.com/swoole/swoole-src/archive/refs/tags/v4.8.9.tar.gz
//解压
tar -zvxf v4.8.9.tar.gz
//进入目录
cd swoole-src-4.8.9
//生成configure 文件
phpize

如果你phpize 没有用的话,那估计是你php安装目录里面的phpize 没有做软链接到/usr/bin/phpize,请找到php“安装目录”的phpize 在那个位置,不是安装包的位置噢!

find / -name phpize
//我得到的结果如下,但每个人PHP安装的地址可能不一样,你可以直接在swoole安装包运行系列代码


/usr/local/php/8.1.4/bin/phpize

//也可以做一个软链接,留着以后安装其他php扩展使用,省得每次输入上面那样一长串路径
ln -s /usr/local/php/8.1.4/bin/phpize /usr/bin/phpize

这样的话以后安装其他php扩展就可以直接使用phpize

接下来配置编译参数,根据自身情况修改–with-php-config的值,改成你自己的php-config位置

./configure --with-php-config=/usr/local/php/8.1.4/bin/php-config --enable-openssl  --enable-http2  --enable-async-redis --enable-sockets --enable-mysqlnd

执行编译和安装

make && make install

因为我们已经配置好了–with-php-config 所以它会自动把swoole.so文件放到我们php安装目录的扩展目录

/usr/local/php/8.1.4/lib/php/extensions/no-debug-non-zts-20210902/swoole.so

这时候我们需要修改php.ini文件把swoole扩展添加进php.ini,不同的安装方式php.ini位置不一样,请自行寻找

vi php.ini

//然后加入
extension=swoole

//保存
wq!

//然后重启php-fpm

这时候你写一个php文件 echo phpinfo(); 打开它,就能发现swoole扩展已经安装成功了。

centos7.9 编译安装php-redis扩展

这个只是php的一个redis操作扩展噢,不是redis。

下载地址

下载php-redis5.3.7
官网 http://pecl.php.net/package/redis
git地址:https://github.com/phpredis/phpredis/archive/refs/tags/5.3.7.tar.gz
官方地址:http://pecl.php.net/get/redis
//下载 
wget -c https://github.com/phpredis/phpredis/archive/refs/tags/5.3.7.tar.gz

//解压
tar -zvxf 5.3.7.tar.gz

//进入目录
cd phpredis-5.3.7

//这时候我们需要生成configure 文件,需要执行phpize  他的地址一般都在php安装目录的bin文件夹下
phpize

//如果生成configure成功,说明你已经建立好了phpize软链接,那么可以直接跳过下列方式一和者方式二的步骤

/**********下列方式二选一***********/

方式一:

如果没有成功,那说明 /usr/bin/phpize 没有做好软链,你需要把你php 安装目录的phpize 软链到/usr/bin/phpize 这样在别的地方也可以直接使用phpize而不用输入一长串地址。

如果你还是不知道你的phpize 位置在哪,可以执行下列命令,来查询该文件位置。

find / -name phpize

这里我们挑选php安装目录里的phpize来做软链

//注意:如果你之前安装php的时候已经把phpize 的全局软链给做好了,那么这一步可以省去
ln -s /usr/local/php/8.1.4/bin/phpize /usr/bin/phpize

然后再次执行

phpize

方式二:

当然你也可以不做软链,直接输入一长串的地址来执行phpize

/usr/local/php/8.1.4/bin/phpize

当我们看到configure 文件后,说明生成成功了

/**********上面方式二选一***********/

执行下列代码

./configure --with-php-config=/usr/local/php/8.1.4/bin/php-config

成功后就会看到/usr/local/php/8.1.4/lib/php/extensions/no-debug-non-zts-20210902/ 下面有一个人redis.so文件了

最后检查php安装目录里面的php.ini 看看有没有打开redis扩展功能

extension=redis

也有可能是直接指定了扩展文件位置

extension=”/usr/local/php/8.1.4/lib/php/extensions/no-debug-non-zts-20210902/redis.so”

这样我们的扩展就安装好了!

centos7.9 编译安装php8.1.4

安装前请确保安装了 libzip 和oniguruma

//安装依赖
yum -y install libtool automake epel-release libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel uuid libuuid-devel gcc bzip2 bzip2-devel gmp-devel  readline-devel libxslt-devel autoconf bison gcc gcc-c++ sqlite-devel
//然后配置用户和组

//创建  www 组 
groupadd www

//新建用户并指定用户组 useradd -g groupname username
useradd -g www www

//下载php 安装包
wget -c https://www.php.net/distributions/php-8.1.4.tar.gz
//解压并进入安装包
tar -zvxf php-8.1.4.tar.gz
cd php-8.1.4

下列编译参数任选其一

编译参数一(推荐)

//这里我们指定了www用户和组 其他的配置参数自行了解
./configure \
--prefix=/usr/local/php/8.1.4 \
--with-config-file-path=/usr/local/php/8.1.4/etc \
--with-config-file-scan-dir=/usr/local/php/8.1.4/etc/conf.d \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-fpm \
--enable-soap \
--with-openssl \
--with-openssl-dir \
--with-zlib \
--with-iconv \
--with-bz2 \
--enable-gd \
--with-jpeg \
--with-freetype \
--with-curl \
--enable-dom \
--with-xml \
--with-zip \
--enable-mbstring \
--enable-pdo \
--with-pdo-mysql \
--with-zlib-dir \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--with-xsl \
--enable-mysqlnd \
--with-mysqli \
--without-pear \
--disable-short-tags
继续阅读

centos7.9 编译安装redis 6.2.6

1、基操如下

下载redis 需要其他版本去官网自行下载
wget -c https://download.redis.io/releases/redis-6.2.6.tar.gz

//解压
tar -zvxf redis-6.2.6.tar.gz

//把安装包移动到安装目录,并且重命名为redis
mv redis-6.2.6 /usr/local/redis

//进入安装目录
cd /usr/local/redis
//编译
和安装

make && make install
//进入bin目录

cd /usr/local/bin
//我们可以看到 有redis-server ,redis-cli,redis-benchmark 说明我们安装好了

//这时候你就可以直接启动redis了
./redis-server

//只不过生产环境一般不会这么用,因为他还没有配置好配置文件

2、配置redis

强烈建议挪动 redis 配置文件,这个文件地址请根据你实际情况更改,为了统一管理,我们把配置文件和二进制文件全部放到redis安装文件夹

//创建两个文件夹用来放置配置文件和二进制文件
cd /usr/local/redis
mkdir etc bin

//在安装目录下移动redis.conf 到安装目录刚刚创建的etc文件夹里面
cp redis.conf etc/redis.conf

//复制二进制文件到 /usr/local/redis/bin/ 目录
cp {mkreleasehdr.sh,redis-benchmark,redis-check-aof,redis-check-rdb,redis-cli,redis-server} /usr/local/redis/bin/

//这样你就可以在/usr/local/redis/  这个目录里管理redis 省得到处跑

注意:直接启动redis 它默认是不会后台启动的,那样的话,只能停在当前窗口,什么都做不了所以我们需要设置后台启动功能

//设置后台启动
vi /usr/local/redis/etc/redis.conf

//找到 daemonize 把它的值改为 yes
daemonize yes

//保存
wq!

//最后再次启动redis  并且带上配置文件
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

//这样我们就可以使redis 后台运行了
//检查redis 状态,发现已经可以了

ps -ef |grep redis
//到这我们的redis 就配置好了

centos7.9 编译安装oniguruma 6.9.7

安装php时 提示 No package ‘oniguruma’ found错误解决方法如下

1、安装依赖

yum install -y gcc gcc-c++ make expat-devel autoconf automake libtool

2、下载源码 更新的版本可以去github 或gitee 寻找https://github.com/kkos/oniguruma/releases

//本次使用版本是6.9.7.1
wget -c https://github.com/kkos/oniguruma/archive/refs/tags/v6.9.7.1.tar.gz

3、解压安装包

tar -zvxf v6.9.7.1.tar.gz
cd oniguruma-6.9.7.1

//目录视情况而定 看它解压出什么目录,你就进什么目录

4、生成configure文件

./autogen.sh

5、预编译环境,这一步比较重要,最好不要少,可以省很多事

//注意:每行最后位置,不要有空格什么的。
./configure --bindir=/usr/sbin/ \
            --sbindir=/usr/sbin/ \
            --libexecdir=/usr/libexec \
            --sysconfdir=/etc/ \
            --localstatedir=/var \
            --libdir=/usr/lib64/  \
            --includedir=/usr/include/ \
            --datarootdir=/usr/share \
            --infodir=/usr/share/info \
            --localedir=/usr/share/locale \
            --mandir=/usr/share/man/ \
            --docdir=/usr/share/doc/oniguruma

//注意: 如果系统是64位的一定要标识--libdir=/usr/lib64/   不指向lib64的话会出问题

6、编译和安装

make && make install


centos7.9编译安装libzip1.8.0

在编译安装php时系统会报 configure: error: Package requirements (libzip >= 0.11 libzip != 1.3.1 libzip != … 这是因为libzip 版本过低 解决方法如下

1、卸载以前的版本 ,没有的话也可以不用卸载

yum remove libzip libzip-devel

2、安装cmake3

yum install -y cmake3
//如果找不到包就选择源码安装

cmake源码安装方法请移步至这里

安装libzip1.8.0

1、去官网下载libzip 想要最新的也可以去https://libzip.org/download/ 或者github寻找

wget -c https://libzip.org/download/libzip-1.8.0.tar.gz

2、解压安装包并创建build目录

tar -zvxf cmake-3.23.0.tar.gz
//进入安装包
cd cmake-3.23.0
//创建build目录
mkdir build && cd build

下列方法 二选一, 不同的路径操作不一样

方法一:(推荐) 毕竟安装到/usr/lib64 很多东西会自动帮你加载关联,可以省事

注意使用cmake .. 的情况是会把libzip 安装到/usr/lib64 请自行了解/usr/local/lib64 和 /usr/lib64 的区别,为了把他安装到/usr/lib64我们选择给他指定目录

//在刚刚建立的build目录中
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
//编译软件
make
//安装软件
make install

//通过命令查看是否生效 二选一
方式1:查单个(推荐)  有的话会提示  -lzip
pkg-config --libs libzip
方式2:列出所有看看有没有libzip
pkg-config --list-all

这样我们就大公告成了

继续阅读

centos7.9 编译安装cmake 3.23.0

1、先检查并卸载老版本

yum remove cmake

2、准备安装好cmake所需的依赖

yum -y install gcc gcc-c++ openssl openssl-devel tar

3、下载源码

官方地址: https://github.com/Kitware/CMake/releases/download/v3.23.0/cmake-3.23.0.tar.gz
git地址:https://github.com/Kitware/CMake/releases/download/v3.23.0/cmake-3.23.0.tar.gz

4.解压并进入安装包

tar -zvxf cmake-3.23.0.tar.gz
cd cmake-3.23.0

5、编译安装两张方式2选一

5.1、安装方法1

分别运行下面三段代码

./bootstrap
//编译
make
//安装
make install
//安装好后 直接运行cmake -version 看看是否成功
//which cmake 或者 find / -name cmake可以查看cmake在哪里
继续阅读

Discuz X3.2和phpcms v9.5.9 相互同步登陆注册退出 详细版

最近闲来无事,打算用discuz 和phpcms 做站,里面涉及到 discuz ,phpcms,ucenter 相互通信的问题,本人做个小教程供大家参考,水平有限,请多包涵^_^。

本次测试使用的是Discuz X3.2,Phpcms v9.5.9和ucenter,因考虑到以后的扩展,所以单独把ucenter独立安装,如果没有其他考虑的话可以不用独立安装ucenter,可直接使用discuz内置的ucenter.

<——————- 此处高手可忽略 start———————–>

安装这3样以后在ucenter 的应用管理内添加phpcms应用

然后

应用类型选择“其他”

应用名称:phpsso           //此处可以自定义

应用的主URL: http://你的域名/phpsso_server    //注意又要多朋友粗心会忘记在域名后加phpsso_server导致通信失败

是否开启同步登陆和是否接受通知全部选“是” 然后提交

你会得到一个通信秘钥,

<——————- 此处高手可忽略 end———————–>

第一步会发先phpcms与ucenter通信失败。

解决方法:登陆phpcms的phpsso——>系统配置——–>UCenter配置

是否启用: 选择“是”

Ucenter api 地址:http://你的域名     //不要带反斜杠 “/”该地址为ucenter的根目录可以根据需求修改,如果你的UCenter 是直接内置discuz里面那么地址为 http://论坛地址/ucenter

其他的数据库主机名,用户名,密码 ,按自己的实际情况正常填写

继续阅读