Word样式整理

写了这么多年的各种解决方案,技术方案,投标文件之类的,对有强迫症的我来说,就希望样式统一,一定不能有乱七八糟的东西。

  1. 只允许:Heading1~X,IndentFirstLine,Normal,Caption出现在Style Gallery,且按此文档排序;
  2. 允许其它不常见的,如:TOC1~9,Table Figure,Footer等样式出现在文档中;
  3. 其它样式一律人文档中删除;

Continue Reading

SSH证书配置好后仍提示密码

记录一下,几个关键点:

  1. SSH证书的常规配置,如:PublickeyAuthentication yes等
  2. .ssh目录权限700,.ssh/authorized_keys文件权限为600,貌似有说法是说不允许写权限。
  3. 执行restorecon -r -vv ~/.ssh,可以在执行前后用ls -laZ比较文件的标签的变化,我这里主要是authorzied_keys文件之前没有打上ssh_home这样的标签,所以无效。执行这个命令后有此标签。
  4. 重启 systemctl restart sshd
Continue Reading

重新申请Let’s crypt证书!

其实也非常简单:)

  1. 基础环境+certbot安装;
  2. 不要考虑以前的什么复用之类的,直接按教程certbot certonly -d xxxx.com 的命令先申请新证书;
  3. 可能需要配置apache:)

重新申请时需要注意:

  1. 需要先停止apache,通过systemctl stop httpd实现
  2. 执行certbot renew
  3. 如果不执行步骤1执行的话,会报绑定80端口错误。
Continue Reading

Linux代理设置

网上找了一堆的教程,其实都提到了,但没提到关键的容易踩中的坑:两者的环境变量名不同!

  1. shell中可用的全局代理,是在/etc/profile文件或~/.bash_profile中export http_proxy=http://xxxx的方式实现;注意:环境变量名是http_proxy;
  2. yum则需要修改/etc/yum.conf文件,而其中的变量名是proxy!!!

Continue Reading

服务器安装Nginx+Apache+PHP

安装Apache

这个最简单:yum install httpd即可

然后就可以直接systemctl enable/start操作服务了

相关配置信息说明:

  • Apache默认将网站的根目录指向/var/www/html
  • 默认的主配置文件/etc/httpd/conf/httpd.conf
  • 配置存储在的/etc/httpd/conf.d/目录

安装PHP

这个也是必须,操作步骤如下:

  1. 先添加两个库:
    • yum install epel-release
    • yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
  2. 安装yum-utils: yum -y install yum-utils
  3. 启用PHP74:yum-config-manager –enable remi-php74
  4. 安装PHP74及各种包:sudo yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-redis
  5. 通过以下两个命令查看PHP安装信息:
    • php -v
    • php -module(s) 测试,加不加s都能成功

Continue Reading

MySQL常用操作

安装

在CentOS7上安装MySQL Community Server 8.0

通过Yum安装的是mariadb,为安装社区标准版,做如下操作:

  1. 官网查找最新的rpm包(repo)的下载地址https://dev.mysql.com/downloads/repo/yum/
  2. 下载rpm包,对CentOS7上的MySQL8来说是这个:https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
  3. 安装rpm包到系统:rpm -ivh xxxxx.rpm 其中xxxx.rpm是上面下载的rpm文件
  4. 安装mysql,注意mysql是命令行客户端,需要安装mysql-community-server
  5. 配置my.cnf文件:lower_case_table_names
    • lower_case_table_names=1
    • 此配置一定要在第一次启动MySQL前完成,否则将导致异常冲突;
    • 默认情况下:Linux=0, Windows=1, OSX=2
    • 区别在于:0,保存表名时大小写敏感(与create table语句一致),查找(比较)时亦是;1,保存表名时统一转换为小写,查找时亦统一转换为小写查询;2,保存表名时大小写敏感(与create table语句一致),查询(比较)时统一都转换为小写。
  6. 配置my.cnf文件,其它:
    • sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
    • 配置此内容是为应对部分MySQL5.7与8.0的语法不兼容的问题,例如5.7的数据库在升级到8.0时,datetime字段不支持0000-00-00的字符串作为默认值(Wordpress)将提示:Invalid default value for xxxx;
    • MySQL8不支持NO_AUTO_CREATE_USER,删除此项配置即可;
  7. 启动MYSQL,常规的7.0启动服务命令:systemctl start mysqld,注意后面的d;
  8. 首次启动后会在日志中生成默认密码,通过grep ‘temporary password’ /var/log/mysqld.log查看默认密码;
  9. 修改密码ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘root_new_pwd’;
  10. 或通过mysql还是mysqladmin连接一次会自动提示修改密码;
  11. 通过update user set host =’%’ where user=’root’;允许任意IP连接;
  12. 注意上述操作需要执行flush privileges;

其它安装相关技巧

  1. rpm查询相关包:rpm -qa | grep “mysql”
  2. 删除相关rpm包:rpm -e –nodeps mariadb-server,其中mariadb-server是包名;
  3. 删除mysql的相关文件:sudo rm -rf /var/lib/mysql /var/log/mysqld.log
  4. 查看yum中的repo库:yum repolist
  5. 启用或禁用yum中某个安装包:sudo yum-config-manager –disable mysql80-community,其中–disable改为–enable即为启用;可以通过启用或禁用5.7或8.0版本来安装(当然也可直接指定版本安装);
  6. 查看密码策略:SHOW VARIABLES LIKE ‘validate_password%’;
  7. 本机启用防火墙的情况下,添加防火墙规则:firewall-cmd –zone=public –add-port=3306/tcp –permanent,还需要通过firewall-cmd –reload加载一次方能生效。
  8. 可以通过创建[email protected]%的新用户的方式来允许远程IP连接入;需要执行如下指令:
    1. CREATE USER ‘root’@’%’ IDENTIFIED BY ‘root’;
    2. GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ WITH GRANT OPTION;
Continue Reading

Word高级经验

说明

以下描述均在Word(16.45 21011103)for OSX上操作,Windows版可能有更简单的操作方法。

样式基本概念

样式库(Style Gallery)

显示在Home中的样式;这些样式是常用样式,可以移除,也可以添加。点击删除时,右键显示的名称叫:Style gallery,而在添加到此列表时叫Quick Style List。

添加快速样式:打开样式面板,点击样式右侧的向下箭头,点击修改(modify),然后添加到快速样式(Quick Style List )

删除快速样式:在样式库上右键点击,选择Remove from Style Gallery。

样式类型

这里的样式类型主要是指可见性:

  1. ALL STYLES:本文档,包括模板中定义的所有有效样式;
  2. IN CURRENT DOCUMENT:本文档中的样式,这里我还不太能准确的理解。
  3. STYLE IN USE:本文档中已被使用的样式;
  4. RECOMMENDED:推荐样式(这个没什么用)

注意这个类型五样式库没有必然关系,即:在样式库的样式可以不在3和4中,但一定在1和2 中。一般情况下,关注123即可。

当1中样式过多,确定不会使用时,可以删除。

常用样式说明

Heading1~9:标题

TOC1~9:目录(Table of conetnt)标题,注意:这是与Heading1∽9对应目录项的样式。

Toc Title:目录标题

Normal:标准段落,建议所有的样式以此为基础,即:基准样式,主要是字体,间距,对齐,缩进等的定义。我的习惯是这里不定义中文的首行缩进。

IndentFirstLine:首行缩进做段落,在Normal的基础上首行缩进两汉字。

caption:题注(图表等)

高级操作

重新打包

所有的docx文件其本质是zip文件我,解压后大多数文件可直接修改,完成修改后重新打包即可。

注意的是:

  1. 打包成zip
  2. 注意是打包根目录,即包含了:[Content_Types].xml和word/docProps/customXml文件夹的目录,不要再套目录;
  3. 如果在打包的目录加入了一些不相关的文件,无论是放到根目录还是子目录中,打开时将提示文件发现不可达的内容(unreachable content),点击YES(信任)可修复此错误;
  4. 默认的XML文件是紧凑排列(无空格的),可以格式化(增加空格和换行)后保存,不影响打包后打开此文件,并且不会在一般的保存操作时重新格式化为紧凑(即:先解压,打开xxx.xml,重新格式化增加换行和缩进,再打包为zip,改名为docx打开,修改文件再保存,再将此文件修改为zip 后再解压并查看xxx.xml文件,此文件仍为之前已经格式化过的状态,而不是紧凑状态)。
  5. 在styles.xml中删除样式
    1. 只删除样式定义部分的内容<w:style w:type=”paragraph” w:styleId=”Heading6″>此操作将导致样式丢失,文档打开时重建此“名称”的样式,格式为默认;如果样式此前显示在Style Gallery中仍将显示重建后的样式;
    2. 删除样式定义部分的同时,删除前部的引用如:<w:lsdException w:name=”heading 6″ w:uiPriority=”9″ w:qFormat=”1″ />,此时样式从StyleGallery中消失。

样式库排序

有时会出现样式合并后顺序错乱,此时在Windows平台上可以通过窗口方便的调整顺序,但在OSX上无此功能。

解决的方案是,将docx重命名为zip后解压,然后修改/word/styles.xml文件。

关于样式的定义大体如下:

<w:style w:type="paragraph" w:default="1" w:styleId="Normal">
        <w:name w:val="Normal" />
        <w:uiPriority w:val="95" />

        <w:qFormat />
</w:style>

可以通过搜索styleId="Normal"的方式来查找相应的片段,添加其中<w:uiPriority w:val="95" />这一行或修改后面的数字即可修改排序。

修改完成重新压缩为zip文件即可。

Continue Reading

Linux配置虚拟内存

  1. 用root用户登录系统
  2. 创建/usr/swap目录
  3. 执行dd if=/dev/zero of=/usr/swap/swapfile bs=1M count=4096
  4. 其中的4096可修改为2048或其它大小,为虚拟内存大小;
  5. mkswap /usr/swap/swapfile
  6. swapon /usr/swap/swapfile
  7. 修改/etc/fstab,在第一行后(视情况)增加一行/usr/swap/swapfile swap swap defaults 0 0
  8. 重启:)通过free -m检查
Continue Reading

Linux命令经验——mount相关

之前用过很多次mount相关的功能,包括加载远程NFS等,最近因为配置vsftpd又用到,所以记录一下。

绑定A与B目录

这一操作感觉上类似于ln -s或者ln(实际上)。区别在于ln根本不能实现(硬链接不支持目录),而ln -s实际上是创建了一个文件指向了目标。

需求来自于一个ftp的配置。多个帐户要求共享若干个目录,每个帐户又有各自独立的目录,并且这些目录需要隐藏而不仅仅是禁止访问。

解决的方案是:

mount -bound /source/dir /target/dir

在fstab中启动时加载

这也是经常需要的功能,毕竟一次性加载的时候不多。

方法是编辑/etc/fstab文件,此文件的各个字段的标准解释参考这里

简单点说包括:fs_spec(加载系统) fs_file(挂载点<目录>) fs_type(文件系统类型) fs_options(参数) fs_dump(转储频率) fs_pass(启动时加载顺序)

翻译得通俗一点就是;

/source/dirOrDevice    /target/dir     file_system_type option1,option2 #1 #2

其中#1,#2一般为0,0。

对于上面提到的A目录挂载B目录时,对应的写法是:

/ftp/public     /ftp/users/ftp/public       none defaults,bind 0 0

字段之间可以使用“任意数量”的“空字符”分隔,至少包括:空格和制表符,且允许多个。

选项(option)之间使用逗号分隔。常用的除了上面的defaults,bind之外,还有ro(只读),rw(读写)等。

在另一个项目中,我试过用如下的方式加载远程的目录,通过NFS方式共享文件,实现上传文件的统一管理。

172.17.16.24:/nfs/upload    /nfs/upload    nfs    defaults 0 0

172.17.16.24:/nfs/archive    /nfs/archive    nfs    defaults 0 0

172.17.16.24:/nfs/share    /nfs/share    nfs    defaults 0 0

与之对应的的NFS配置虽然与mount无关,这里也列一下以便对照。

/nfs/share 172.17.16.25/32(rw,sync,no_root_squash,no_all_squash)
/nfs/share 172.17.16.30/32(rw,sync,no_root_squash,no_all_squash)
/nfs/share 172.17.16.45/32(rw,sync,no_root_squash,no_all_squash)
/nfs/archive 172.17.16.25/32(ro,sync)
/nfs/archive 172.17.16.30/32(ro,sync)
/nfs/archive 172.17.16.45/32(ro,sync)
/nfs/upload 172.17.16.25/32(rw,sync,no_root_squash,no_all_squash)
/nfs/upload 172.17.16.30/32(rw,sync,no_root_squash,no_all_squash)

fstab校验

之前遇到过一次修改了fstab把主机搞挂了的情况,所以一直对修改这个文件有点发怵,今天上网发现了一个命令,应该是非常实用的:

mount -a

该命令尝试加载fstab文件,可以不重启验证fstab文件是否有异常。

解除挂载

其实这个命令很简单,就是umount 挂载点路径

唯一需要说明的就是不是unmount,而是umount,一开始打错了。

Continue Reading
1 2 3 13