Docker LNMP环境搭建

94.9k PHP教程 322评论
本文介绍如何使用Docker容器,快速部署LNMP环境。 最终完成的环境我们称为:DNMP(即 Docker + Nginx + MySQL + PHP)。 最终实现一键部署LNMP环境的目的,该环境特点: 完全开源 支持多版本PHP切换(PHP5.4、PHP5.6、PHP7.2...) 支持绑定任意多个域名 支持HTTPS和HTTP/2 PHP源代码位于host中 MySQL data位于host中 所有配置文件可在hos…

手把手编写PHP MVC框架实例教程

132.0k PHP教程 379评论
1 什么是MVC MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式。 MVC把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。 PHP中MVC模式也称Web MVC,从上世纪70年代进化而来。 MVC的目的是实现一种动态的程序设计,便于后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可…

Maven/Gradle 编译错误解决:java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

301 记录 发表评论
Maven 或者 Gradle 编译遇到如下问题: ➜ idaas git:(main) ./gradlew build > Task :generateProto FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':generateProto'. > Could not resolve all files for configuration ':protobufToolsLocator_protoc'. > Could…

Selenium 爬取 Youtube 无限流分页页面

135 记录 发表评论
原理:通过执行 js 来获取页面可滚动的高度,抓取该高度范围内的数据后,再跳转到底部。 这里获取可滚动高度用的是document.documentElement.scrollHeight 而不是 document.body.scrollHeight,用 body 的时候这个返回值一直是 0。 代码如下: from selenium import webdriver from selenium.webdriver.chrome.options import Options f…

Java 读取 Reader 为 String

227 记录 发表评论
本文讲述如何在 Java 中将 Reader 转换成 String。 共三种方式:纯Java、使用 Guava 库以及使用Apache Commons IO库。 1 纯 Java 方式 如是是用纯 Java 代码从 Reader 中读取 String 的代码: @Test public void givenUsingPlainJava_whenConvertingReaderIntoStringV1_thenCorrect() throws IOException { StringReader reader = new S…

Java 从 resources 读取文件内容的方法汇总

114 记录 发表评论
目录结构: - src - main - java - com - awaimai - MainApplication.java - resources - data - demo.txt - application.yml 我们在 MainApplication.java 中读取文件 resources/data/demo.txt 的数据。 因为大部分程序都需要打包成 jar 包,所以,我们重点说明打成 jar 包可用的情况。

Spring Boot 实现根据 URL 切换多个数据库源

236 记录 发表评论
Spring Boot 实现根据 URL 切换多个数据库源 很多情况下,网站会用到多数据源的情况,比如多语言网站、多业务网站等。 在 Spring Boot 中,使用其自带了的路由数据源 (AbstractRoutingDataSource),可以很容易就能实现多数据库源的自动切换。 本文详细介绍如何实现以上目的,并且提供 Spring Boot 原生JDBC 和 MyBatis 的实现方式。 1…

MySQL 正则表达式替换

431 记录 发表评论
先说结论: 对于 MySQL 8+, 用REGEXP_REPLACE()函数 对于 MySQL 5 及以前版本,用用户自定义函数 (user-defined function,简称UDF),如:mysql-udf-regexp 本文只说明 MySQL 8+ 中REGEXP_REPLACE()函数的用法,不对 UDF 进行说明,请自行参考 GitHub 链接。 用法 REGEXP_REPLACE(expr, pat, repl[, pos[, occurrence[, match_type]]])…

IDEA 调试时查看完整的调用栈路径

1.2k 记录 发表评论
当我们用 IDEA 对 Java、Python 或者 PHP 等所有代码进行调试时,查看其调用栈路径非常有用,可追溯到代码的调用关系。 如下是 IDEA 默认的调用栈展示方式,非常简单: 要查看完整的调用栈路径,在调试的时候点“Debug”试图右上角的“Layout Settings”图标,下拉后勾选“Threads”,这样就可以了。 参考资料: IntelliJ IDEA 12 -- viewing …

Spring Boot 多语言配置

491 记录 发表评论
建立一个多语言网站不仅有助于提高访问量,同时还能减少维护成本(相对于同时维护2个不同语言的网站)。 多语言网站也称为国际化(i18n),是对应于本地化(i10n)的叫法。 说明:i18n 来自英文单词(Internationalization),因为这个单词太长,所以取其首尾字母,加上中间的 18 个字母,组合成 i18n。类似的还有 k8s(kubernetes)等…
下一页 »