debian 升级内核

本文使用 Debian 9 stretch/ Debian 10 buster进行内核升级。Debian 9 默认是 4.9 的内核。Debian 10 默认是 4.19 的内核。

修改源

# debian 9
echo -e "deb http://http.debian.net/debian stretch-backports main\ndeb-src http://http.debian.net/debian stretch-backports main" | sudo tee /etc/apt/sources.list.d/sources.list

# debian 10 
echo -e "\ndeb https://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list

更新package

sudo apt-get update
sudo apt-get dist-upgrade

查看内核列表

apt-cache search linux-image

查看到最新的内核如下

image-20210126104152271

安装

# debian 9
sudo apt-get install -t stretch-backports linux-image-xxx版本

# debian 10
sudo apt-get install -t buster-backports linux-image-4.19.0-16-amd64

加载内核

# sudo update-grub # 这句不使用也ok的
sudo apt-get clean
sudo reboot

检查下,已经切到了新内核

uname -r

4.19.0-0.bpo.13-amd64

清理

apt-get autoremove

1585879018684

安装headers

很多情况下,我们还需要使用headers进行其它软件的安装。经常会遇到无法安装的情况,为了避免这种情况,这里也记录一下headers的安装过程。

安装前要重启机器,确保目前已使用升级后的内核。

reboot
uname -a

安装:

sudo apt-get install libmnl-dev linux-headers-$(uname -r) build-essential make git # 安装必要的包

echo "deb http://deb.debian.org/debian/ unstable main" | sudo tee /etc/apt/sources.list.d/unstable.list
echo -e "Package: *\nPin: release a=unstable\nPin-Priority: 150\n" | tee /etc/apt/preferences.d/limit-unstable

apt-get update
apt-get upgrade

使用 docker 快速启动 laravel 开发环境(初级)

laravel 7 已经发布了。作为一个懒人我很不情愿在我的开发机器上安装composer、php、nginx以及数据库等组件,也包括Homestead虚拟机。 本文是我在尝鲜 laravel 7.3时完成的内容。所有的一切只需要系统装有docker。

一、composer初始化项目

创建 composer 容器并进入

linux/mac在项目根目录下运行如下命令:

 cdir="$(cd "$(dirname "$0")" && pwd)"
 docker run -it --rm -v ${cdir}:/app composer /bin/bash

windows我不会写路径,手动改吧。

docker run -it --rm -v D:\Github:/app composer /bin/bash

使用淘宝源

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

初始化项目

composer create-project --prefer-dist laravel/laravel web --ignore-platform-reqs

至此,一个laravel项目就初始化完成了。

退出容器

exit

composer 常用命令

 cdir="$(cd "$(dirname "$0")" && pwd)"
 docker run -it --rm -v ${cdir}:/app composer install --ignore-platform-reqs

二、增加php/nginx配置

在这个目录结构下分别增加nginx和php的配置文件,下载地址

1585379024946

三、运行php容器

在这里我运行了nginx、php、composer-install和yarn的容器:

docker-compose.yaml

version:  "3.2"

volumes:
  lnmpsock: {}
  yarnfile: {}

services:
  nginx:
    image: openresty/openresty:alpine
    restart: always
    container_name: nginx
    volumes:
      - ./:/var/www/html:rw
      - ./docker/openresty/conf.d:/etc/nginx/conf.d:rw
      - ./docker/openresty/conf/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf:rw
      - ./docker/tmp/openresty:/etc/nginx/fastcgi_cache/one_hour:rw
      - ./docker/log:/log:rw
      - type: bind
        source: lnmpsock
        target: /sock
    ports:
      - "80:80"

  php:
    image: php:fpm-alpine
    restart: always
    container_name: phpfpm
    volumes:
      - ./:/var/www/html:rw
      - ./docker/php/php-fpm.d:/usr/local/etc/php-fpm.d
      - ./docker/php/conf/php-fpm.conf:/usr/local/etc/php-fpm.conf
      - ./docker/log:/log:rw
      - type: bind
        source: lnmpsock
        target: /sock

  composer-install:
    image: composer
    restart: "no"
    container_name: composer-install
    volumes:
      - ./:/app:rw
    entrypoint:  [ composer,install,--ignore-platform-reqs ]
    privileged: true

  yarn:
    image: kelvinblood/yarn
    restart: always
    container_name: yarn
    stdin_open: true
    tty: true
    volumes:
      - ./:/var/www/html:rw
      - type: bind
        source: yarnfile
        target: /usr/local/share/.cache/yarn
    entrypoint: [ "/bin/bash" ]

运行 docker-compose up -d

1585374016652

进入phpfpm容器中,赋文件夹权限和创建新的app key

chmod -R 777 bootstrap/cache
chmod -R 777 storage

php artisan key:generate

然后就能正常访问啦:

1585139032578

对于访问的IP你可能有点疑问,Windows下使用127.0.0.1即可。

如果遇到不能访问的,Windows下docker的默认网段为10.0.75.0/24,使用.1 .2也能访问,即10.0.75.2。

如果你是跑在局域网的服务器里,访问服务器的IP即可。

到这一步其实已经完成啦。由于laravel和前端项目关联也比较紧密,下面再记录一个和前端工具的绑定的容器步骤。

四、使用SaaS、Laravel Mix等前端工具

# 进入yarn容器:
$ docker exec -it yarn /bin/bash

# 设置源,安装依赖
yarn config set registry https://registry.npm.taobao.org
SASS_BINARY_SITE=http://npm.taobao.org/mirrors/node-sass yarn

# 安装常用前端组件
npm install vue vue-template-compiler jquery bootstrap --save-dev --production=false

修改一下 Mix 的配置文件 webpack.mix.js

mix.js('resources/js/app.js', 'public/js')
   .sass('resources/sass/app.scss', 'public/css')
   .version();

在末尾加了一个 version(),使 Mix 每次生成的静态文件后面加上一个类似版本号的参数,避免浏览器缓存。

增加一些简单的blade文件和SaaS文件,下载地址

1585379435769

# 继续在容器内运行如下命令,自动编译
npm run watch-poll

然后就看到运行成功啦:

1585380294717

访问网页如下:

1585379532437