AWSLinux日記

AWS EC2 Amazon Linux 2 AMI 2.0インスタンス 初期設定 日本語対応など

1 Mins read

Amazon Linux 2 AMI 2.0.20181008 x86_64 HVM gp2

各ライブラリのアップデート

sudo yum update

時間設定 timezoneのAsia/Tokyoをセット
sudo timedatectl
sudo timedatectl set-timezone Asia/Tokyo

日本語設定 #localectl ja_JP.utf8
localectl
sudo localectl set-locale LANG=ja_JP.utf8
localectl
cat /etc/locale.conf
sudo localectl set-keymap jp106
cat /etc/vconsole.conf

Development tools

コンパイルに必要なライブラリインストール
sudo yum -y groupinstall base "Development tools"

日本語処理に必要なnkfコマンドをインストールする
wget "https://ja.osdn.net/dl/nkf/nkf-2.1.4.tar.gz" -O nkf-2.1.4.tar.gz
tar zxvf nkf-2.1.4.tar.gz
cd nkf-2.1.4/
sudo make && sudo make install
cd ..
rm -rf nkf-2.1.4
rm -f nkf-2.1.4.tar.gz
sudo ln -s /usr/local/bin/nkf /usr/bin/nkf

時刻自動設定・更新設定

sudo yum -y install chrony

sudo vi /etc/chrony.conf

#------------------------------------
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# コメントに
# pool 2.amazon.pool.ntp.org iburst

# 追加する
server ntp.nict.jp iburst
server ntp1.jst.mfeed.ad.jp iburst
server ntp2.jst.mfeed.ad.jp iburst
server ntp3.jst.mfeed.ad.jp iburst
#------------------------------------

sudo systemctl restart chronyd
sudo systemctl enable chronyd

#Check
sudo chronyc sources

mailx

何かと必要なメール環境、AMIは初期インストールされていないので管理用に使えるmailx導入しておく
※sendmail[postfix]は初期インストールされている

# rootで作業
sudo su -

# モジュールがなく mail コマンド使えないのでインストール
yum install mailx

# 念の為旧root宛てメール削除
sed -i '/^root:/d' /etc/aliases

# root宛てメール
echo "root: hoge@hogetaro.com" >> /etc/aliases

# 反映
newaliases

# テスト
echo testtaro | mail root

#ユーザー戻る
Exit

※AWSはメール送信「25」を厳しく管理しているので、ある程度量が外部へ送信された場合ブロックされる可能性あるので、その場合は承認手続きしてください。
本格的なSMTPサーバー立てるには承認が必要
https://forums.aws.amazon.com/thread.jspa?threadID=153660

telnet

何かと便利なtelnetお好みで入れる

sudo yum -y install telnet
Read more
LinuxMySQLPHP

PHP7 MySql error Uncaught Error: Call to undefined function mysql_real_escape_string()

1 Mins read

PHP7の環境へPHP5系のアプリを移動してみたら案の定動かん。。。

モジュール調べたら「mysql_」系が無くなってて「mysqli_」に代わっているのみたいなのでソース内をgrepして片っ端から直したらなんとか動いた♪

mysql_

から

mysqli_

へ「i」つける!

「mysql_select_db」や「mysql_query」は「i」付けるだけではなく、引数の順番も変わっているから念のため、関連する部分は見直しが必要です。

このタイミングで出来ればオブジェクト指向系に変更することをおススメします。
「mysqli::query」感じ!

あと、なんかunset($this)も使えんようになってたみたい。

時代は進むんだぁ

Read more
AipoApacheLinux日記

CentOS Aipo 7から8へバージョンアップ Apache と Tomcat連動

1 Mins read

Aipoさん使わせていただいております。
ありがとうございます。

バージョンアップにともないURLも「url/aipo」から「url/」にアクセス先が変わりました。

Apacheとの連動且つSSL強制アクセスとしたいので、以下の部分を修正しました。

■Tomcat側設定「/usr/local/aipo/tomcat/conf/server.xml」
Port80はApache配下でコントロールする為にこの部分をコメントアウト
<!-- A "Connector" represents an endpoint by which requests are received
  and responses are returned. Documentation at :
  Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
  Java AJP Connector: /docs/config/ajp.html
  APR (HTTP/AJP) Connector: /docs/apr.html
  Define a non-SSL HTTP/1.1 Connector on port 8080
<Connector port="80" maxThreads="1000" protocol="org.apache.coyote.http11.Http11NioProtocol"
    connectionTimeout="20000"
    redirectPort="8443" />
-->

■Tomcat側設定「/usr/local/aipo/tomcat/conf/server.xml」
AJPを通じて443Portでアクセスさせたいので、8443から443へ変更
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

■Apache側設定「/opt/lampp/etc/extra/hoge.conf」※apache系のconfファイルね
<IfModule ssl_module>
<VirtualHost *:443>
  #アクセスさせたいURL
  ServerName aipo.hoge.com
  ServerAdmin aipo@hoge.com
 
  #これはダミー
  DocumentRoot "/opt/lampp/htaipo"
  <Directory "/opt/lampp/htaipo">
  </Directory>
 
  #Aipo Tomcatへ連結
  <Location "/">
    ProxyPass "ajp://localhost:8009/"
  </Location>
 
  #オレオレ証明書
  #######################################################
  #  SSL Engine Switch:
  SSLEngine on
 
  #  Server Certificate:
  SSLCertificateFile /opt/lampp/etc/ssl.crt/server.crt
  SSLCertificateKeyFile /opt/lampp/etc/ssl.key/server.key
 
  #必要であればSSL Optionを記載する
  #######################################################
 
</VirtualHost>
</IfModule>

Read more
LinuxMySQL日記

mysqldumpでバックアップ mysqlで復元

1 Mins read

MySqlのバックアップと復元について

CentOS 6.9 x64
MariaDB 10.1.25(xampp linux x64 5.6.31内)

最近xampp内にあるのはMariaDBとなっていますが。。。オープンソースが分かれた感じね。これ昔のSybaseとSQLServerと同じやつだ(汗)MySqlがOracleに買収されて相変わらずオープンソースだけどライセンス系でめんどくさいから分けちゃえってやつ。そういえばUnixとLinuxもそんな感じだよね。アメリカ人(Linuxは欧米かぁ)は昔からライセンスの緩いVS固いで戦ってるけど、こちらは使ってて名前違うのに、中身はほぼ一緒なの、なんで?って疑問、若い人に教えるの大変なんだよなぁ。そういえばOpenSSLも確かオープンソース団体の脆弱性修正が遅すぎるってGoogleが別プロジェクト作っちゃったのこの前見た。。。

まえがきはさておき、xamppや複数のMySqlを1台で運用(あまりやらんが使用ポートを分ければ複数インスト可能)するときに「sock」指定(プロセス指定)が必要なのでその部分も含めてコマンド書いときます。

yum使ってMySqlを標準インストールした場合、Pathが普通に切られているから、他のネット情報のように「sock」部分はカットして使ってください。

■バックアップ(使い勝手がよいのでバイナリでアウトプット)
# ./mysqldump --default-character-set=binary --socket=/opt/lampp/var/mysql/mysql.sock -u root -p dbname > /opt/dump.sql

■復元
# ./mysql --socket=/opt/lampp/var/mysql/mysql.sock -u root -p dbname < /opt/dump.sql

Read more