AWSLinux

AWS EC2 Amazon Linux 2 AMI 2.0インスタンス PHP.ini 日本語 Mailなど初期設定 WordPress

1 Mins read

Amazon Linux 2 AMI 2.0.20181008 x86_64 HVM gp2
Apache 2.4.39
PHP 7.3.6

メール送信するだけならこの設定だけで対応できると思います。中継及びメール受信を考慮していないのでAWSのセキュリティ[In]に25、587の穴を開ける必要もありません。
AWSのVPC内から大量のメール送信や受信を目指す場合、AWSへのメール解除申請など結構な労力を取られます。現時点の情報では24時間200通、1秒に1通まで制限がかからないので管理メールなどの使用意図であれば問題ないでしょう。

mtx確認

# インストールされているmtx確認コマンド 
alternatives --display mta

mta -ステータスは自動です。
リンクは現在 /usr/sbin/sendmail.postfix を指しています。

sendmail.postfixがインストールされていると思いますがない場合はyumなどでインストールする

PHP.ini

; ポートを587へ
smtp_port=587

; mtxパス&コマンド設定
sendmail_path = /usr/sbin/sendmail.postfix -t -i

; 標準文字コード
default_charset = UTF-8

; mbstringデフォルト
mbstring.language = Japanese
; HTTP入力文字のエンコーディングを内部文字のエンコーディングに自動変換しない

mbstring.encoding_translation = Off

; 文字コード自動検出する際の優先順位
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII

; タイムゾーンを日本標準時間
date.timezone = Asia/Tokyo

; セキュリテイ向上、PHPのバージョン情報を非表示
expose_php = Off
Read more
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