Mac Windows 使用 openvpn client 連線SQL Server參考資料

預設已經Linux環境安裝了OPENVPN及Microsoft SQL Server

SQL Server可以參考Docker的安裝方式

sudo docker run --name mssql --restart unless-stopped -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Admin12345!' -e 'MSSQL_PID=Developer' -p 127.0.0.1:1433:1433 -p 10.8.0.1:1433:1433    -v /opt/database/:/var/opt/mssql -d 'microsoft/mssql-server-linux:2017-latest'

OPENVPN可以參考這篇如何在Centos 7安裝openVPN

(easy-rsa因為版本不一樣,在設定上可能不太一樣了)

OPENVPN Client

SQL Client

Apache使用多個docker php-fpm

原本centos linux安裝Apache及php5.4(php-fpm),最近一些framework只支援php7.2,想到要昇級或共存就覺得會有一場災難,想說是否可以使用docker php7.2-fpm來直接使用,減少系統的昇級或更換過程的一些問題。

可以直接略過1,2二步奏直接pull build好的images

docker pull catyku/php-fpm7.2

https://hub.docker.com/r/catyku/php-fpm7.2/

1.首先建立自己需要的php-fpm Dockerfile

FROM php:7.2-fpm
MAINTAINER yku "myemail@mail.com"

#  設定時區
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

#  更新系統及增加php外掛mysqli pdo_mysql等
RUN apt-get update && apt-get install -y \
        git \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd \
        && docker-php-ext-install zip \
        && docker-php-ext-install pdo_mysql \
        && docker-php-ext-install opcache \
        && docker-php-ext-install mysqli \
        && rm -r /var/lib/apt/lists

2.編譯Dockerfile

docker build -t catyku:php-fpm7.2 .

3.然後啟動docker

docker run -d --name php-fpm7.2 -p 127.0.0.1:9001:9000 -v /var/www/:/var/www catyku:php-fpm7.2

因為9000 port已經給原本系統的php5.4-fpm使用了,只好把它調開,並指定www工作資料夾給php7.2-fpm

(建議可以細調php-fpm的設定檔,或是把設定檔也-v出來)

Read More

自動壓縮備份並rsync至遠端

備份的shell,記得chmod +x 備份.sh

#刪除超過五天的主機備份檔
rm -f /opt/backup/www$(date --date=' 5 days ago' '+%Y-%m-%d').tar.gz;
#docker 匯出mysql備份資料
docker exec CONTAINER /usr/bin/mysqldump -u root --password=123456 --all-databases > /opt/backup/mysql/backup.sql;
#非用docker可以用
#mysqldump -u root --password=123456 --all-databases > /opt/backup/mysql/backup.sql;
#docker cp /etc/httpd/conf/httpd.conf /home/user/backup/httpd/;
#cp /etc/httpd/conf.d/* /home/user/backup/httpd/;
#打包及壓縮www日期.tar.gx
tar zcvf /opt/backup/www$(date +%Y-%m-%d).tar.gz /var/www/html /opt/backup/mysql  ;
//rsync至遠端主機
usr/bin/rsync -rvlHpogDtS --password-file=/etc/rsyncd.secrets /opt/backup webbackup@remoteip::NetBackup

設排程,定時執行內容,定時早上四點執行

crontab -e 
* * 4 * * backup.sh > backup.txt #backup wb file 

docker安裝apache、mariadb、php

在docker安裝Apache php及Mariadb服務,可以快速部署安裝於多種OS,不管是在開發或是正式上線環境都可以一樣。

images使用是官方的apache php 7.2版本;mariadb:latest,其中apache-php部份還需要另外安裝mysqli擴展套件。

《Docker —— 從入門到實踐-》正體中文版

指令如下

資料庫部份

sudo docker search mariadb
sudo docker pull mariadb
sudo docker run -d --name mariadb -e MYSQL_ROOT_PASSWORD=youpass --restart unless-stopped mariadb

參數--restart unless-stopped可以讓os在重開機時自動啟動docker container,不過自已下指令停止時不會自動再啟動

Read More

使用crontab取代wordpress的wp-cron

在檢查apache的log檔時,發現wp-cron常常執行時間很長也常Timeout。當流量不大或是系統資源夠大時,其實並不會發現有什麼問題,可是如果在資源有限及流量增加時,就會因為執行時間太長增加wordpress回傳的反應時間,如果有系統的控制權,建議可以使用排程crontab來取代。

1.首先Disable wp-cron

修改wordpress目錄下的wp-config.php

define('DISABLE_WP_CRON', true);

Read More