MENU

Debian 9 重装后的一些优化

2019 年 10 月 07 日 • 玩机

记录下重装 Debian 9 和 OneinStack 的 LNMP 后进行的一些配置和优化,方便以后参考。

Nginx 配置 basic_auth

sudo apt-get install apache2-utils
# 回车会要求输入两遍密码,会清除所有用户!
htpasswd -c /data/wwwroot/.htpasswd user1

# 不用回车,直接指定 user1 的密码为 password
htpasswd -bc /data/wwwroot/.htpasswd user1 password

# 添加一个用户,如果用户已存在,则是修改密码
htpasswd -b /data/wwwroot/.htpasswd user2 password

# 删除用户
htpasswd -D /data/wwwroot/.htpasswd user2

开机自启动 /etc/rc.local

# 来自 https://sb.sb/blog/debian-9-rc-local/

# 1、手工添加一个 /etc/rc.local 文件
cat <<EOF >/etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# 把需要开机启动的命令添加到 /etc/rc.local 文件,丢在 exit 0 前面即可
exit 0
EOF

# 2、赋予权限
chmod +x /etc/rc.local

# 3、接着启动 rc-local 服务
systemctl start rc-local

开启 PHP 文件缓存

nano /usr/local/php/etc/php.ini
opcache.file_cache= /data/tmp
[email protected]:/data/tmp# du -sh * | sort -n
7.2M    e65988adc56d677fb2f16fc85f3737f3

备份到 Dropbox

# 来自 https://blog.fazero.me/2016/09/10/backup-vps-to-dropbox/

# 获取最新的上传 dropbox 脚本
wget https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh
chmod +x dropbox_uploader.sh # 赋予权限
./dropbox_uploader.sh info # 开始绑定APP
测试
# 输入下面命令测试,显示 Done 就没问题了
# 想重新配置可以把/root目录下的隐藏的 .dropbox_uploader 文件删除再配置。
./dropbox_uploader.sh upload /etc/passwd /backup/passwd.old
创建自己的备份脚本
# nano vim backup.sh
#!/bin/bash
SCRIPT_DIR="/root" # 改成你存放刚刚下载下来的 dropbox_uploader.sh 的文件夹位置
DROPBOX_DIR="/backup" # 改成你的备份文件想要放在 Dropbox 下面的文件夹名称,如果不存在,脚本会自动创建
BACKUP_SRC="/home/wwwroot /usr/local/nginx/conf" # 想要备份的本地 VPS 上的文件,不同的目录用空格分开
BACKUP_DST="/tmp" # 暂时存放备份压缩文件的地方,一般用 /tmp 即可
MYSQL_SERVER="localhost" # mysql 服务器的地址,一般填这个本地地址即可
MYSQL_USER="mysqluser" # mysql 的用户名名称,比如 root 或 admin 之类的
MYSQL_PASS="password" # mysql 用户的密码

# 下面的一般不用改了
NOW=$(date +"%Y.%m.%d")
DESTFILE="$BACKUP_DST/$NOW.tar.gz"

# 备份 mysql 数据库并和其它备份文件一起压缩成一个文件
mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$NOW-Databases.sql"
echo "数据库备份完成,打包网站数据中..."
tar cfzP "$DESTFILE" $BACKUP_SRC "$NOW-Databases.sql"
echo "所有数据打包完成,准备上传..."

# 用脚本上传到 dropbox
$SCRIPT_DIR/dropbox_uploader.sh upload "$DESTFILE" "$DROPBOX_DIR/$NOW.tar.gz"
if [ $? -eq 0 ];then
     echo "上传完成"
else
     echo "上传失败,重新尝试"
fi

# 删除本地的临时文件
rm -f "$NOW-Databases.sql" "$DESTFILE"
可执行文件
chmod +x backup.sh # 赋予权限
chmod +x backup.sh # 赋予权限

# 输入下面的代码运行:
./backup.sh

# 通过 cron 来设置定时运行脚本:
0 5 * * * /bin/bash /root/backup.sh
mysqldump 报错 1449
mysqldump: Got error: 1449: The user specified as a definer ('root'@'%') does not exist when using LOCK TABLES
# https://elearning.wsldp.com/pcmagazine/how-to-fix-the-mysqldump-got-error/

GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
flush privileges;
exit;
设置语言报错
[email protected]:~# dpkg-reconfigure locales
Generating locales (this might take a while)...
  en_US.UTF-8... done
  zh_CN.GB2312... done
  zh_CN.GBK... done
  zh_CN.UTF-8... done
Generation complete.
*** update-locale: Warning: LANGUAGE ( "en_US.UTF-8") is not compatible with LANG (en_US.UTF-8). Disabling it.
[email protected]:~# sudo locale-gen "en_US.UTF-8"
Generating locales (this might take a while)...
  en_US.UTF-8... done
  zh_CN.GB2312... done
  zh_CN.GBK... done
  zh_CN.UTF-8... done
Generation complete.

[email protected]:~# sudo dpkg-reconfigure locales
Generating locales (this might take a while)...
  en_US.UTF-8... done
  zh_CN.GB2312... done
  zh_CN.GBK... done
  zh_CN.UTF-8... done
Generation complete.

赞助博客

2016~2020 年经济学人合集 ( PDF+EPUB+MOBI )
赞助合集
经济学人 2020 年音频赞助版
赞助音频