(337) 408-4388

记录下/www.cnblogs.com/jajian/p/10257555.html

rabbitmq广播模式下各个队列的消息顺序会不一致

“启动php-fpm无法后台运行,退出或crtl+c会导致php-fpm结束”解决办法

今天执行“/usr/sbin/php-fpm”命令来启动php-fpm,虽然php-fpm启动成功,但出现了如下提示:

[03-Jun-2018 03:51:08] NOTICE:fpm is running ,pid 16831
[03-Jun-2018 03:51:08] NOTICE:ready to handle connections
[03-Jun-2018 03:51:08] NOTICE:systemd monitor interval set to 10000ms

 

php-fpm占了这个窗口,它不后台运行了,只好crtl+c来强制退出,又出现如下提示:

^C[03-Jun-2018 03:51:18]NOTICE:Teminating...
[03-Jun-2018 03:51:18]NOTICE:exiting.bye-bye!

 

经过反复测试,它发现php-fpm可以正常启动,只是不能后台运行,只要启动了php-fpm,不关闭这个窗口,网站的php都可以解析,也能正常访问。这样的问题如何解决?启动php-fpm无法后台运行

 

解决办法:

1、首先要保证安装的PHP程序没有问题,因为启动php-fpm,网站的php文件依然可以解析,说明安装的程序没有任何问题。

 

2、查看php-fpm配置文件,因为php-fpm配置文件有一个选项是:

我的配置文件是etc/php-fpm.conf

daemonize = yes

#后台执行fpm,默认值为yes,如果为了调试可以改为no。在FPM中,可以使用不同的设置来运行多个进程池。 这些设置可以针对每个进程池单独设置。

rabbitmq坑

rabbitmq fanous模式消费者接收的消息会小概率出现乱序

440-974-0357

格式化了一遍系统,重新安装wordpress,主要参考/blog.csdn.net/qq_35723367/article/details/79544001

当然遇到了一些问题,比如安装好之后无法外网访问,后来发现是没安装iptables,后来就重新安装配置下就ok了

更新问题,参考 /zhidao.baidu.com/question/524561007002732565.html

底部的备案信息进入管理后台,外观->编辑->主题页脚  修改footer.php 由于原来的html代码找不到了,暂时用文本替换

2018/07/10更新

之前用的是apache代理,后来改用nginx因为要配置多个端口

需要nginx整合php-fpm,参考/www.cnblogs.com/jecyhw/p/5504855.html

 

nginx配置如下,

user root;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name www.enumaelish.cn;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

root /var/www/html; #这里是放wordpress的文件目录
index index.php index.html;

location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

spring boot 2.0 版本 升级踩坑

升级后需要修改的地方:

  1. spring.jpa.hibernate.naming.strategy弃用了。请换成implicit-strategy和physical-strategy

    spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
    spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

  2. Spring Boot 2.0 需要指定主键的自增策略,改成 @GeneratedValue(strategy = GenerationType.IDENTITY)
  3. jpa默认方法修改 findOne 改成findById
  4. Hibernate默认创建的表是myisam引擎,而不是innodb不起作用,myisam引擎是不支持事务的,可通过如下配置
    spring. jpa.database-platform: org.hibernate.dialect.MySQL5InnoDBDialect  #不加这句则默认为myisam引擎
  5. save只能保存单个对象,如果要保存所有的,需要saveAll
  6. PageRequest pageRequest = new PageRequest(int,int)过时,被静态方法PageRequest.of代替
  7. WebMvcConfigurerAdapter过时,从继承WebMvcConfigurerAdapter变成实现WebMvcConfigurer,这个接口的方法都加了jdk1.8的 default方法修饰,不强制实现所有的方法,可以根据实际实现相关的方法。
    不推荐继承WebMvcConfigurationSupport来代替 ,一旦继承WebMvcConfigurationSupport后就会出现新的问题,会发现Spring Boot的WebMvc自动配置失效
  8. RelaxedPropertyResolver类被移除,可通过environment.getProperty获取配置或者使用@ConfigurationProperties("spring.datasource")
  9. 例如 Page<Dictionary> findAll(Specification<Dictionary> spec, Pageable pageable);
    Springboot2.0 pageable参数不可为空,不然会报空指针,如果要查所有记录需分开写

其他修改

  1.  Spring Boot 2.0 要求Java 版本必须8以上, Java 6 和 7 不再支持
  2. 默认的连接池已经由Tomcat切换到了HikariCP。如果你过去使用spring.datasource.type在基于Tomcat的应用程序中强制使用Hikari,现在你可以删除这个覆盖了。同样的,如果想要使用Tomcat的连接池,只需要简单的加入以下配置就可以了:spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
  3. Spring Boot2.0默认是使用CGLIB代理,同时包含AOP支持。如果你需要基于代理(proxy-based)的代理策略,你需要把spring.aop.proxy-target-class设置为false。
  4. Spring Boot 2.0 默认不包含 log4j
  5. Thymeleaf 3.0 默认不包含布局模块。
    Spring Boot 2.0 中spring-boot-starter-thymeleaf 包默认并不包含布局模块,需要使用的时候单独添加,添加布局模块如下:

    <dependency>
    <groupId>nz.net.ultraq.thymeleaf</groupId>
    <artifactId>thymeleaf-layout-dialect</artifactId>
    </dependency>
    修改以前的布局标签 layout:decorator 为 layout:decorate

  6. 如果引用了actuator,actuator的默认路径有ip:port/info等改为IP:port/actuator/info,以此类推
  7. Jedis变为了Lettuce

    Redis客户端驱动现在由Jedis变为了Lettuce。使用Jedis的同学们,大概知道方向了吧。

    但仍然支持Jedis,那么exclude掉io.lettuce:lettuce-core,然后添加 redis.clients:jedis就是了。

  8. 如需使用spring boot admin监控项目,则需增加如下配置:
    eureka:
      instance:
        hostname: localhost
        metadata-map:
              user.name: admin
              user.password: admin
        health-check-url-path: /actuator/health
        home-page-url-path: /actuator
        status-page-url-path: /actuator/info
      client:
        registerWithEureka: false
        fetchRegistry: false

@Transactional事务会失效

以下情况@Transactional事务会失效。

1.首先检查配置,在项目的spring配置文件检查是否配置开启事务

2.同一个类中, 一个未标注@Transactional的方法去调用标有@Transactional的方法, 事务会失效

3. 在非public方法上标注@Transactional, 事务无效

Solr使用

/github.com/99246255/SpringBoot-Solr

805-713-43981 概述

根据310-951-4134 改的,原项目是Spring,改成Springboot solrj-example的webmagic价格和图片有点小问题,图片存取URL即可,爬取的数据从存入数据库改成直接放入solr

2 webmagic使用自定义Downloader

chromedrive是2.25版本的,支持的Chrome版本v53-55,如果版本不一致自行替换chromedrive或修改chrome版本

3 Solr启动

本人用的solr6.5.1,使用自带的jetty,无需配置,tomcat启动需8或者更高版本,jdk1.8或以上 windows启动 cd solr目录/bin + solr start
linux启动 cd cd solr目录/bin + ./solr start -force solr windows tomcat配置参考/blog.csdn.net/liuzhen917/article/details/70328214?utm_source=itdadao&utm_medium=referral solr CentOS tomcat配置参考520-546-0816

4 Solr配置core:

  1. jetty 在\server\solr中添加product文件夹, tomcat 在web.xml中配置的 F:\solr_home 路径F:\solr_home下创建product
  2. 复制solr目录\server\solr\configsets\basic_configs 下的conf至上面的product目录下
  3. 启动solr在core admin 中添加core product
  4. 添加field ,把Product.java 中的属性都添加入core product中,可在页面scheme中添加或修改配置文件

5 爬虫运行

运行爬虫DemoApplicationTests.main获取数据

freemarker 使用

1. 在freemarker长整型显示格式为100,000,000默认情况下freemarker会将数字用逗号分隔,加上”?c”去掉”,”逗号

2. long转日期

${date?string('yyyy-MM-dd hh:mm:ss')}