ラベル PerconaServer の投稿を表示しています。 すべての投稿を表示
ラベル PerconaServer の投稿を表示しています。 すべての投稿を表示

2020年4月29日水曜日

Ubuntu 20.04にPercona Server 8.0をインストールする

Percona ServerはMySQL互換のデータベースで、信頼性向上や管理強化が行われています。

1. Percona Serverのインストール
sudo apt-get update

sudo apt-get -y install debsums libmecab2

wget https://www.percona.com/downloads/Percona-Server-LATEST/Percona-Server-8.0.19-10/binary/debian/focal/x86_64/percona-server-common_8.0.19-10-1.focal_amd64.deb
sudo dpkg -i percona-server-common_8.0.19-10-1.focal_amd64.deb

wget https://www.percona.com/downloads/Percona-Server-LATEST/Percona-Server-8.0.19-10/binary/debian/focal/x86_64/percona-server-client_8.0.19-10-1.focal_amd64.deb
sudo dpkg -i percona-server-client_8.0.19-10-1.focal_amd64.deb

wget https://www.percona.com/downloads/Percona-Server-LATEST/Percona-Server-8.0.19-10/binary/debian/focal/x86_64/percona-server-server_8.0.19-10-1.focal_amd64.deb
sudo dpkg -i percona-server-server_8.0.19-10-1.focal_amd64.deb

データディレクトリの確認:「Ok」を選択します。


rootパスワードを入力します


rootパスワードを再入力します


パスワード認証方式の確認:「Ok」を選択します。


パスワード認証方式を選択します。


2. (Optional)必要に応じて以下のようにデータベースやユーザを作成します。
mysql -uroot -proot -e "CREATE DATABASE test DEFAULT CHARACTER SET utf8mb4;"

mysql -uroot -proot -e "CREATE USER test@localhost IDENTIFIED BY 'test';"

mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON test.* TO 'test'@'localhost';"

mysql -uroot -proot -e "FLUSH PRIVILEGES;"

mysql -utest -ptest -e "select version();"

2020年4月16日木曜日

Debian 10(Buster)にPercona Server 8.0をインストールする

Percona ServerはMySQL互換のデータベースで、信頼性向上や管理強化が行われています。

1. Percona Serverのインストール
sudo apt-get -y install debsums libaio1 libcurl4 libmecab2 psmisc

wget https://www.percona.com/downloads/Percona-Server-LATEST/Percona-Server-8.0.19-10/binary/debian/buster/x86_64/percona-server-common_8.0.19-10-1.buster_amd64.deb

sudo dpkg -i percona-server-common_8.0.19-10-1.buster_amd64.deb

wget https://www.percona.com/downloads/Percona-Server-LATEST/Percona-Server-8.0.19-10/binary/debian/buster/x86_64/percona-server-client_8.0.19-10-1.buster_amd64.deb

sudo dpkg -i percona-server-client_8.0.19-10-1.buster_amd64.deb

wget https://www.percona.com/downloads/Percona-Server-LATEST/Percona-Server-8.0.19-10/binary/debian/buster/x86_64/percona-server-server_8.0.19-10-1.buster_amd64.deb

sudo dpkg -i percona-server-server_8.0.19-10-1.buster_amd64.deb

データディレクトリの確認:「了解」を選択します。


rootパスワードを入力します


rootパスワードを再入力します


パスワード認証方式の確認:「了解」を選択します。


パスワード認証方式を選択します。


2. (Optional)必要に応じて以下のようにデータベースやユーザを作成します。
mysql -uroot -proot -e "CREATE DATABASE test DEFAULT CHARACTER SET utf8mb4;"

mysql -uroot -proot -e "CREATE USER test@localhost IDENTIFIED BY 'test';"

mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON test.* TO 'test'@'localhost';"

mysql -uroot -proot -e "FLUSH PRIVILEGES;"

mysql -utest -ptest -e "select version();"

2018年8月24日金曜日

DockerでDrupal8.5.5とPercona Server5.7のコンテナ(Alpine3.8)を構築する

DrupalはPHP製のCMSです。

〇Drupalの画面


〇構築手順
1. Drupalイメージの作成(Dockerfileがあるフォルダで実行)
docker build -t mydrupal .

Dockerfile
FROM alpine:3.8
WORKDIR /
RUN  apk update \
  && apk add --no-cache apache2 php7-apache2 php7-mysqli php7-mbstring php7-session php7-curl php7-xml php7-dom php7-json php7-ctype php7-tokenizer php7-gd php7-pdo php7-pdo_mysql php7-simplexml php7-opcache openssl openrc \
  && rm -rf /var/cache/apk/* \
  && wget https://ftp.drupal.org/files/projects/drupal-8.5.5.tar.gz \
  && tar xvfz drupal-8.5.5.tar.gz \
  && rm -f drupal-8.5.5.tar.gz \
  && mkdir /opt \
  && mv drupal-8.5.5 /opt/drupal \
  && chown -R apache:apache /opt/drupal \
  && mkdir -p /run/apache2 \
  && echo $'\n\
  Options Indexes FollowSymLinks \n\
  AllowOverride All \n\
  Require all granted \n\
  RewriteEngine on \n\
  RewriteBase / \n\
  RewriteCond %{REQUEST_FILENAME} !-f \n\
  RewriteCond %{REQUEST_FILENAME} !-d \n\
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] \n\
' >> /etc/apache2/httpd.conf \
  && sed -i -e 's|#LoadModule rewrite_module modules/mod_rewrite.so|LoadModule rewrite_module modules/mod_rewrite.so|' /etc/apache2/httpd.conf \
  && sed -i -e 's|DocumentRoot "/var/www/localhost/htdocs"|DocumentRoot "/opt/drupal"|' /etc/apache2/httpd.conf
EXPOSE 80
VOLUME /opt/drupal
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]

2. DrupalとMySQL5.7コンテナの構築・実行(docker-compose.ymlがあるフォルダで実行)
docker-compose up -d
docker-compose.yml
version: "2"
services:
  drupal:
    image: mydrupal
    container_name: "drupal"
    volumes:
      - "drupal-data:/opt/drupal"
    ports:
      - "80:80"
    depends_on:
      - drupaldb
  drupaldb:
    image: percona:5.7
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: "drupal-db"
    volumes:
      - "drupaldb-data:/var/lib/mysql"
    ports:
      - "3306:3306"
    environment:
        MYSQL_DATABASE: drupal
        MYSQL_ROOT_PASSWORD: drupal
volumes:
  drupal-data:
    driver: local
  drupaldb-data:
    driver: local

2.ブラウザからhttp://<Dockerホスト>にアクセスします。「Save and continue」ボタンをクリックします。


3.「標準」を選択して「保存して次へ」をクリックします


4.以下を入力して「保存して次へ」ボタンをクリックします
データベース名: drupal
ユーザ名: root
パスワード: drupal
ホスト: drupaldb


5.サイト名・管理者の情報を入力します


6.インストール完了画面



○関連情報
・Drupalに関する他の記事はこちらを参照してください。

2018年7月30日月曜日

DockerでJoomla3.8.8、Percona Serverがインストールされたコンテナ(Alpine 3.7)を構築する

JoomlaはPHP製のCMSです。

〇Joomlaの管理者画面


○構築方法
以下の手順で、Joomla3.8.8とPercona Serverのコンテナを構築・実行します。

1. Joomlaイメージの作成(Dockerfileがあるフォルダで実行)
docker build -t joomla .

Dockerfile
FROM alpine:3.7
WORKDIR /
RUN  apk update \
  && apk add --no-cache apache2 php7-apache2 php7-mysqli php7-pdo php7-session php7-mbstring php7-mcrypt php7-curl php7-json php7-xml php7-simplexml php7-zip php7-gd openssl openrc unzip \
  && rm -rf /var/cache/apk/* \
  && wget -O joomla.zip https://downloads.joomla.org/cms/joomla3/3-8-8/Joomla_3-8-8-Stable-Full_Package.zip?format=zip \
  && mkdir -p /opt/joomla \
  && unzip joomla.zip -d /opt/joomla \
  && rm -f joomla.zip \
  && chown -R apache:apache /opt/joomla \
  && mkdir -p /run/apache2 \
  && ln -s /opt/joomla /var/www/localhost/htdocs
EXPOSE 80
VOLUME /opt/joomla
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]

2. JoomlaとPercona Serverコンテナの構築・実行(docker-compose.ymlがあるフォルダで実行)
docker-compose up -d

docker-compose.yml
version: "2"
services:
  joomla:
    image: joomla
    container_name: "joomla"
    volumes:
      - "joomla-data:/opt/joomla"
    ports:
      - "80:80"
    depends_on:
      - db
  db:
    image: percona:5.7
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: "joomla-db"
    volumes:
      - "db-data:/var/lib/mysql"
      - "db-log:/var/log/mysql"
    environment:
        MYSQL_DATABASE: joomla
        MYSQL_ROOT_PASSWORD: joomla
volumes:
  db-data:
    driver: local
  db-log:
    driver: local
  joomla-data:
    driver: local

2.ブラウザでhttp://<Dockerホスト名またはIP>/joomla/にアクセスして、サイト設定画面のサイト名称や管理者情報を入力します。


3.データベース設定画面で接続情報を入力します。
データベース: MySQLi
ホスト名: db
ユーザ名: root
パスワード: joomla
データベース: joomla


4. Webホスティングアカウントの所有権の確認メッセージで、以下のコマンドを実行します。
docker ps
docker exec <docker psで表示されたjoomlaコンテナのID> rm -rf /opt/joomla/installation/<画面に表示されたファイル名>


5. 概要設定画面でインストールボタンをクリックします。


6. インストール完了画面で「installationディレクトリを削除」ボタンをクリックします。


○関連情報
・Joomlaに関する他の記事はこちらを参照してください。

2018年7月27日金曜日

DockerでHackMD、Percona Server5.7がインストールされたコンテナを構築する

HackMDでMarkdown文書をリアルタイムにほかのユーザと共同編集する事ができます。

〇HackMDの画面


〇構築方法
1.HackMDとPercona Server5.7コンテナの構築・実行(docker-compose.ymlがあるフォルダで実行)
docker-compose up -d

docker-compose.yml
version: '2'
services:
  hackmd:
    image: hackmdio/hackmd:1.1.1-ce
    environment:
      - HMD_DB_URL=mysql://root:hackmd@db:3306/hackmd
    ports:
      - "3000:3000"
    depends_on:
      - db
  db:
    image: percona:5.7
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: "mysql-db"
    volumes:
      - "db-data:/var/lib/mysql"
      - "db-log:/var/log/mysql"
    ports:
      - "3306:3306"
    environment:
      MYSQL_DATABASE: hackmd
      MYSQL_ROOT_PASSWORD: hackmd
volumes:
  db-data:
    driver: local
  db-log:
    driver: local


○関連情報
・HackMDに関する他の記事はこちらを参照してください。

2018年7月24日火曜日

PortainerでJupyter LabとPercona Serverのスタックを作成する

Jupyter Notebookでインタラクティブなコンピューティング環境を提供する事ができます。Portainerで簡単にwebブラウザからJupyter LabとPercona Serverのスタックを作成する事ができます。

○Jupyter Labの画面


〇構築方法
1.Portainer画面横のImagesをクリックして、Image list画面からBuild a new imageボタンをクリック


2.Build image画面nameフィールドにmyjupyterを入力

3.Web editorのテキストエリアに以下を貼り付け
FROM jupyter/scipy-notebook
ENV TZ=Asia/Tokyo
USER root
RUN apt-get update \
  && apt-get -y install libmysqlclient-dev \
  && pip install mysqlclient \
  && apt-get clean
USER $NB_UID



貼り付け後、build the image ボタンをクリックします。

4.画面横のStacksをクリック後、Stacks list画面でAdd a stackボタンをクリックします


5.Create stack画面で、Nameフィールドにjupyterlab-percona-stackを入力し、Web editorに以下を張り付ける
version: "3"
services:
  myjupyter:
    image: myjupyter
    container_name: "myjupyter"
    volumes:
      - "myjupyter-data:/home/jovyan/work"
    ports:
      - "8888:8888"
    environment:
      JUPYTER_TOKEN: jupyter
      JUPYTER_ENABLE_LAB: 1
    depends_on:
      - jupyterdb
  jupyterdb:
    image: percona:5.7
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: "jupyterlab-db"
    volumes:
      - "jupyterdb-data:/var/lib/mysql"
      - "jupyterdb-log:/var/log/mysql"
    ports:
      - "3306:3306"
    environment:
        MYSQL_DATABASE: test
        MYSQL_ROOT_PASSWORD: test
volumes:
  jupyterdb-data:
    driver: local
  jupyterdb-log:
    driver: local
  myjupyter-data:
    driver: local



貼り付け後、deploy stackボタンをクリックします。

6.ブラウザから以下のURLにアクセス
http://<Dockerホスト名またはIP>:8888/?token=jupyter

〇動作検証用コード
import MySQLdb

con = MySQLdb.connect(
  user='root',
  passwd='test',
  host='jupyterdb',
  db='test')

try:
  cur= con.cursor()
  cur.execute("create table messages (message_id integer, message varchar(100))")
  cur.execute("insert into messages values (100, 'hello world!')")
  sql = "select message_id, message from messages"
  cur.execute(sql)

  for row in cur.fetchall():
    print(row)

except MySQLdb.Error as er:
    print('MySQLdb.Error:', er)
cur.close
con.close

○関連情報
・Portainerに関する他の記事はこちらを参照してください。

2018年7月19日木曜日

DockerでNextcloud13.04、Percona Server5.7がインストールされたコンテナ(Alpine 3.7)を構築する

NextcloudはDropboxのようなファイルを共有できるサーバーアプリケーションです。

○Nextcloudの画面


○構築方法
以下の手順で、NextcloudとPercona Serverのコンテナを構築・実行します。

1. Nextcloudイメージの作成(Dockerfileがあるフォルダで実行)
docker build -t mynextcloud .

Dockerfile
FROM alpine:3.7
WORKDIR /
RUN  apk update \
  && apk add --no-cache apache2 php7-apache2 php7-mysqli php7-pdo php7-pdo_mysql php7-intl php7-mcrypt php7-mbstring php7-session php7-curl php7-json php7-xml php7-zip php7-tokenizer php7-ctype php7-gd php7-xmlwriter php7-xmlreader php7-dom php7-iconv php7-simplexml php7-openssl openssl openrc unzip \
  && rm -rf /var/cache/apk/* \
  && wget https://download.nextcloud.com/server/releases/nextcloud-13.0.4.zip \
  && unzip nextcloud-13.0.4.zip \
  && rm -f nextcloud-13.0.4.zip \
  && mkdir -p /opt \
  && mv nextcloud /opt/nextcloud \
  && mkdir -p /opt/nextcloud/data \
  && chown -R apache:apache /opt/nextcloud \
  && ln -s  /opt/nextcloud /var/www/localhost/htdocs \
  && mkdir -p /run/apache2
EXPOSE 80
VOLUME /opt/nextcloud
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]

2. NextcloudとPercona Serverコンテナの構築・実行(docker-compose.ymlがあるフォルダで実行)
docker-compose up -d

docker-compose.yml
version: "2"
services:
  nextcloud:
    image: mynextcloud
    container_name: "nextcloud"
    volumes:
      - "nextcloud-data:/opt/nextcloud"
    ports:
      - "80:80"
    depends_on:
      - db
  db:
    image: percona:5.7
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: "db"
    volumes:
      - "db-data:/var/lib/mysql"
      - "db-log:/var/log/mysql"
    ports:
      - "3306:3306"
    environment:
      MYSQL_DATABASE: nextcloud
      MYSQL_ROOT_PASSWORD: nextcloud
volumes:
  db-data:
    driver: local
  db-log:
    driver: local
  nextcloud-data:
    driver: local

3. ブラウザからhttp://<Dockerホスト名またはIP>/nextcloud/にアクセス
インストーラー画面で以下の項目を入力します
データベースのユーザ名: root
データベースのパスワード: nextcloud
データベース名: nextcloud
データベースのホスト名: db:3306
他の項目は好みに合わせて入力


○関連情報
・Nextcloudに関する他の記事はこちらを参照してください。

2018年7月13日金曜日

DockerでRedash4.0.1, Percona Server5.7, PostgreSQL10.4, Redis, Adminer4.6のコンテナを構築する

Redashでデータの可視化環境を提供する事ができます。AdminerはPercona Server/PostgreSQLのWebインターフェイスで、開発・管理などに使用できます。

〇Redashの画面


〇Adminerの画面

ブラウザからhttp://<Dockerホスト名またはIP:8080/にアクセスします。

〇構築方法
1.Redash4.0.1, Percona Server5.7, PostgreSQL10.4, Redis, Adminer4.6のコンテナを以下のコマンドで構築して実行します。
docker-compose run --rm redashserver create_db
docker-compose up -d

docker-compose.yml
version: '2'
services:
  redashserver:
    image: redash/redash:4.0.1.b4038
    command: server
    depends_on:
      - db
      - redis
      - percona
    ports:
      - "5000:5000"
    environment:
      PYTHONUNBUFFERED: 0
      REDASH_LOG_LEVEL: "INFO"
      REDASH_REDIS_URL: "redis://redis:6379/0"
      REDASH_DATABASE_URL: "postgresql://redash:redash@db/redash"
      REDASH_COOKIE_SECRET: "cookiesecret"
      REDASH_DATE_FORMAT: YYYY/MM/DD
  redashworker:
    image: redash/redash:4.0.1.b4038
    command: scheduler
    depends_on:
      - redashserver
    environment:
      PYTHONUNBUFFERED: 0
      REDASH_LOG_LEVEL: "INFO"
      REDASH_REDIS_URL: "redis://redis:6379/0"
      REDASH_DATABASE_URL: "postgresql://redash:redash@db/redash"
      QUEUES: "queries,scheduled_queries,celery"
      WORKERS_COUNT: 2
      REDASH_DATE_FORMAT: YYYY/MM/DD
  redis:
    image: redis:4.0-alpine
    restart: unless-stopped
  db:
    image: postgres:10.4-alpine
    environment:
      POSTGRES_DB: redash
      POSTGRES_USER: redash
      POSTGRES_PASSWORD: redash
    ports:
      - "5432:5432"
    container_name: postgres
    volumes:
      - "db-data:/var/lib/postgresql/data"
  percona:
    image: percona:5.7
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: "percona-db"
    volumes:
      - "percona-data:/var/lib/mysql"
    ports:
      - "3306:3306"
    environment:
        MYSQL_DATABASE: redash
        MYSQL_ROOT_PASSWORD: redash
  adminer:
    image: adminer:4.6
    container_name: "adminer"
    ports:
      - "8080:8080"
    depends_on:
      - db
      - percona
volumes:
  db-data:
    driver: local
  percona-data:
    driver: local

2.初期設定
ブラウザからhttp://<Dockerホスト名またはIP:5000/にアクセスして、管理者情報を入力します。


〇Redashのデータソース設定画面
Percona Serverをデータソースとして使用したい場合は、Datasourcesで以下のように情報を入力します。


○関連情報
・Adminerに関する他の記事はこちらを参照してください。

・Redashに関する他の記事はこちらを参照してください。

2018年6月30日土曜日

VagrantでMySQLTunerとPercona Serverをインストールした仮想マシン(Debian9.4)を構築する

MySQLTunerはMySQLをチューニングするためのperlスクリプトです。

〇MySQLTunerの推奨設定出力例


〇構築方法
以下のVagrantfileを使用してMySQLTunerとPercona Serverをインストールした仮想マシン(Debian9.4)を構築する事ができます。
MySQLのユーザ/パスワードはroot/rootです。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.4"
  config.vm.hostname = "db94mysqltunerpercona"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db94mysqltunerpercona"
     vbox.cpus = 2
     vbox.memory = 1024
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.101", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.101", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
apt-get -y install task-japanese
sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade


# install percona server
export DEBIAN_FRONTEND=noninteractive
echo "percona-server-server-5.7 percona-server-server/root_password password root" | sudo debconf-set-selections
echo "percona-server-server-5.7 percona-server-server/root_password_again password root" | sudo debconf-set-selections
wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb
dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb
apt-get update
apt-get -y install percona-server-server-5.7
sudo mysql -uroot -e "UPDATE user SET plugin='mysql_native_password', authentication_string = password('root') WHERE User='root'; flush privileges;" mysql

# install MySQLTuner
wget http://mysqltuner.pl/ -O mysqltuner.pl
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/basic_passwords.txt -O basic_passwords.txt
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/vulnerabilities.csv -O vulnerabilities.csv
echo 'execute : perl mysqltuner.pl'

SHELL
end


○関連情報
・MySQLTunerに関する他の記事はこちらを参照してください。

VagrantでJupyter LabとPercona Serverをインストールした仮想マシン(CentOS7.4)を構築する

Jupyter Labでインタラクティブなコンピューティング環境を提供する事ができます。

○Jupyter Labの画面


構築方法

以下のVagrantfileで、Jupyter LabとPercona Serverをインストールした仮想マシン(CentOS7.4)を構築できます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74jupyterlabpercona"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74jupyterlabpercona"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.105", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.105", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
localectl set-locale LANG=ja_JP.UTF-8

# install Percona Server
yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
yum -y install Percona-Server-server-57
service mysql start

export MYSQL_ROOTPWD='Root123#'
export MYSQL_PWD=`cat /var/log/mysqld.log | awk '/temporary password/ {print $NF}'`
mysql -uroot -p$MYSQL_PWD --connect-expired-password -e "SET PASSWORD = PASSWORD('$MYSQL_ROOTPWD');"
mysql -uroot -p$MYSQL_ROOTPWD --connect-expired-password -e "UNINSTALL PLUGIN validate_password;"
mysql -uroot -p$MYSQL_ROOTPWD --connect-expired-password -e "SET PASSWORD = PASSWORD('root'); FLUSH PRIVILEGES;"
mysql -uroot -e "SET PASSWORD = PASSWORD('root'); FLUSH PRIVILEGES;"
mysql -uroot -proot -e "CREATE DATABASE test DEFAULT CHARACTER SET utf8mb4;"
mysql -uroot -proot -e "CREATE USER test@localhost IDENTIFIED BY 'test';"
mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON test.* TO 'test'@'localhost';"
mysql -uroot -proot -e "FLUSH PRIVILEGES;"
mysql -utest -ptest test -e "create table messages (message_id integer not null, message varchar(100));"
mysql -utest -ptest test -e "insert into messages value (1, 'hello world.');"
mysql -utest -ptest test -e "insert into messages value (2, 'test message.');"

# install anaconda
wget https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86_64.sh
chmod +x Anaconda3-5.1.0-Linux-x86_64.sh
./Anaconda3-5.1.0-Linux-x86_64.sh -b -p /opt/anaconda
source /opt/anaconda/bin/activate
pip install --upgrade pip
pip install jupyterlab

# install mysqlclient
yum -y install epel-release python-devel gcc-c++ openldap-devel openssl-devel mysql-devel
pip install mysqlclient


useradd py
mkdir -p /home/py
chown -R py:py /home/py
sudo -u py bash -c "mkdir /home/py/.jupyter"
sudo -u py bash -c "cat << EOF > /home/py/.jupyter/jupyter_notebook_config.py
conf = get_config()
conf.NotebookApp.ip = '*'
conf.NotebookApp.open_browser = False
conf.NotebookApp.port = 8080
conf.NotebookApp.token = 'jupyter'
EOF"

cat << EOF > /etc/systemd/system/jupyter.service
[Unit]
Description=Jupyter notebook
[Service]
Type=simple
ExecStartPre=source /opt/anaconda/bin/activate
ExecStart=/opt/anaconda/bin/jupyter lab
User=py
Group=py
WorkingDirectory=/home/py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable jupyter
sudo systemctl start jupyter

echo 'access -> http://192.168.55.105:8080/?token=jupyter'
SHELL
end

○動作確認用コード
import MySQLdb

con = MySQLdb.connect(
  user='test',
  passwd='test',
  host='localhost',
  db='test')

try:
  cur= con.cursor()
  sql = "select message_id, message from messages"
  cur.execute(sql)

  for row in cur.fetchall():
    print(row)

except MySQLdb.Error as er:
    print('MySQLdb.Error:', er)
cur.close
con.close

関連情報

・Jupyterに関する他の情報はこちらを参照してください。

2018年6月29日金曜日

VagrantでMySQLTunerとPercona Serverをインストールした仮想マシン(CentOS7.4)を構築する

MySQLTunerはMySQLをチューニングするためのperlスクリプトです。

〇MySQLTunerの推奨設定出力例


〇構築方法
以下のVagrantfileを使用してMySQLTunerとPercona Serverをインストールした仮想マシン(CentOS7.4)を構築する事ができます。
MySQLのユーザ/パスワードはroot/rootです。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74mysqltunerpercona"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74mysqltunerpercona"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.104", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.104", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
localectl set-locale LANG=ja_JP.UTF-8

# install Percona Server
yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
yum -y install Percona-Server-server-57
service mysql start

export MYSQL_ROOTPWD='Root123#'
export MYSQL_PWD=`cat /var/log/mysqld.log | awk '/temporary password/ {print $NF}'`
mysql -uroot -p$MYSQL_PWD --connect-expired-password -e "SET PASSWORD = PASSWORD('$MYSQL_ROOTPWD');"
mysql -uroot -p$MYSQL_ROOTPWD --connect-expired-password -e "UNINSTALL PLUGIN validate_password;"
mysql -uroot -p$MYSQL_ROOTPWD --connect-expired-password -e "SET PASSWORD = PASSWORD('root'); FLUSH PRIVILEGES;"

# install MySQLTuner
yum -y install perl-Data-Dumper
wget http://mysqltuner.pl/ -O mysqltuner.pl
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/basic_passwords.txt -O basic_passwords.txt
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/vulnerabilities.csv -O vulnerabilities.csv
echo 'execute : perl mysqltuner.pl'

SHELL
end


○関連情報
・MySQLTunerに関する他の記事はこちらを参照してください。

2018年6月28日木曜日

DockerでAdminerとPercona Serverのコンテナーを構築する

Adminerでブラウザからデータベースを操作する事ができます。

○Adminerの画面

ユーザ:root、パスワード:root、データベース:mysqlを指定します。

○構築方法
以下のdocker-compose.ymlを使用して、AdminerとPerconaのコンテナーを構築する事ができます。
docker-compose up -d

docker-compose.yml
version: "2"
services:
  adminer:
    image: adminer:4.6
    container_name: "adminer"
    ports:
      - "8080:8080"
    depends_on:
      - db
  db:
    image: percona:5.7
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: "db"
    volumes:
      - "db-data:/var/lib/mysql"
      - "db-log:/var/log/mysql"
    ports:
      - "3306:3306"
    environment:
        MYSQL_DATABASE: test
        MYSQL_ROOT_PASSWORD: root
volumes:
  db-data:
    driver: local
  db-log:
    driver: local


〇関連情報
・Adminerに関する他の情報はこちらを参照してください。

・Adminerのプロジェクトwebサイト
https://www.adminer.org/

2018年6月26日火曜日

DockerでBookStack、Percona Serverがインストールされたコンテナ(Alpine 3.7)を構築する

BookStackはブックやページで管理できるPHP製のWikiです。

○BookStackの画面

ブラウザからhttp://<dokcerホスト>にアクセスします。デフォルトユーザ/パスワードはadmin@admin.com/passwordです。

○構築方法
以下の手順で、BookStack、Percona Serverのコンテナを構築・実行します。

1. BookStackイメージの作成(Dockerfileがあるフォルダで実行)
docker build -t bookstack .

Dockerfile
FROM alpine:3.7
WORKDIR /
RUN  apk update \
  && apk add --no-cache apache2 php7 php7-phar php7-simplexml php7-fileinfo php7-xmlwriter php7-tokenizer php7-ctype php7-apache2 php7-mysqli php7-mbstring php7-session php7-xml php7-dom php7-gd php7-zip php7-zip php7-json php7-pdo php7-pdo_mysql php7-tidy openssl openrc unzip git curl mysql-client \
  && rm -rf /var/cache/apk/* \
  && curl -s https://getcomposer.org/installer | php \
  && mv composer.phar /usr/local/bin/composer
WORKDIR /opt
RUN git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
WORKDIR /opt/BookStack
RUN /usr/local/bin/composer install \
  && mkdir -p /run/apache2 \
  && cp .env.example .env \
  && sed -i -e 's/DB_HOST=localhost/DB_HOST=db/' /opt/BookStack/.env \
  && sed -i -e 's/DB_DATABASE=database_database/DB_DATABASE=bookstack/' /opt/BookStack/.env \
  && sed -i -e 's/DB_USERNAME=database_username/DB_USERNAME=root/' /opt/BookStack/.env \
  && sed -i -e 's/DB_PASSWORD=database_user_password/DB_PASSWORD=bookstack/' /opt/BookStack/.env \
  && chown -R apache:apache /opt/BookStack \
  && sed -i -e 's#DocumentRoot "/var/www/localhost/htdocs"#DocumentRoot "/opt/BookStack/public"#' /etc/apache2/httpd.conf \
  && echo $'<Directory /opt/BookStack/public>\n\
  AllowOverride All\n\
  Require all granted\n\
</Directory>' >> /etc/apache2/httpd.conf \
  && sed -i -e 's|#LoadModule rewrite_module modules/mod_rewrite.so|LoadModule rewrite_module modules/mod_rewrite.so|' /etc/apache2/httpd.conf \
  && echo $'#!/bin/sh \n\
if [ -f /opt/BookStack/cinit ]; then \n\
  echo "ok." \n\
else \n\
  php artisan key:generate --force  \n\
  until mysqladmin ping -h db -P 3306 --silent; do echo -n "." && sleep 1; done \n\
  php artisan migrate --force  \n\
  touch /opt/BookStack/cinit \n\
fi \n\
/usr/sbin/httpd -D FOREGROUND' >> /opt/BookStack/init.sh \
  && chmod +x /opt/BookStack/init.sh
EXPOSE 80
VOLUME /opt/BookStack
CMD ["/opt/BookStack/init.sh"]

2. BookStackとPercona Serverコンテナの構築・実行(docker-compose.ymlがあるフォルダで実行)
docker-compose up -d

docker-compose.yml
version: "2"
services:
  db:
    image: percona:5.7
    container_name: db
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_DATABASE: bookstack
      MYSQL_ROOT_PASSWORD: bookstack
    ports:
      - "3306:3306"
    volumes:
      - db-data:/var/lib/mysql
      - db-log:/var/log/mysql
  bookstack:
    image: bookstack
    container_name: "bookstack"
    volumes:
      - "bookstack-data:/opt/BookStack"
    ports:
      - "80:80"
    depends_on:
      - db
volumes:
  db-data:
    driver: local
  db-log:
    driver: local
  bookstack-data:
    driver: local


○関連情報
・BookStackに関する他の記事はこちらを参照してください。

2018年6月22日金曜日

VagrantでBookStackとPercona Serverをインストールした仮想マシン(CentOS7.4)を構築する

BookStackはブック・ページといった単位で管理できるWikiソフトウェアです。

〇BookStackの画面

仮想マシン構築後、ブラウザからhttp://192.168.1.103/にアクセスします。デフォルトユーザ/パスワードはadmin@admin.com/passwordです。

〇構築方法
以下のVagrantfileを使用してBookStackとPercona Serverをインストールした仮想マシン(CentOS7.4)を構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74bookstackpercona"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74bookstackpercona"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.103", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.103", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
localectl set-locale LANG=ja_JP.UTF-8

# install Percona Server
yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
yum -y install Percona-Server-server-57
service mysql start

export MYSQL_ROOTPWD='Root123#'
export MYSQL_PWD=`cat /var/log/mysqld.log | awk '/temporary password/ {print $NF}'`
mysql -uroot -p$MYSQL_PWD --connect-expired-password -e "SET PASSWORD = PASSWORD('$MYSQL_ROOTPWD');"
mysql -uroot -p$MYSQL_ROOTPWD --connect-expired-password -e "UNINSTALL PLUGIN validate_password;"
mysql -uroot -p$MYSQL_ROOTPWD --connect-expired-password -e "SET PASSWORD = PASSWORD('root'); FLUSH PRIVILEGES;"
mysql -uroot -proot -e "CREATE DATABASE bookstack DEFAULT CHARACTER SET utf8mb4;"
mysql -uroot -proot -e "CREATE USER bookstack@localhost IDENTIFIED BY 'bookstack';"
mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON bookstack.* TO 'bookstack'@'localhost';"
mysql -uroot -proot -e "FLUSH PRIVILEGES;"

# install apache2
yum -y install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum -y install --enablerepo=remi,remi-php72 httpd php php-pdo php-mbstring php-mysql php-gd php-xml php-zip php-json php-zip php-tidy git

# install composer
curl -s https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

# install bookstack
cd /opt
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
cd /opt/BookStack
/usr/local/bin/composer install

cp .env.example .env
#DB_HOST=localhost
sed -i -e 's/DB_DATABASE=database_database/DB_DATABASE=bookstack/' /opt/BookStack/.env
sed -i -e 's/DB_USERNAME=database_username/DB_USERNAME=bookstack/' /opt/BookStack/.env
sed -i -e 's/DB_PASSWORD=database_user_password/DB_PASSWORD=bookstack/' /opt/BookStack/.env
php artisan key:generate --force
php artisan migrate --force


chown -R apache:apache /opt/BookStack
sed -i -e 's#DocumentRoot "/var/www/html"#DocumentRoot "/opt/BookStack/public"#' /etc/httpd/conf/httpd.conf
cat << EOF >> /etc/httpd/conf/httpd.conf
<Directory /opt/BookStack/public>
  AllowOverride All
  Require all granted
</Directory>
EOF

systemctl restart httpd

echo 'access to http://192.168.1.103/'
echo 'default account : admin@admin.com/password'

SHELL
end


○関連情報
・BookStackに関する他の記事はこちらを参照してください。

2018年6月17日日曜日

VagrantでApache Nifi 1.6.0とPercona Serverがインストールされた仮想マシン(Debian Stretch/9.4)を構築する

Apache Nifiは様々なデータを処理・分配するためのソフトウェアです。

〇Apache Nifiの画面


〇構築方法
1.以下のVagrantfileを使用して、Apache Nifi 1.6.0とPercona Serverがインストールされた仮想マシン(Debian Stretch/9.4)を構築します。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.4"
  config.vm.hostname = "db94nifi160percona"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db94nifi160percona"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.104", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.104", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
apt-get -y install task-japanese
sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade

# install percona server
export DEBIAN_FRONTEND=noninteractive
echo "percona-server-server-5.7 percona-server-server/root_password password root" | sudo debconf-set-selections
echo "percona-server-server-5.7 percona-server-server/root_password_again password root" | sudo debconf-set-selections
wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb
dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb
apt-get update
apt-get -y install percona-server-server-5.7
mysql -uroot -proot -e "CREATE DATABASE test DEFAULT CHARACTER SET utf8;"
mysql -uroot -proot -e "CREATE USER test@localhost IDENTIFIED BY 'test';"
mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON test.* TO 'test'@'localhost';"
mysql -uroot -proot -e "FLUSH PRIVILEGES;"


# install jdbc driver for mysql
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java_8.0.11-1debian9_all.deb
dpkg -i mysql-connector-java_8.0.11-1debian9_all.deb

# maximum file handles & maximum forked processes
echo '*  hard  nofile  50000' >> /etc/security/limits.conf
echo '*  soft  nofile  50000' >> /etc/security/limits.conf
echo '*  hard  nproc  10000' >> /etc/security/limits.conf
echo '*  soft  nproc  10000' >> /etc/security/limits.conf

echo '*  soft  nproc  10000' >> /etc/security/limits.d/90-nproc

# install java
apt-get -y install openjdk-8-jdk

# download and install Apache Nifi
wget http://ftp.riken.jp/net/apache/nifi/1.6.0/nifi-1.6.0-bin.tar.gz
tar xvfz nifi-1.6.0-bin.tar.gz
mv nifi-1.6.0 /opt

cat << EOF > /etc/systemd/system/nifi.service
[Unit]
Description=Apache Nifi
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/opt/nifi-1.6.0/bin/nifi.sh start
ExecStop=/opt/nifi-1.6.0/bin/nifi.sh stop
KillMode=none

[Install]
WantedBy=multi-user.target
EOF
systemctl enable nifi.service
systemctl start nifi.service

echo 'access url -> http://192.168.1.104:8080/nifi/'
SHELL
end

2.DBCPConnectionPoolで、以下のようにパラメータを設定してローカルのPercona Serverにアクセスします。
Database Connection -> URL jdbc:mysql://localhost/test
Database Driver Class Name -> com.mysql.jdbc.Driver
Database Driver Location(s) -> /usr/share/java/mysql-connector-java-8.0.11.jar
Database Userr -> test
Password -> test


○関連情報
・Apache NiFiに関する他の記事はこちらを参照してください。

2018年6月16日土曜日

DockerでMetabase、Percona Serverをインストールしたコンテナを構築する

Metabaseはオープンソースのデータ解析・可視化ツールです。

○Metabaseの画面


○構築方法
1.Metabase、Percona Serverをインストールしたコンテナを構築するには、以下のコマンドを実行します。
docker-compose up -d

docker-compose.yml
version: "2"
services:
  pydio:
    image: metabase/metabase
    container_name: "metabase"
    volumes:
      - "metabase-data:/metabase-data"
    environment:
      MB_DB_FILE: /metabase-data/metabase.db
      MB_DB_TYPE: mysql
      MB_DB_DBNAME: metabase
      MB_DB_PORT: 3306
      MB_DB_USER: root
      MB_DB_PASS: metabase
      MB_DB_HOST: db
    ports:
      - "3000:3000"
    depends_on:
      - db
  db:
    image: percona:5.7
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: "metabase-db"
    volumes:
      - "db-data:/var/lib/mysql"
    environment:
      MYSQL_DATABASE: metabase
      MYSQL_ROOT_PASSWORD: metabase
volumes:
  db-data:
    driver: local
  metabase-data:
    driver: local

2.ブラウザからブラウザからhttp://<ホストのIP>:3000/にアクセスします。
ユーザ情報を入力します。


3.データベースのタイプを選択します


4.接続データベース情報を以下のように入力します
Database type: mysql
Host: db
Port: 3306
Database name: metabase
Database username: root
Database password: metabase
これ以降はお好みで選択します。



○関連情報
・Metabaseに関する他の記事はこちらを参照してください。

2018年6月14日木曜日

VagrantでAdminerとPercona Serverがインストールされた仮想マシン(CentOS7.4)を構築する

Adminerでブラウザからデータベースへアクセス出来るようなります。

○Adminerの画面


○構築方法
以下のVagrantfileを使用して、AdminerとPercona Serverをインストールした仮想マシン(CentOS7.4)を構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74adminerpercona"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74adminerpercona"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.105", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.105", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
localectl set-locale LANG=ja_JP.UTF-8

# install Percona Server
yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
yum -y install Percona-Server-server-57
service mysql start

export MYSQL_ROOTPWD='Root123#'
export MYSQL_PWD=`cat /var/log/mysqld.log | awk '/temporary password/ {print $NF}'`
mysql -uroot -p$MYSQL_PWD --connect-expired-password -e "SET PASSWORD = PASSWORD('$MYSQL_ROOTPWD');"
mysql -uroot -p$MYSQL_ROOTPWD --connect-expired-password -e "UNINSTALL PLUGIN validate_password;"
mysql -uroot -p$MYSQL_ROOTPWD --connect-expired-password -e "SET PASSWORD = PASSWORD('root'); FLUSH PRIVILEGES;"

# install apache2 and php
yum -y install --enablerepo=remi,remi-php71 httpd php php-mbstring php-mysql
mkdir -p /opt/adminer
cd /opt/adminer
wget https://github.com/vrana/adminer/releases/download/v4.6.2/adminer-4.6.2.php
mv adminer-4.6.2.php index.php

chown -R apache:apache /opt/adminer
sudo ln -s /opt/adminer/ /var/www/html/
systemctl restart httpd

echo 'access -> http://192.168.1.105/adminer'
SHELL
end


〇関連情報
・Adminerに関する他の情報はこちらを参照してください。

・Adminerのプロジェクトwebサイト
https://www.adminer.org/

2018年6月10日日曜日

VagrantでMantis Bug Tracker2.14とPercona Serverがインストールされた仮想マシン(Debian Stretch/9.4)を構築する

Mantis Bug Trackerは、PHP製のバグ追跡・課題管理サーバです。

〇Mantis Bug Trackerの画面


○構築方法
1.以下のVagrantfileを使用して、Mantis Bug Tracker2.14とPercona Serverがインストールされた仮想マシン(Debian Stretch/9.4)を構築します。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.4"
  config.vm.hostname = "db94mantisbtpercona"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db94mantisbtpercona"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.105", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.105", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
apt-get -y install task-japanese
sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade


# install percona server
export DEBIAN_FRONTEND=noninteractive
echo "percona-server-server-5.7 percona-server-server/root_password password root" | sudo debconf-set-selections
echo "percona-server-server-5.7 percona-server-server/root_password_again password root" | sudo debconf-set-selections
wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb
dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb
apt-get update
apt-get -y install percona-server-server-5.7
mysql -uroot -e "CREATE DATABASE mantisbt DEFAULT CHARACTER SET utf8mb4;"
mysql -uroot -e "CREATE USER mantisbt@localhost IDENTIFIED BY 'mantisbt';"
mysql -uroot -e "GRANT ALL PRIVILEGES ON mantisbt.* TO 'mantisbt'@'localhost';"
mysql -uroot -e "FLUSH PRIVILEGES;"


apt-get -y install apache2 libapache2-mod-php7.0
apt-get -y install php7.0-mysql php7.0-cli php7.0-mbstring


# install mantisbt
wget https://sourceforge.net/projects/mantisbt/files/mantis-stable/2.14.0/mantisbt-2.14.0.tar.gz
tar xvfz mantisbt-2.14.0.tar.gz
mv mantisbt-2.14.0 /opt/mantisbt
chown -R www-data:www-data /opt/mantisbt
ln -s  /opt/mantisbt /var/www/html
mkdir -p /var/mantisbt
chown -R www-data:www-data /var/mantisbt


service apache2 restart
echo 'access http://192.168.55.105/mantisbt/'
echo 'db user:mantisbt  password:mantisbt  db:mantisbt'
echo 'default user: administrator  default password: root'

SHELL
end

2.Mantis Bug Trackerの初期設定画面
仮想マシン構築後、ブラウザからhttp://192.168.55.105/mantisbt/にアクセスして初期設定を行います。
Installer Optionsで以下の項目を入力します。
Type of Database: MySQL
Hostname (for Database Server): localhost
Username (for Database): mantisbt
Password (for Database): mantisbt
Database name (for Database): mantisbt



○関連情報
・Mantis Bug Trackerに関する他の記事はこちらを参照してください。

2018年6月9日土曜日

DockerでPiwigo、Percona Serverがインストールされたコンテナのイメージ(Alpine3.7)を作成する

Piwigoで写真や画像を管理することができます。

○Piwigoの画面


○構築方法
以下の手順で、Piwigo、Percona Serverのコンテナを構築・実行します。

1. Piwigoイメージの作成(Dockerfileがあるフォルダで実行)
docker build -t piwigo .

Dockerfile
FROM alpine:3.7
WORKDIR /
RUN  apk update \
  && apk add --no-cache apache2 php7-apache2 php7 php7-mysqli php7-mbstring php7-session php7-curl php7-json php7-xml php7-zip php7-ctype php7-dom php7-simplexml php7-iconv php7-tokenizer php7-exif php7-gd openssl openrc \
  && rm -rf /var/cache/apk/* \
  && wget -O piwigo.zip http://piwigo.org/download/dlcounter.php?code=latest \
  && unzip piwigo.zip \
  && rm -f piwigo.zip \
  && mkdir /opt \
  && mv piwigo /opt/piwigo \
  && chown -R apache:apache /opt/piwigo \
  && ln -s  /opt/piwigo /var/www/localhost/htdocs \
  && mkdir -p /run/apache2 \
  && sed -i -e 's/max_execution_time = 30/max_execution_time = 200/' /etc/php7/php.ini \
  && sed -i -e 's/post_max_size = 8M/post_max_size = 100M/' /etc/php7/php.ini \
  && sed -i -e 's/upload_max_filesize = 2M/upload_max_filesize = 20M/' /etc/php7/php.ini \
  && sed -i -e 's/memory_limit = 128M/memory_limit = 256M/' /etc/php7/php.ini
EXPOSE 80
VOLUME /opt/piwigo
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]

2. PiwigoとPercona Serverコンテナの構築・実行(docker-compose.ymlがあるフォルダで実行)
docker-compose up -d

docker-compose.yml
version: "2"
services:
  piwigo:
    image: piwigo
    container_name: "piwigo"
    volumes:
      - "piwigo-data:/opt/piwigo"
    ports:
      - "80:80"
    depends_on:
      - db
  db:
    image: percona:5.7
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: "piwigo-db"
    volumes:
      - "db-data:/var/lib/mysql"
    ports:
      - "3306:3306"
    environment:
        MYSQL_DATABASE: piwigo
        MYSQL_ROOT_PASSWORD: piwigo
volumes:
  db-data:
    driver: local
  piwigo-data:
    driver: local

3. ブラウザからhttp://<Dockerホスト名またはIP>/piwigo/にアクセスして、以下の項目を入力します。
ホスト:db
ユーザー:root
パスワード:piwigo
データベース名:piwigo
管理者ユーザの設定は任意入力します



○関連情報
・Piwigoに関する他の記事はこちらを参照してください。