Write the Code. Change the World.

分类目录
12月 17

https://blog.vini123.com/828

操作

  1. 设置主机名。
  2. 设置 ssh 连接一段时间后,断开的问题。
  3. 自定义用户,禁用 root 用户登录(使用普通用户登录,并使用公钥登录)。
  4. 安装 docker 环境。
12月 17

操作

# 先安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加阿里云仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装
yum -y install docker-ce

# 启动
systemctl start docker

# 设置开机自启动
systemctl enable docker

# docker info

再来安装 docker-compose

打开 https://github.com/docker/compose/tags 选择想要的版本,点击进去。


这里我选择的 v2.23.3,打开后的链接是这个。

https://github.com/docker/compose/releases/tag/v2.23.3

选择对应系统的文件,我这里选择的是 docker-compose-linux-x86_64


下载

cd /usr/local/src

wget  https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64

mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

docker-compose --version

ubuntu 安装 docker

移除旧版本

如果你已经安装了旧版本的 Docker,首先卸载旧版本:

sudo apt remove docker docker-engine docker.io containerd runc

安装依赖包

sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

添加 Docker 的官方 GPG 密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

设置 Docker 的稳定版存储库

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装 Docker Engine

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

验证安装

运行以下命令验证 Docker 是否正确安装:

sudo docker run hello-world

将用户添加到 docker 用户组

为了避免在每次运行 Docker 命令时都需要使用 sudo,可以将当前用户添加到 docker 用户组:

sudo usermod -aG docker $USER

请注意,在更改用户组后,你可能需要注销并重新登录才能使更改生效。

安装 Docker Compose

下载 Docker Compose 的二进制文件:

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

授予执行权限:

sudo chmod +x /usr/local/bin/docker-compose

验证 Docker Compose 是否正确安装:

docker-compose --version
12月 17

mac docker 配置国内镜像

通过 docker 客户端工具。点击设置->Docker Engine。增加以下配置。

{
  …,
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
  ]
}

点击 Apply & Restart 按钮,保存并重启。

# 查看
docker info

感觉用了镜像速度也那样。

12月 11

docker 的确是个好东西。该早一点就用起来。当下还在熟悉和练习中。

渐渐去丰富和完善。

.env

# 时区
TZ=Asia/Shanghai

# 项目对应文件夹
SOURCE_DIR=./www

# nginx https://nginx.org/
NGINX_NAME=nginx
NGINX_VERSION=1.25.3
NGINX_HTTP_HOST_PORT=80
NGINX_HTTPS_HOST_PORT=443
NGINX_CONFD_DIR=./conf/nginx/conf.d
NGINX_CONF_FILE=./conf/nginx/nginx.conf
NGINX_SSL_CERTIFICATE_DIR=./conf/nginx/ssl
NGINX_LOG_DIR=./logs/nginx

# php8.3
PHP_LOG_DIR=./logs/php8.3

# mysql
MYSQL_DATA=./data/mysql8.2-data
MYSQL_PORT=3306

# redis
REDIS_PORT=6379

继续阅读

12月 04

记录一些问题

  1. 通过 docker-comppse.yml 配置多个服务(有 php,nginx,mysql 等),并运行。如果在 php 的 bash 中访问使用 nginx 或 mysql 这些服务呢。

当前,在项目中,无法通过 127.0.0.1 来连接 mysql 容器中的 mysql。可以通过修改 手动 修改 ip 的方式来搞定。

# 查看当前容器的 ip
ip addr

# php 和其他容器公用宿主机的 ip 修改项目中连接 mysql 的 ip 得到
172.19.0.1

docker php 安装 mysql_pdo 扩展

docker exec -it xxx bash

# 安装 pdo pdo_mysql 扩展
docker-php-ext-install pdo pdo_mysql

# 安装 mysqli 扩展
docker-php-ext-install mysqli

# 退出 重启 (xxx 容器 id)
exit
docker restart xxx

bash: ip: command not found

# 进入容器中
apt-get update

apt-get install -y iproute2

# 这个时候就有了
ip addr show

文章

https://www.jianshu.com/p/2217cfed29d7

https://blog.csdn.net/longfeng995/article/details/130704949

https://ricen.eu.org/index.php?control=doc&view=detail&id=326&i=1

12月 02

下边来弄弄 docker compose。 的确很好用。

准备

先准备一下文件。

.
├── docker-compose.yml
└── vini123
    ├── nginx
    │   └── default.conf
    └── www
        └── nginx
            └── index.php

这里先看看 docker-compose.yml 文件。

继续阅读

12月 01

常见命令一

# docker 信息
docker info
docker version

# 查看镜像
docker images

# 运行一个镜像
# --name 别名
# -p 端口映射( 宿主机端口:容器服务端口 )
# -d 以守护进程的方式运行(不加就会卡住占用窗口)
docker run --name my-nginx -d -p 80:80 nginx

# 查看活着的容器
docker ps

# 查看活所有容器
docker ps -a

# 停止容器
docker stop xxx

# 启动一个关闭的容器
docker start xxx

# 查看容器状态
docker stats

# 进入容器(以bash的形式进行交互模式)
docker exec -it xxx bash

# 退出容器(容器依然在运行)
exit

# 重启容器 (xxx 为容器 id 的前三个字符即可)
docker restart xxx

# 删除容器 (删除前需先停止)
docker rm xxx

# 删除镜像
docker rmi nginx

继续阅读

7月 04

# 在 mysql 中,先查询出 sql_mode
show variables like 'sql_mode';

# 编辑修改
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

# 没有就追加,有就修改
# 先备份一个全的
# sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

sql_mode =这里你填需要的

# 重启
sudo service mysql restart
5月 10

为了一些安全性,自己的电脑(本地)工具连接 mysql 的时候,我会限制它的 ip。可过一段时间自己的 ip 就会改变。这个时候,就连不上去。这个时候,就再修改下 ip,使其生效就好。

操作

服务端

# 连接 mysql
mysql -uroot -p
# 输入秘密
xxxxxx

# 切换到数据库
use mysql

# 先查看查看 mysql 用户表里存了哪几个用户以及请求地址限制
select host,user from user;

# 可以看到 host 中有具体的 ip 的 还有 localhost。 这个 host 就是限制连接 mysql 服务的 ip。
# 假如之前设置外部能访问的 ip 是 138.xxx.xxx.xxx, 用户名是 xx_mysql
# 你新的 ip 是 136.xxx.xx.xx
# 修改
update user set host ='136.xxx.xx.xx' where user = 'xx_mysql';

# 生效
flush privileges;
5月 01

虽然有 docker , 但还是喜欢用 homestead 开发环境。这个时候,一些旧的项目可能会用到比较低版本的 php,这个时候切换 php 版本就是一个常用的操作。

使用 php 版本

homestead 环境中,项目使用 php 的哪个版本,可以在 Homestead.yaml 文件中进行配置。比如:

sites:
    - map: work.xiangrong.com
      to: /home/vagrant/code/zhoulin/work.xiangrong.com/public
      php: "7.4"

这里指定好 php 版本就好。

但是,当 homestead 环境中当前使用的 php 版本是 php 8php 5.6 这些。使用 composer 或项目本身就有可能报错。这个时候,我们就需要将 homestead 环境的 php 版本切换的和项目所配置的一样。

补充

如果切换成对应的 php 版本还会出 badgateway 这样的错误,可以试着重启 php 看看。

# 这里以 php 7.4 为例
sudo /etc/init.d/php7.4-fpm restart

操作

# 查看当前环境中的 php 版本
php -v

# 查看所有 php 版本和当前版本
sudo update-alternatives --display php

# 执行后,会列出当前 php 所有版本和编号,输入编号,切换到执行的版本
sudo update-alternatives --config php

其实

其实,想切换到某个 php 版本。直接输入就可以了,也不用向上边那样敲那么长的命令。 比如,想切换到 php7.4 版本。直接输入 php74 回车即可。同理,想切换到 php8.2 版本,直接输入 php82 回车即可。这些命令,可以在 Homestead 目录下的 aliases 文件中找到。

function php73() {
    sudo update-alternatives --set php /usr/bin/php7.3
    sudo update-alternatives --set php-config /usr/bin/php-config7.3
    sudo update-alternatives --set phpize /usr/bin/phpize7.3
}

function php74() {
    sudo update-alternatives --set php /usr/bin/php7.4
    sudo update-alternatives --set php-config /usr/bin/php-config7.4
    sudo update-alternatives --set phpize /usr/bin/phpize7.4
}

function php80() {
    sudo update-alternatives --set php /usr/bin/php8.0
    sudo update-alternatives --set php-config /usr/bin/php-config8.0
    sudo update-alternatives --set phpize /usr/bin/phpize8.0
}

function php81() {
    sudo update-alternatives --set php /usr/bin/php8.1
    sudo update-alternatives --set php-config /usr/bin/php-config8.1
    sudo update-alternatives --set phpize /usr/bin/phpize8.1
}

function php82() {
    sudo update-alternatives --set php /usr/bin/php8.2
    sudo update-alternatives --set php-config /usr/bin/php-config8.2
    sudo update-alternatives --set phpize /usr/bin/phpize8.2
}

今天五月一日。