ゆう’s blog

のんびり色々、アプリ、Web開発やら日常やら。

MacにVSCode (Visual Studio Code)をインストール

MacVSCode (Visual Studio Code)をインストール際のメモ

VSCode (Visual Studio Code)とは

マイクロソフトが作った人気なコードエディタ。

環境

macOS Mojave

ダウンロード

以下のサイトからダウンロードする。
Stable版で大丈夫。
Insiders版は新機能を一足先に試せるやつ。
共存できる。
code.visualstudio.com

インストール

ダウンロードしたzipファイルを解答して、「Visual Studio Code.app」を「アプリケーション 」フォルダに移動する。

起動

インストールした「Visual Studio Code」をダブルクリックして、起動する。
もちろん「Launchpad」などから選択してもOK。

日本語化

日本語化したい時は、左の四角ボタンのEXTENSIONSで「japanes」と検索し、「Japanese Language Pack for Visual Studio Code」をインストール。
再起動を求められるので、Yesを選ぶと再起動し日本語化が完了。

Docker for MacでPostgreSQL

いまさらDockerをはじめてみます。
本当はがっつり開発環境まるごと構築したいけど、
いきなりは難しそうなので、まずはDBだけでもdocker使います!

構築する環境

PostgreSQL バージョン 11.1

Dockerインストール

公式サイトからDocker for Macをダウンロードしてインストールします。
※初めての場合は、docker hub のアカウント作成が必要

公式サイトからダウンロードします。
docs.docker.com

ダウンロードした「Docker.dmg」でインストールします。
f:id:Hatter-Zuzu:20181231123123p:plain

Dockerを起動すると、以下の画面が表示され流ので、「Next」をクリックします。
f:id:Hatter-Zuzu:20181231123843p:plain

次の画面では、「OK」をクリックします。
端末のパスワードを入力する画面が現れるので、入力します。
f:id:Hatter-Zuzu:20181231123935p:plain

上から画面が伸びてきます。docker hub のアカウントでログインします。
f:id:Hatter-Zuzu:20181231124246p:plain

上のバーに、Dockerアイコンが現れ、クリックでメニューが表示されたら起動完了です。

正しくインストールされているか確認します。

docker --version
Docker version 18.09.0, build 4d60db4

docker-compose --version
docker-compose version 1.23.2, build 1110ad01

docker-machine --version
docker-machine version 0.16.0, build 702c267f

Dockerfileの準備

ディレクトリを作成し、その中に以下のように記述したDockerfileを配置します。
デフォルトではサーバロケールがen_US.utf8になっているため、
ja_JP.utf8になるように、Dockerfileを作成します。

FROM postgres:11.1
RUN localedef -i ja_JP -c -f UTF-8 -A /usr/share/locale/locale.alias ja_JP.UTF-8
ENV LANG ja_JP.utf8

今回は、PostgreSQLのバージョン11.1のイメージを指定しています。
使えるイメージは、Docker Hubと呼ばれる公開リポジトリから確認できます。

PostgreSQLを起動する

Dockerfileをビルドし、起動します。

docker build -t dev-postgres -f Dockerfile .
docker run -it --name=my-db -p 5432:5432 -e POSTGRES_USER=dev -e POSTGRES_PASSWORD=secret -d dev-postgres
オプション 意味
--name my-db コンテナ名
-p 5432:5432 ホストのポート:コンテナのポート
-e POSTGRES_USER スーパユーザ名(省略時は"postgres")
-e POSTGRES_PASSWORD スーパユーザのパスワード(省略時はパスワードなしでログイン可)

確認

起動しているコンテナの一覧はdocker psで確認できます。

docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
d16c5781d3ed        dev-postgres        "docker-entrypoint.s…"   4 minutes ago       Up 4 minutes        5432/tcp            my-db

docker imagesコマンドでイメージの一覧を確認できます。

docker images

接続

以下のコマンドで、DBに接続できます。

docker exec -it my-db psql -U dev

また、posticoなどのツールでも普通に接続できます。
Host: localhost
Port:5432

コンテナの停止

docker stop my-db(コンテナ名)

コンテナの起動

docker start my-db(コンテナ名)

コンテナにログイン

docker exec -it my-db(コンテナ名) bash

コンテナの削除

docker rm -f my-db(コンテナ名)

MacにVagrant+VirtualBox+CentOS7を用いたCakePHP3環境構築

MacVagrant+VirtualBox+CentOS7を用いたCakePHP3の環境構築をするためのメモです。

VirtualBoxをインストール

Vagrantには別途仮想化ソフトウェアが必要です。
そのためまずは、VirtualBoxをインストールします。
VirtualBox以外にもVMwareHyper-Vなどが使えるらしいです。
インストール方法はこちらを参照

Oracle VM VirtualBox

Vagrantをインストール

公式サイトのDownloadsからVagrantdmgを取得し、インストールします。
インストール方法はこちらを参照

Vagrant by HashiCorp

CentOS7を立ち上げる

Vagrantbox.esよりダウンロードします。
※今回はCentOS 7.2 x64 (Minimal, Puppet 4.2.3, Guest Additions 4.3.30)を選択

vagrant box add CentOS7 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box

centos7というディレクトリを作って、そこに環境をつくっていきます。
任意のディレクトリに移動してからディレクトリを作成します。
以降、基本的にこのディレクトリで操作を行います。

mkdir centos7

cd centos7/

init で初期設定を行います。
コマンドライン引数には上記で追加したCentOS7 というboxを指定します。

vagrant init CentOS7

Vagrantfileを編集します。
以下の行を見つけ、コメントアウトをはずします。
PC(ホスト側)と、仮想マシン(ゲスト側)との間でのみ、通信が行えるようになります。

config.vm.network "private_network", ip: "192.168.33.10"

仮想マシンを起動し、接続します。

#起動
vagrant up

#接続
vagrant ssh

各種インストール

Apache

sudo yum update

# apacheのインストール
sudo yum install -y httpd httpd-devel

# 起動
sudo systemctl start httpd.service

# 自動起動設定
sudo systemctl enable httpd.service

# ポート開放
sudo systemctl start firewalld
sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

yum update でエラーが発生した場合は、以下を実行

sudo -i
curl -L https://yum.puppetlabs.com/RPM-GPG-KEY-puppet -o /tmp/RPM-GPG-KEY-puppet
gpg --with-fingerprint "/tmp/RPM-GPG-KEY-puppet"
cp /tmp/RPM-GPG-KEY-puppet /etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs-PC1
yum update

.htaccessを有効にするために、設定ファイルを修正

sudo vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html">
    ~
    # AllowOverrideをAllにする
    AllowOverride All
    ~
</Directory>

また、同設定ファイルのEnableSendfileをoffに設定

EnableSendfile off

Vagrantfileに以下の行を追加

config.vm.synced_folder "./", "/vagrant", owner: 'vagrant', group: 'apache', mount_options: ['dmode=777', 'fmode=666']

vagrant再起動

vagrant reload

シンボリックリンクを貼る

プロジェクトファイルはホスト端末に配置し、好きなエディタしたい。
そのために、ドキュメントルートから共有ディレクトリへシンボリックリンクを貼る。

cd /vagrant
mkdir html

cd /var/www
sudo rm -rf html
sudo ln -s /vagrant/html ./html

PHP

デフォルトのリポジトリからのインストールの場合、php5.4がインストールされてしまいCakePHP3が動作しないのでremiリポジトリからphpをインストールする必要がある。

# epelリポジトリのインストール
sudo yum install -y epel-release

# remiリポジトリのインストール
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

# 確認
ls -l /etc/yum.repos.d/

# PHPのインストール
sudo yum install -y --enablerepo=remi,remi-php72 php php-devel php-mbstring php-pdo php-gd php-intl php-mysqlnd

# 確認
php -v

MySQL

#sudo rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
# 最新はこっち 
# http://dev.mysql.com/downloads/repo/yum/ で確認
sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

sudo yum install -y mysql-community-server

# 起動
sudo systemctl start mysqld.service

# 自動起動
sudo systemctl enable mysqld.service

初期パスワードは開発環境で使うには複雑な物が設定されているので、以下の手順で「root」に変更。

# 初期パスワードを確認
sudo cat /var/log/mysqld.log | grep 'temporary password'
> 2018-05-01T08:24:37.946827Z 1 [Note] A temporary password is generated for root@localhost: hogehoge
# hogehogeがパスワード

# 先程確認したパスワードでログイン
mysql -u root -p

mysql> SET GLOBAL validate_password_length=4; 
mysql> SET GLOBAL validate_password_policy=LOW;
mysql> set password for root@localhost=password('password');

#バージョン8はこっち
myslq> SET GLOBAL validate_password.length=4; 
mysql> SET GLOBAL validate_password.policy=LOW;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

phpmyadminをインストール

sudo yum install -y --enablerepo=remi,remi-php72 phpMyAdmin

ホストOSからアクセス出来るように、設定ファイルを編集

sudo vi /etc/httpd/conf.d/phpMyAdmin.conf

<IfModule mod_authz_core.c>
  # Apache 2.4
  # Require local # この行をコメントアウト
  Require all granted # この行を追加
</IfModule>

apache再起動

sudo systemctl restart httpd

mysql8の場合、/etc/my.cnf に以下を追記

sudo vi /etc/my.cnf

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8

mysqlを再起動して、ユーザー作成

#再起動
systemctl restart mysqld.service

#接続
mysql -u root -p

# ユーザー作成
create user user1@localhost identified with mysql_native_password by 'user1_Password';

<||

* CakePHPのインストール
** Composerのインストール

>||
curl -sS https://getcomposer.org/installer | php

# パスが通っている場所に移動
sudo mv composer.phar /usr/local/bin/composer

CakePHPプロジェクトの作成

cd /vagrant/html

# myappは任意のフォルダ名
composer create-project --prefer-dist cakephp/app myapp

MySQLの設定

config/app.phpのDatasourcesの項目にMySQLの設定を記述

 ~

    'Datasources' => [
        'default' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'localhost',
            'username' => 'root', # 編集
            'password' => 'root', # 編集

            ~

        ],

    ~

参考

http://www.sd-milieu.net/blog/476


以上です。


CentOS7.3 に MySQL5.7 をインストール

CentOS7.3 に MySQL5.7 をインストールする際のメモです。

mariadb が入っていたら消す

rpm -qa | grep maria
mariadb-libs-5.5.50-1.el7_2.x86_64  # 入っているとこのように表示される

# 消す
sudo yum remove mariadb-libs
rm -rf /var/lib/mysql/

MySQL5.7のインストール

# インストール
sudo yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
sudo yum install mysql mysql-devel mysql-server mysql-utilities

# 確認
rpm -qa | grep mysql
mysqld --version

初期化

sudo mysqld --user=mysql --initialize

自動起動にする

sudo systemctl enable mysqld.service

起動確認

sudo systemctl start mysqld.service

パスワード変更

my.cnf の [mysqld]ブロックに skip-grant-tables を追記して、mysqldを再起動する。

sudo vim /etc/my.cnf
sudo systemctl restart mysqld.service

rootパスワードを変更する。

mysql -u root
use mysql;
UPDATE user SET authentication_string=password('任意のパスワード') WHERE user='root';
flush privileges;

exit

my.cnf の [mysqld]ブロックの skip-grant-tables を消して、mysqldを再起動する。

sudo vim /etc/my.cnf
sudo systemctl restart mysqld.service

再度、変更する。

mysql> SET PASSWORD = PASSWORD('任意のパスワード');

my.cnf に追記

[mysqld]ブロックに以下を追記する。

character-set-server = utf8
default_password_lifetime = 0

以上です。


CentOS7でSELinux・ファイアウォールの無効化

SELinuxの無効化

$ sudo setenforce 0

$ sudo sed -i.bak "/SELINUX/s/enforcing/disabled/g" /etc/selinux/config

ファイアウォールの無効化

$ sudo systemctl stop firewalld

$ sudo systemctl disable firewalld


CentOS7にPHP7.2.xをインストールする

CentOS7にPHP7.2.xをインストールしたのでメモ

リポジトリの追加

PHPを標準のリポジトリからではなく、他のところから取得するので、
以下のコマンドを入力し、EPELとREMIのリポジトリを追加します。

$ sudo yum install epel-release
$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

追加されたか確認します。
EPEL, Remi のリポジトリが追加されています。
※remi-php72.repoに注目

$ ls -l /etc/yum.repos.d/
total 60
-rw-r--r--. 1 root root 1664 Aug 30  2017 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Aug 30  2017 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Aug 30  2017 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  630 Aug 30  2017 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Aug 30  2017 CentOS-Sources.repo
-rw-r--r--. 1 root root 3830 Aug 30  2017 CentOS-Vault.repo
-rw-r--r--. 1 root root  314 Aug 30  2017 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 1056 Dec 27  2016 epel-testing.repo
-rw-r--r--. 1 root root  957 Dec 27  2016 epel.repo
-rw-r--r--. 1 root root  456 Mar 21 13:28 remi-php54.repo
-rw-r--r--. 1 root root 1314 Mar 21 13:28 remi-php70.repo
-rw-r--r--. 1 root root 1314 Mar 21 13:28 remi-php71.repo
-rw-r--r--. 1 root root 1314 Mar 21 13:28 remi-php72.repo
-rw-r--r--. 1 root root  750 Mar 21 13:28 remi-safe.repo
-rw-r--r--. 1 root root 2605 Mar 21 13:28 remi.repo

PHP 7.2 のインストール

以下のコマンドを入力し、インストールします。
なお、利用するアプリケーションに合わせて、追加で mbstring などの PHP の拡張をインストールします。

$ sudo yum install --disablerepo=* --enablerepo=epel,remi,remi-php72 php php-mbstring php-mysql php-intl

Requires: /usr/sbin/semanage とエラーが出たら以下のコマンドを実行する

$ yum provides /usr/sbin/semanage

$ sudo yum -y install policycoreutils-python-xx.xx

Requires: libtcl8.5.so()(64bit) とエラーが出たら以下のコマンドを実行する
※他にエラーがあれば同様に解決していく

$ sudo yum whatprovides libtcl8.5.so

$ sudo yum -y install tcl


以上です。