web-technical-blog

web開発に関する技術メモ

apache2.2でSSL通信をさせるように設定した際のメモ

ローカル環境にSSL通信を設定した際のメモ

# ssl通信ができるようにmod_sslをインストール
# yum -y install mod_ssl

# vi /etc/httpd/conf.d/ssl.conf
# ssl通信(443)の設定()
<VirtualHost _default_:443>
DocumentRoot "/var/www/html/webroot"
### 省略 ###
RewriteEngine On
RewriteRule ^/$ /xxx/index.html [R,L]
</VirtualHost>

# --- ssl通信(8080)の設定
<VirtualHost *:8080>
DocumentRoot "/var/www/html/management"
### 省略 ###
RewriteEngine On
RewriteRule ^/$ /xxx.php [R,L]
</VirtualHost>

CentOS6系にPostgreSQL9.4をインストールした際のメモ

久しぶりにPostgreSQLを使用する機会が発生したのでメモ。

CentOS release 6.9 (Final)
PostgreSQL 9.4

# リポジトリの追加
# wget http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-3.noarch.rpm
# yum localinstall pgdg-centos94-9.4-3.noarch.rpm

# インストール
# yum install postgresql94-server.x86_64 postgresql94.x86_64 postgresql94-libs.x86_64

# データベースの初期化
# service postgresql-9.4 initdb
Initializing database:                                     [  OK  ]

# サービス起動
# service postgresql-9.4 start
Starting postgresql-9.4 service:                           [  OK  ]

# パスワード設定
# su - postgres
-bash-4.1$ psql
psql (9.4.12)
Type "help" for help.

postgres=# alter user postgres with password '*****';
ALTER ROLE
postgres=# \q

# postgresql.confの設定
# vi /var/lib/pgsql/8.4/data/postgresql.conf
# --- postgresqlの時刻合わせ
timezone = 'Asia/Tokyo'
# --- 他からのアクセスを許可
listen_addresses = '*'
port = 5432

# pg_hba.confの設定
# vi var/lib/pgsql/9.4/data/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             192.168.56.0/24         trust
# IPv6 local connections:
host    all             all             ::1/128                 ident

ポート5432を開くためにiptablesを編集

#iptablesに追加
-A INPUT -p tcp --dport 5432 -j ACCEPT

iptablesを再起動

# /etc/rc.d/init.d/iptables restart

データベースの作成とテーブル作成とユーザー権限について

--ユーザー作成
CREATE ROLE webrole LOGIN;
CREATE ROLE nobody  LOGIN;

--データベース作成
CREATE DATABASE testdb WITH TEMPLATE = template0 ENCODING = 'UTF8';
ALTER DATABASE testdb OWNER TO webrole;

--テーブル作成
CREATE TABLE t_img_vote
(
  id serial NOT NULL, -- シーケンス
  pen_nm character varying(256), -- ペンネーム
  illust_nm character varying(128), -- 作品名
  email character varying(256), -- メールアドレス
  open_flg boolean NOT NULL DEFAULT false, -- 公開フラグ(0:非公開 1:公開)
  img_nm character varying(256), -- 画像ファイル名
  ip_addr character varying(64), -- IPアドレス
  vote_at timestamp without time zone DEFAULT now(), -- 投稿日時
  created_at timestamp without time zone DEFAULT now(), -- 作成日時
  update_at timestamp without time zone DEFAULT now(), -- 更新日時
  CONSTRAINT t_img_vote_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);

ALTER TABLE t_img_vote
  OWNER TO webrole;
COMMENT ON COLUMN t_img_vote.id IS 'シーケンス';
COMMENT ON COLUMN t_img_vote.pen_nm IS 'ペンネーム';
COMMENT ON COLUMN t_img_vote.illust_nm IS '作品名';
COMMENT ON COLUMN t_img_vote.email IS 'メールアドレス';
COMMENT ON COLUMN t_img_vote.open_flg IS '公開フラグ(0:非公開 1:公開)';
COMMENT ON COLUMN t_img_vote.img_nm IS '画像ファイル名';
COMMENT ON COLUMN t_img_vote.ip_addr IS 'IPアドレス';
COMMENT ON COLUMN t_img_vote.vote_at IS '投稿日時';
COMMENT ON COLUMN t_img_vote.created_at IS '作成日時';
COMMENT ON COLUMN t_img_vote.update_at IS '更新日時';

CREATE INDEX idx1
  ON t_img_vote
  USING btree
  (open_flg);
  
CREATE INDEX idx2
  ON t_img_vote
  USING btree
  (img_nm);

--権限設定
ALTER TABLE t_img_vote OWNER TO webrole;
GRANT ALL ON TABLE t_img_vote TO webrole;
GRANT SELECT,UPDATE ON TABLE t_img_vote_id_seq TO nobody;
GRANT SELECT,INSERT ON TABLE t_img_vote TO nobody;

hacknote.jp
qiita.com
qiita.com
http://rina.jpn.ph/~rance/linux/postgresql/connect.html

CentOS6でIPv6を無効にする

vagrantvmを構築し、postgresの設定を行うとIPv6でアクセスしに行こうとしたのでIPv6を無効にした

# /etc/modprobe.d/にdisable_ipv6.confというファイル設定ファイルを作成する
# ファイル名は任意の名前でOK
# vi /etc/modprobe.d/disable-ipv6.conf
options ipv6 disable=1

# 下記も設定(上記を設定していれば不要みたいだが)
# vi /etc/sysconfig/network
NETWORKING_IPV6=no

# ipv6tablesの停止
# chkconfig ip6tables off

# OS再起動
# reboot

# IPv6が無効になっていることを確認
# ifconfig
※inet6 addr:から始まるIPV6アドレスが表示されていなければ無効になっている

blog.redbox.ne.jp

VagrantFileのテンプレート

デフォルトのものだとコメントが沢山かかれたりしているので省略したものをメモ

Vagrant.configure("2") do |config|
  config.vm.box = "bento/centos-6.8"
  config.vm.hostname = "192.168.33.10"
  config.ssh.insert_key = false
  config.vm.network "private_network", ip: "192.168.33.10"
  config.vm.provider "virtualbox" do |vb|
    vb.name = config.vm.hostname
    vb.memory = "2048"
    vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
    vb.customize ["setextradata", :id, "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled", 0]
    vb.customize ["modifyvm", :id, "--cableconnected1", "on"]
  end
  config.vm.provision "shell", inline: <<-SHELL
    yum update -y
    yum install -y zsh vim tree telnet dstat git tig
  SHELL
end

自己証明書のhttpsで証明書エラーを非表示にするメモ

# --- hostnameを変更する
# vi /etc/sysconfig/network
HOSTNAME=192.168.56.130

# shutdown -r now

# --- httpdとSSLをインストール
# yum install -y httpd mod_ssl

# --- 秘密鍵を作成
# openssl genrsa -out server.key 2048

# --- 証明書(csr)の生成
# openssl req -new -key server.key -out server.csr -subj "/C=JP/ST=Tokyo/L=Tokyo/O=super_office.jp/OU=Web/CN=$(hostname)"

# --- csrに署名しサーバー証明書(crt)を作成
# openssl x509 -in server.csr -days 3650 -req -signkey server.key > server.crt
Signature ok
subject=/C=JP/ST=Tokyo/L=Tokyo/O=super_office.jp/OU=Web/CN=192.168.56.130
Getting Private key

# --- httpdの設定
# vi /etc/httpd/conf.d/ssl.conf
- SSLCertificateFile /etc/pki/tls/certs/localhost.crt
- SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
+ SSLCertificateFile /opt/server.crt
+ SSLCertificateKeyFile /opt/server.key

# --- httpdの再起動
# /etc/init.d/httpd restart

qiita.com

brew update がエラーする場合の対処方法

$ brew update
Error: /usr/local must be writable!

上記のようなエラーが発生したので調べてみると
以下のようにすればエラーを回避できるみたい。

$ sudo chgrp -R admin /usr/local
$ sudo chmod -R g+w /usr/local

再度、試行してみるとまたエラーが...

brew update
update-report should not be called directly!

brew updateの前に、brew upgradeを実行する。

brew upgrade