UbuntuにLaravelのインストール

公式

composerのインストール

curl -sS https://getcomposer.org/installer | php
sudo   mv composer.phar /usr/local/bin/composer

laravelのインストール

composer global require "laravel/installer=~1.1"

path通す
~/.composer/vendor/binではないので注意

export PATH="$PATH:~/.config/composer/vendor/bin"

プロジェクト作成

laravel new hoge

keyの生成
The only supported ciphers are AES-128-CBC and AES-256-CBC

php artisan key:generate
php artisan config:clear

nginx

server {
    listen       80;
    server_name  hogehoge.com;


    root   /var/www/hoge/public;
    index  index.php;

    location / {
        index  index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ \.php$ {
      fastcgi_pass   unix:/run/php/php7.2-fpm.sock;
      fastcgi_index  index.php;
      fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
      include        fastcgi_params;
    }
}

UbuntuにOpenVPNを構築しWindowsとAndroidから接続

Server

参考
Qiita

$  cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.1 LTS (Bionic Beaver)"

install

openvpn install

$ sudo apt  install openvpn

easy-rsaのclone

$ git clone https://github.com/OpenVPN/easy-rsa.git

サーバー用秘密鍵の作成は上記参考
鍵の有効期限を伸ばしておく

./easy-rsa/easyrsa3/easyrsa
#set_var EASYRSA_CRL_DAYS           180
set_var EASYRSA_CRL_DAYS           3650

config

$ cat /etc/openvpn/server.conf
port   1194
proto  udp
dev    tun

ca          ca.crt
cert        server.crt
key         server.key
dh          dh.pem
crl-verify  crl.pem

ifconfig-pool-persist ipp.txt

server 10.8.0.0 255.255.255.0

push "redirect-gateway def1 bypass-dhcp"
push "route 10.8.0.0 255.255.255.0"
push "dhcp-option DNS 8.8.8.8"

client-to-client
keepalive 10 120
comp-lzo

user  nobody
group nogroup

persist-key
persist-tun

status      /var/log/openvpn-status.log
log         /var/log/openvpn.log
log-append  /var/log/openvpn.log

verb 3
$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
1194/udp                   ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
1194/udp (v6)              ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)

client

クライアント用秘密鍵の作成は上記参考

クライアントで必要なのは以下3ファイル
CA証明書 :ca.crt
pki証明書:[ユーザー名].crt
pki秘密鍵:[ユーザー名].key

Windows

クライアントソフト
vpnux

Android

qiita
クライアントソフト
OpenVPN for Android
注意点

  • 基本設定:[種別]は[証明書]を選択してください。(初期状態は[Androidの証明書管理]となっています)
  • IPとDNS:[設定情報を取得する]をON
  • 認証/暗号化:[証明書のホスト名を確認する]をOFF

file_get_contents()をcurl化

function getCurl($url,array $opt = []){
    $defaults = [
        CURLOPT_URL => $url,
        CURLOPT_HEADER => 0,
        CURLOPT_RETURNTRANSFER => TRUE,
        CURLOPT_TIMEOUT => 5
    ];
    $ch = curl_init();
    curl_setopt_array($ch, ($opt + $defaults));
    if(!$result = curl_exec($ch)){
        error_log('Curl error: '.curl_error($ch).' url: '.$url);
    }
    curl_close($ch);
    return $result;
}
echo getCurl('https://wp.wkbr.net');