广告

本站里的文章大部分经过自行整理与测试

2018年5月18日星期五

PHP - Composer 安装

先安装 PHP..
https://jasonmun.blogspot.my/2017/01/lnmp.html

Ubuntu

$ sudo apt install php
$ sudo apt install php-curl php-gd php-mbstring php-xml php-zip

从网络复制 composer-setup.php 文件, 然后通过 PHP 安装之..

$ cd ~

$ php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"

将 composer 命令移动到系统中

$ sudo mv composer.phar /usr/local/bin/composer

检查与更新版本

$ composer --version
$ composer selfupdate

软件库配置

$ composer config -g repo.packagist composer https://packagist.phpcomposer.com

Ubuntu - Laravel 5.6 - Homestead 安装

Homestead 是 Laravel (PHP 框架) 准备好的开发环境
它是个虚拟机, 用 VirtualBox + Vagrant 运行
(其实 Vmware 也行, 但 Vagrant 是必须)

1) 安装 VirtualBox + Vagrant + SSH

$ sudo apt install ssh virtualbox vagrant

2) 安装 Homestead Vagrant Box 
(我网速 10Mbps 也花了几次才能成功安装, 安装完要 1 个小时多)

$ vagrant box add laravel/homestead

3) 安装 / 初始化 / 配置 Homestead Vagrant Box

3.1) 安装

$ cd ~
$ git clone https://github.com/laravel/homestead.git Homestead

$ cd ~/Homestead

# 去官网检查现在的最新版本号 https://github.com/laravel/homestead/releases
$ git checkout v7.6.0

3.2) 初始化 Homestead

$ bash init.sh

3.3) 研究下 Homestead 配置

$ gedit Homesstead.yaml

4) 有用到 SSH, 本地需生成公钥与私钥 (~/.ssh/id_rsa 和 ~/.ssh/id_rsa.pub)

$ ssh-keygen -t rsa -P ""

5) 启动 Homestead Vagrant Box 虚拟机

$ cd ~/Homestead

$ vagrant up

网卡部分可能会界面不是 eth1 而出现错误, 
进去虚拟机安装 ifupdown 后, 问题就可解决了

mesg: ttyname failed: Inappropriate ioctl for device
bash: line 4: /sbin/ifdown: No such file or directory
bash: line 20: /sbin/ifup: No such file or directory

$ vagrant ssh
vagrant@homestead:~$ sudo apt install ifupdown
vagrant@homestead:~$ exit

6) larabbs 例子

6.1) 下载

$ cd ~ && mkdir -p code

$ cd ~/code
$ git clone https://github.com/summerblue/larabbs

6.2) Homestead 配置改后, 重载之..

$ cd ~/Homestead

$ gedit Homestead.yaml

folders:
    - map: ~/code/larabbs/
      to: /home/vagrant/larabbs

sites:
    - map: larabbs.test
      to: /home/vagrant/larabbs/public

databases:
    - larabbs

$ vagrant reload

6.3) 安装扩展包 ~/code/larabbs/vendor, 
会映射到虚拟机 /home/vagrant/larabbs/vendor

6.3.1) 本地安装, 但先要安装 composer

$ cd ~/code/larabbs

$ composer install

PHP - composer 命令安装
https://jasonmun.blogspot.my/2018/05/php-composer.html

6.3.2) 虚拟机上安装 (可以跳去 6.5 上安装)

$ cd ~/Homestead

$ vagrant ssh
vagrant@homestead:~$ cd /home/vagrant/larabbs
vagrant@homestead:~$ composer install
vagrant@homestead:~$ exit

6.4) 准备 .env 文件 (里面配置了 mysql 用户与密码)

6.4.1) 本地安装

$ cd ~/code/larabbs

$ cp .env.example .env

6.4.2) 虚拟机上安装 (可以跳去 6.5 上安装)

$ cd ~/Homestead

$ vagrant ssh
vagrant@homestead:~$ cd /home/vagrant/larabbs
vagrant@homestead:~$ cp .env.example .env
vagrant@homestead:~$ exit

6.5) 进入 Homestead 虚拟机, 准备秘钥 / 数据库 / 数据

$ cd ~/Homestead

$ vagrant ssh
vagrant@homestead:~$ mysql -u homestead -psecret
mysql> show databases;
mysql> create database larabbs;
mysql> exit

vagrant@homestead:~$ cd /home/vagrant/larabbs
vagrant@homestead:~$ php artisan key:generate
vagrant@homestead:~$ php artisan migrate --seed
vagrant@homestead:~$ exit

* 秘钥也可以在本地生成, 如果本地也有安装 php7

6.6) 在 /etc/hosts 文件添加 (192.168.10.10 也就是 homestead 虚拟机)

$ echo "192.168.10.10   larabbs.test" | sudo tee -a /etc/hosts

6.7) 浏览

http://larabbs.test 

6.8) 关闭虚拟机

$ cd ~/Homestead

power off 关闭虚拟机 (再启动, 用 vagrant up 即可继续)
$ vagrant halt 

已不再要了(再启动, 用 vagrant up, 但需要再安装 ifupdown / 数据库 / 数据 )
$ vagrant destroy

2018年3月17日星期六

配置 HugePages 提高 Linux 性能

1) 检查

$ su
$ grep Huge /proc/meminfo

AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

从上面输出可以看到,每个页的大小为 2MB(Hugepagesize),
并且系统中目前有 0 个“大内存页”(HugePages_Total)。
这里“大内存页”的大小可以从 2MB 增加到 1GB。

2) 运行下面的脚本可以知道系统当前需要多少个巨大页

# 根据你的目前内核, 可能需要修改 hugepages.sh, 不然程序不运行
$ wget https://github.com/yomun/linux-init/raw/master/linux/hugepages.sh
$ sh hugepages.sh
Recommended setting: vm.nr_hugepages = 13

2.1) /etc/sysctl.conf 中,
写入以下这行 (以上知道需要 13 页, 为了效果更好, 加多2页),
然后输入 sysctl -p 让它生效
$ gedit /etc/sysctl.conf
vm.nr_hugepages=15

$ sysctl -p

2.2) /etc/security/limits.conf 中,写入以下2行, 然后重启
$ gedit /etc/security/limits.conf
# 15 x 2 (MB) x 1024 = 30720
soft memlock 30720
hard memlock 30720

3) 检查

# Ubuntu
$ cat /sys/kernel/mm/transparent_hugepage/enabled
always [madvise] never

# Red Hat
$ cat /sys/kernel/mm/redhat_transparent_hugepage/enabled

4) 禁用 “大内存页”

则在 /etc/grub.conf 中的 kernel 行
后面加上 transparent_hugepage=never,
然后重启系统

2018年2月22日星期四

Linux - Tomb 文件加密

  • Tomb 像个加密文件夹, 你只需要将要加密的文件写在里面即可
  • 使用与 Veracrypt 类似的 AES-256 加密标准.这个标准适用于 NSA 、微软和 Apple,并被认为是最安全的加密算法之一
  • 专门为 GNU/Linux 系统开发的
  • Tomb 是开源的, 但它使用的是静态链接库, 以至于其源代码难以审计
  • gtomb 是它的 GUI

安装

$ sudo vi /etc/apt/sources.list.d/sparky-repo.list

deb https://sparkylinux.org/repo stable main
deb-src https://sparkylinux.org/repo stable main
deb https://sparkylinux.org/repo testing main
deb-src https://sparkylinux.org/repo testing main

$ sudo apt-get update
sudo apt-get install sparky-keyring
# wget -O - https://sparkylinux.org/repo/sparkylinux.gpg.key | sudo apt-key add -
$ sudo apt-get install gtomb tomb



$ sudo dnf/yum/apt-get install zsh gnupg cryptsetup pinentry-curses
$ wget https://github.com/dyne/Tomb/archive/v2.5.tar.gz
$ tar zxvf v2.5.tar.gz
$ cd Tomb-2.5
$ sudo make install

基本应用

1) 制作 100MB 的 Tomb 文件
$ tomb dig -s 100 Tomb1.tomb

2) 先暂时的关掉 SWAP 分区
$ sudo swapoff -a

# 永久的将 swap 分区 remarks 掉 (用 # 符号)
$ sudo gedit /etc/fstab

3) 制作 key, 需要配置密码 (2次)
$ tomb forge Tomb1.tomb.key

4) 用 key 锁上 Tomb, 需要密码
$ tomb lock Tomb1.tomb -k Tomb1.tomb.key

5) 用 key 打开 Tomb, 需要密码
$ tomb open Tomb1.tomb -k Tomb1.tomb.key

6) 关闭 Tomb, 需要密码
$ tomb close

7) 强制关闭所有打开的 Tomb
$ tomb slam all

2018年2月19日星期一

用 qq.com 电子邮件

1) 进入 QQ 邮箱 mail.qq.com 的设置 - 账户 - 
POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 
开启服务: 
  • POP3/SMTP服务 - 开启
  • IMAP/SMTP服务 - 开启

2) 如果按 [开启]

2.1) 第一次按 [开启], 会先要求申请第二代密保 (手机号注册)

在手机下载 [QQ安全中心] APP
[工具] 里会显示6个数字的动态密码
https://play.google.com/store/apps/details?id=com.tencent.token
https://itunes.apple.com/hk/app/qq%E5%AE%89%E5%85%A8%E4%B8%AD%E5%BF%83/id387109554?mt=8

2.2) 第二次按 [开启], 会要求输入以上动态密码, 然后生成 16个英文字母

3) 在 Email APP - Add account
填写 Email address (user@qq.com) 和 Password (用以上 16个英文字母密码)

4) 仔细的服务配置

IMAP 服务
imap.qq.com
SSL
993

SMTP 服务
smtp.qq.com
SSL
465

2018年2月18日星期日

android 上用 icloud.com 电子邮件

1) 登录 Apple ID 帐户页面 (需已经打开了双重认证)
https://appleid.apple.com/account/home

2) 在 Security - APP-SPECIFIC PASSWORDS - Generate Password
生成一次性 APP 密码 abcd-efgh-ijkl-mnop

3) 在 Email APP - Add account
填写 Email address (user@icloud.com) 和 Password (用以上 APP 密码)

4) 仔细的服务配置

IMAP 服务
imap.mail.me.com
SSL
993

SMTP 服务
smtp.mail.me.com
TLS
587

2018年2月16日星期五

Ubuntu 上用 OpenVPN Access Server

1) 基础配置

1.1) 主机的静态 Private_IP 192.168.X.X

192.168.X.X 可用 ifconfig 检查
如果没有, 可自己配置
http://jasonmun.blogspot.my/2017/01/linux-network-settings-ip.html
或也可检查 router modem, 在里面 LAN Setup 配置 DHCP

1.2) 开 port 和 Port Forward

router modem 要做 port forward 到以上 Private_IP
1194 (预设用 UDP 协议) 和 943 (预设用 TCP 协议)

如果有安装 firewall, 也需要将这 2 个 Port 打开

2) 下载与安装 OpenVPN Access Server
https://openvpn.net/index.php/access-server/download-openvpn-as-sw.html

$ su

Ubuntu
$ dpkg -i openvpn-as-2.5-Ubuntu16.amd_64.deb

CentOS 7
$ rpm -ivh openvpn-as-2.1.12-CentOS7.x86_64.rpm

3) OpenVPN Access Server 配置

3.1) 配置 openvpn 户口密码
$ passwd openvpn

进 https://192.168.X.X:943/admin

3.2) 网络配置
Configuration - Network Settings - Hostname or IP Address
从 192.168.X.X Private_IP 改为 Public_IP, 
如果没有固定的 Public_IP, 
但有 Hostname (jasonmun.dlinkddns.com), 放 Hostname 更好, 
以后不会因 IP 的改变, 而需要改配置
(UDP Port number 1194 也可以改)

3.3) 配置自动登入
User Management - User Permissions
- openvpn 户口 - 选 allow Auto-login - Save Settings

3.4) 重启服务
Status - Status Overview
- Stop the Server - Confirm Servers Stop - Start the Server

4) 从 OpenVPN Access Server 取得 autologin profile (client.ovpn)

进 https://192.168.X.X:943/
或 https://Public_IP:943/
或 https://Hostname:943/

用 openvpn 户口登入
点选 Yourself (autologin profile) , 得到 client.ovpn

5) 无论在什么平台上安装 OpenVPN 客户端, 
只要 import 上 client.ovpn 即可连接
(Free license 能够同时连接 2 个设备)

https://play.google.com/store/apps/details?id=net.openvpn.openvpn
https://play.google.com/store/apps/details?id=de.blinkt.openvpn
https://itunes.apple.com/us/app/openvpn-connect/id590379981?mt=8