test2
作者: admin
-
rsync用法
拉取远程文件到本地
rsync -av -e "ssh -p your_port" pi@ip:/mnt/myharddrive/audio/ audio
推送本地文件到服务器
rsync -av -e "ssh -p your_port" audio/ pi@ip:/mnt/myharddrive/audio
-
git知识点
git diff
git diff是查看工作区修改的文件和暂存区的区别,经本人观察未追踪的文件(也就是新建还未提交过的文件)不会展示比较。
暂存前后的变化
书中是这样写的
git diff
“此命令比较的是工作目录中当前文件和暂存区域快照之间的差异。
也就是修改之后还没有暂存起来的变化内容。”git diff --staged
git diff –staged 是查看暂存区和最新一次提交的区别
-
Docker部署nginx 搭建简单web页面
前言
如果你的服务器没有安装docker,可以使用get.docker.com一件脚本来安装docker,代码如下
$curl -fsSL https://get.docker.com -o install-docker.sh $sudo sh install-docker.sh
人非圣贤,上面这段代码肯定记不住的,到用的时候又不太好找,这里教一个小窍门,直接在浏览器打开get.docker.com,打开是一段脚本代码,可以在注释里找到我们想要的代码如下
# 1. download the script # # $ curl -fsSL https://get.docker.com -o install-docker.sh # # 2. verify the script's content # # $ cat install-docker.sh # # 3. run the script with --dry-run to verify the steps it executes # # $ sh install-docker.sh --dry-run # # 4. run the script either as root, or using sudo to perform the installation. # # $ sudo sh install-docker.sh
一 准备html
新建一个html文件夹,在文件夹中新建index.html写上hello world
mkdir html && cd html vim index.html
二 准备Dockerfile文件
在html的同级目录,新建Dockerfile
FROM nginx COPY ./html /usr/share/nginx/html
三 构建docker 镜像
在Dockerfile的同级目录 运行下面命令
docker build -t some-content-nginx .
四 运行docker容器
docker run --name some-nginx -d -p 8080:80 some-content-nginx
在浏览器输入服务器ip:8080 就能打开网页了
-
转自虎扑,去女友家拜访须知
1、去女友家拜访,到她家附近时不可以再挽着她的手,因为她的邻居会品头论足一番。2、进家后,不要对她太随便、太亲热,她的家人在观察着你的一举一动,以免给人留下不好的印象。3、不可不时看手表,否则她的家人会认为你不愿意呆在她家。4、离去时不可一踏出门就露出松懈姿态,因为背后她的家人们还在观察你。5、还应注意一点,去女友家做正式拜访的前一天,一定要洗澡,更衣,要做到干净、整洁,切不可邋里邋遢,既不尊重对方,又给人留下不好的第一印象。最重要的是全身都散发出干净的清洁感,如肩膀上有头屑最让人恶心。男人通常都是以外表取胜,因为父母的眼睛很容易往细处看:干净、整齐的头发、胡子,衬衣领口和袖口洁净,指甲修理整齐、干净,长裤笔挺,干净的袜子的鞋。初登恋人家门,就像参加一场考试,既要注意服饰仪表,又要为应答交谈作好必要的准备。这可从四个方面进行:一是稳定情绪,自信真诚恳切,落落大方,肯定受欢迎;虚伪做作,扭扭捏捏,必然被嫌弃。有了自信心,紧张的心情便会慢慢平静。二是了解情况。询问恋爱对象,了解其家庭成员,父母的职业,文化,兴趣,经历,性格等,知道越详细越好。情况熟悉,才能先有准备,交谈时也能有的放矢。三是初拟内容。想想对方会提出些什么问题。在这种场合下,未来的岳父母常会问问你的家庭,工作,爱好等,自己可做些准备。四是适当准备礼物,初次去对方家里做客,适当送些礼物给对方的父母,很有必要,这不仅表明你对长辈的尊敬,更表明你的诚意,一般来说,对方父母是会接受的,但应注意,送的礼品不宜太贵重,否则起点太高,以后恐怕你难以为继。初次见面,双方难免感到拘束。寒暄之后,常会冷场。这时就要引出话题。一种方法是就地取材。仔细观察墙壁,窗台,桌子等,墙上的名人字画,窗台上的菊花,桌上的各种小摆设,都可借来入话。因为它们往往体现了主人的情趣爱好,能使主人讲出许多愉快的话来。另一种方法是避生就熟。引出话题要避开对方感到陌生的事,从对方最熟悉的入手,可以谈谈新闻,聊聊天气。对方父母提问时,要会叙述说明,态度要恭敬,声音略低一些,柔和些。把话一句句,一层层说清楚,谈话时一定彬彬有礼。长辈夸奖年轻人时,总爱说:“这孩子很懂事!”一般长辈衡量青年好坏的标准,除了天生的外貌和本人的才能外,就看他是否“懂事”,也就是是否能通晓情理。在与对方父母交谈时,你一定要注意礼貌问题,要做到谦虚恭敬,善解人意。初登恋人家门,应忌讳四个方面:一忌油嘴猾舌。说话要朴实,说心里话,如一池清水,清澈见底;不做作,不油滑。二忌自我吹嘘。要懂得:不表示自己聪明,就是聪明;不夸张自己的美德,就是美德。三忌胆小怯羞。要明白:越怕讲错,就越会讲错话;不怕讲错,反倒会使言谈顺畅。胆小,拘谨,害羞,是初登恋人家门交谈时的大忌。四忌粗言劣语。语言必须文明,不礼貌的口头禅,习惯语等,一定要戒除。对方父母请你家宴,说明他们对你有了初步好感,你切不可得意忘形,露出“野性”。由于来做客赴宴是“醉翁之意不在酒”,切末贪杯,喝个酩酊大醉,美好姻缘可能会因你一醉方休而毁于一旦。拜见家长怎么穿不适宜:不要在未来的岳父岳母面前表现你的小个性了,艺术家那样的披肩长发啦,络腮胡子啦,各种放荡不羁啦,请收敛起来吧,这只能给你减分。夏天的凉拖短裤,冬天挂满泥的球鞋和满是褶皱的裤子,还是早点换了吧。有汗脚的男孩,也要前期做好准备,不要穿不透气的鞋子,换双新袜子,不要让破洞在换鞋后暴露出来。拜见家长怎么送礼物适宜:送礼物是个大学问,现在已经不再是水果点心的年代了。在挑选礼物的时候,要跟女友商量着来,有没有对方父母一直想买但没有机会去买的东西。送这样的礼物,会让长辈觉得这孩子很贴心。像是茶叶、羊毛披肩这样既实用又有面子的礼物,再好不过了。礼物很重要,价格也很关键。我恰恰不赞同送过于贵重的礼物,毕竟是第一次见面,太贵重的礼物会让对方父母觉得你是不是故意在显示有钱呢,又或者不懂得节俭,这样怎么能过日子呢。拜见家长怎么称呼适宜:得体的礼貌,在初次见面中很重要。可以事先问问对方父母的出生年份,决定称呼叔叔阿姨还是伯父伯母,这样比统称叔叔阿姨更得体一些。跟女方父母交流时要带“您”。拜见家长怎么聊适宜:谈话时,语速要适中。长辈问什么就答什么,如果稍微有点冷场,男孩子可以主动引起一些话题,可以从对方父母的爱好展开话题,但态度要谦虚谨慎,大方得体,不要滔滔不绝。拜见家长怎么不适宜:在具体聊天的过程中,请新人注意一些禁忌。1、如果对方父母有身体不好的,请不要聊健康。2、不要涉及对方家里的私事,比如退休工资啦,以前的单位啦。3、不要滔滔不绝,那样会让人觉得特别不稳重,爱显示自己。遇上本身低调的父母,会觉得这个小伙子有点夸夸其谈。4、不要谈及财产之类比较敏感的话题,即使你家里物质条件好,也要低调。男方第一次去女方家相关事项:1、时间——最好是一天之中的上午,千万别晚上去(当然这得看你未来的岳父母的意识)这是一般的礼节,以示尊重,并暗示你是一个勤奋之人。2、送礼——男方第一次去女方家总不能空手而去,总会想买点礼物,这是很多男孩子好面子才这样想,但是究竟要买什么也拿不定主意。这个礼物不要太多,但是一定要买。要买好看的,拿得出手的,不一定要很实用(因为在他们心理,你毕竟还是“外人”,所以一定要体面)。3、礼貌——上一辈的人对这个看得是比较重的,第一次去女方家之前,男方可以先问问你女朋友她们那里有没有什么特殊的礼节,如没有特别的,则和长辈的交往中保持谦虚的态度可谓是最大的礼节吧,进女方家门时,男方嘴口一定要甜,比如微笑的问叔叔阿姨你好,这是初次登门给人的第一印象(很关键的)。4、言谈——在女方家人面前,男孩子要面带微笑,多听少说,认真聆听老人的言谈、并及时应和,说话时大方自然,但不可以得意忘形,保持诚恳、实诚的本色,也许你有些事情还没想好,如大人们问起也许不知怎么回答,那就照实回答,比胡谄强多了,老人往往要的是感觉,也给你的女友一种姿态,你接纳她并会善待她的父母。”多谢””不客气””你们别忙乎.我来”要常挂在嘴边,多说关心的话。5、话题——避开一些双方敏感的话题,多询问一些女友小时候的事,这是每个父母百说不厌的经典话题,尤其是值得夸耀的事,可问一些细节。当他们的思维跟你转的时候,就减轻了对你的注意力,同时他们会认为你关心他们的女儿。6、衣着——男方第一见女方家长,衣服不必刻意讲究有多华丽,只要整洁、干净,就行,但不要太随便,还有就是头发一定要干净。7、神态举止——自然、轻松、愉快。最好用几句简短的话,表明你对将来的打算,并征求他们的意见。对他们的回答哪怕有异议,也点头,微笑,以后再说,不要破坏此次的气氛。做些力所能及的小事吧,也许他们不会让你做,但态度是另外一回事。8、吃饭——注意用餐礼仪。对方父母请你家宴,说明他们对你有了初步好感,你切不可得意忘形,这很有可能是一次非常近距离的接触。因为从饭局能看出一个人的许多品性和性格,孰优孰劣一目了然。切记,当你在席间满口塞满饭菜,还滔滔不绝讲话的时候,你的形象分已经被减去好多。男生,你无论多饿,还是一口口慢慢吃。不要给自己堆好一大碗饭菜,然后埋头猛往嘴巴里面填。这样的行为,会显得你很粗俗。 吃饭过程还要给家长多端茶倒水,男生要给女友夹菜,这些细节,家长都会看在眼里的。小贴士:由于来赴宴是“醉翁之意不在酒”,切莫贪杯,喝个酩酊大醉,美好姻缘可能会因你一醉方休而毁于一旦。小冰有一个老家的表哥就是因为贪杯,经不住女方家人的轮番劝酒,自己的酒量又有限,知道自己酒量有限还充面子海喝,结果喝得自己都不知道怎么回家的。没过两天,女方那边带话过来就把这门亲事给吹了。9、其他——第一次会面的时间最好不要太长,最好不要住在女方家里,有的家庭很忌讳这个,速战速决,见好就撤,以便为下次会面留下良好的期待。多注意观察,比如看见家里长了花草,就装作很感兴趣可以询问饲养花草的方法,要是看见有什么古董之类的陈设,可以赞美一番。总之就是要抓住岳父母的爱好,他会很有兴趣,觉得你是同道中人。
-
阿里云服务器git pull/push无法使用
原因:
国内服务器厂商墙了github.com
如何解决:
一,获取github.com的服务器ip
我搜索了好久,终于在网上找到了可以查询多地区ping的网站 ping.sx,我们打开网站ping.sx,查询github.com的ping值
二,我们随便找复制一个ip在本地机器查看能否ping通,比如我们复制一个日本地区ping出的ip 20.27.177.113
ping 20.27.177.113
如果不能ping通,我们就换一个ip,总有能ping通的
三,修改服务器的hosts文件,hosts的目录在/etc/hosts,这里我们就需要刚才能ping通的ip地址
vim /ect/hosts
20.27.177.113 github.com 20.27.177.113 www.github.com
这样我们就设置好了。
-
html5中 img标签的srcset属性有什么作用以及如何使用
srcset
属性在img
标签中的作用主要是为了实现响应式图片,使得在不同的设备或者不同的分辨率下,都能够展示适应的图片效果。srcset
属性允许你为一张图片定义多个源,这样浏览器就可以根据当前设备的特性(例如视口宽度、设备像素比等)来选择最合适的图片进行渲染。srcset
属性的使用方法如下:<img srcset="img-320w.jpg 320w, img-480w.jpg 480w, img-800w.jpg 800w" sizes="(max-width: 320px) 280px, (max-width: 480px) 440px, 800px" src="img-800w.jpg" alt="responsive image">
在上面的例子中,
srcset
定义了三个不同的图片源,320w
,480w
,800w
分别代表这三张图片的宽度。sizes
属性定义了在不同的视口宽度下,图片所应占据的展示空间的宽度。如果浏览器不支持
srcset
属性,那么就会回退到src
属性指定的图片源。在使用
srcset
时,需要确保你提供的每一个图片源,都要有相应的尺寸描述符(例如上面例子中的320w
),这样浏览器才能正确的选择最合适的图片源。 -
阿里云函数计算快速部署静态网页
一、安装 s工具
必须条件:node.js(>=12.0.0)
官网是https://serverless-devs.com/
npm install @serverless-devs/s -g
判断是否安装成功
s -v
二、初始化项目
通过在他们官网搜索,我找到了这个名叫start-nginx的应用
通过如下命令,初始化一下
s init start-nginx -d start-nginx
三、修改nginx配置文件
修改code/nginx.conf代码如下
#user nobody; #Defines which Linux system user will own and run the Nginx server worker_processes auto; #Referes to single threaded process. Generally set to be equal to the number of CPUs or cores. #error_log logs/error.log; #error_log logs/error.log notice; #Specifies the file where server logs. #pid logs/nginx.pid; #nginx will write its master process ID(PID). events { worker_connections 1024; # worker_processes and worker_connections allows you to calculate maxclients value: # max_clients = worker_processes * worker_connections } http { # anything written in /opt/nginx/conf/mime.types is interpreted as if written inside the http { } block # #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; # If serving locally stored static files, sendfile is essential to speed up the server, # But if using as reverse proxy one can deactivate it #tcp_nopush on; # works opposite to tcp_nodelay. Instead of optimizing delays, it optimizes the amount of data sent at once. #keepalive_timeout 0; keepalive_timeout 900; # timeout during which a keep-alive client connection will stay open. #gzip on; # tells the server to use on-the-fly gzip compression. server { # You would want to make a separate file with its own server block for each virtual domain # on your server and then include them. listen 9000; #tells Nginx the hostname and the TCP port where it should listen for HTTP connections. # listen 9000; is equivalent to listen *:9000; server_name localhost; # lets you doname-based virtual hosting #charset koi8-r; #access_log logs/host.access.log main; #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} location / { include /etc/nginx/mime.types; root /code; index index.html index.htm; } } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
其中关键的一步是,在初始化的配置文件中添加了这段代码
location / { include /etc/nginx/mime.types; root /code; index index.html index.htm; }
四、静态代码
把静态代码复制到code目录下
五、部署代码
s deploy
-
mac如何使用brew安装php7.4版本
一、前言
现在是2023年8月,我本想使用如下命令安装php7,
brew install php@7.4
但发现brew官方已经不支持
二、我是这样安装的
如果你本地没有安装过其他版本的php,命令如下
brew tap shivammathur/php brew install shivammathur/php/php@7.4 brew link php@7.4
如果你之前安装过其他版本的php,需要先unlink一下,比如我的本地安装了php@8.1
brew unlink php@8.1 brew link php@7.4
三、安装brew-php-switcher
brew install brew-php-switcher
安装玩第二步以后基本可以实现了,也可安装这个brew-php-switcher包来切换php的版本
具体用法如下
切换的前提是你已经安装了多个版本的php
brew-php-switcher 7.4 -s brew-php-switcher 8.1 -s
-
docker本地开发thinkphp
本地开发thinkphp可以使用docker-compose来配置一个本地的开发环境,要是使用到的镜像有php,nginx,mysql,phpmyadmin,主要用的是前两个,后面两个可以根据项目来判断是否需要。
文件目录如下
- docker文件夹放dockerfile和其他配置文件
- html文件夹放thinkphp源码
- log是nginx的日志文件
- mysql是mysql的数据文件夹
- docker-compose.yml
首先我们新建文件夹mythinkphp,并在文件夹中创建docker-compose.yml文件。
你需要将下面配置中的mysql环境变量定义成自己的,有了这些你就可以使用phpmyadmin的后台管理数据库了。
version: '3.9' services: db: image: mysql:5.7 volumes: - ./mysql:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: yourpassword//1设置root的密码 MYSQL_DATABASE: thinkphp//2设置数据库名 MYSQL_USER: thinphp//3设置数据库用户名 MYSQL_PASSWORD: &fhf%$#pa//4设置数据库密码 depends_on: - php nginx: build: ./docker/nginx/ container_name: nginx-container ports: - 1234:80 volumes: - ./html:/var/www/html - ./log:/var/log/nginx/ links: - php php: # image: php:7.4-fpm build: ./docker/php/ container_name: php-container expose: - 9000 volumes: - ./html:/var/www/html # - ./phpconfig:/usr/local/etc/php/ phpmyadmin: image: phpmyadmin restart: always ports: - 8080:80 depends_on: - db
如何再创建一个docker的文件夹,主要放镜像的dockerfile文件和其他配置文件
/docker/nginx/Dockerfile
FROM nginx:latest COPY ./default.conf /etc/nginx/conf.d/default.conf
nginx的配置文件/docker/nginx/default.conf
server { listen 80 default_server; root /var/www/html/tp5/public; index index.html index.php; charset utf-8; location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; } } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } access_log off; error_log /var/log/nginx/error.log error; sendfile off; client_max_body_size 100m; location ~ .php$ { fastcgi_split_path_info ^(.+.php)(/.+)$; fastcgi_pass php:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors off; fastcgi_buffer_size 16k; fastcgi_buffers 4 16k; } location ~ /.ht { deny all; } }
php的容器生成文件/docker/php/Dockerfile
FROM php:7.4-fpm RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" RUN docker-php-ext-install mysqli pdo_mysql
接下来我们将thinkphp的文件放入tp5的文件夹,并放到html文件夹中
设置完成后,我们就可以启动本地环境了
docker-compose up -d
- 加-d参数意思在后台启动服务
关闭本地环境
docker-compose down
这就是thinkphp用docker的方式配置的的本地开发环境。