广告

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

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,
然后重启系统