LAMP環境構築の備忘録
こないだの続き。 お客さんのVPSにXAMPPを使うとなんかいろいろやばそうなので、殆どゼロベースでLAMP環境構築してる際にかなり唸った。やっぱりコンピュータなんて嫌いだ。 とりあえず、ハマったことが幾つかあったのでざっくりとまとめる。 (現在進行形のシゴトなので、適宜書き足します。)
- はじめに
→「最新!最新!最強!」とか信じきっているクソ上司が、バカの一つ覚えでCentOS7の環境を用意していた。
サーバー側のOSは必ずしも最新の環境を選ぶ必要はない。お客さんのために安定する環境のほうが大事なのに。こいつ絶対アホだろwwwww言われるがままに手探りでやってる俺もアホだけどwwww
→まぁひとまず、今回は予め用意してあるプロバイダのVPSを使用するのでBINDの導入は行わない。まぁ本来なら使うべきなんだろうけど。
→とりあえず、そのためリゾルバ(/etc/resolv.conf)のDNSサーバーはパブリックネームサーバーを利用することにする。
→単純にリゾルバ設定をしただけではApacheやらnetworkを再起動したときに設定が勝手に書き換わるようなので、マシンのリゾルバの元となる /etc/sysconfig/network-scripts/ifcfg-マシンネットワーク名 にパブリックネームサーバーを設定する。 - ファイヤウォールの設定
→CentOSバージョン(まぁ具体的には先述の7)によってはiptablesがグレードアップしてfirewalldになっている。だが、とりあえず基本となる部分からやって行きたかったので(いずれfirewalldに変えるにしても)iptablesを採用。
→上記の場合だと幾つかのコマンドや機能が使用不可となってるのでiptables-servicesをyumコマンドで入れておく。
→ルールは適度に設定する。/sbin/service iptables saveでルール保存を忘れずに。 →OS再起動時に自動でサービス立ち上げできるようにchkconfig on (systemctl enable)でiptables.service(iptables)を設定。
→リポジトリからインストールする際はファイヤウォールの設定を最低限にする。だってインスコできないときあるし・・・。ポートの設定すりゃなんとかなるんかもしれんが。 - Apache設定
→とりあえず、まずはディレクトリはデフォルトの状態で動くようにする。
→その際、初期で設定されているcgi-binはディスっとく。
→その際、cgiをHTTP表示環境で実行させなきゃならんのでその設定。
→CentOSで言うwelcom.confが表示されることを確認。
→上記が表示されれば、そこで初めて初期設定のDocumentRoot関係のディレクトリを各部変更する。・・・(A)
→CentOSで言うwelcom.confは表示させないようにする。さらば。
→chkconfig on (systemctl enable)でOS再起動時の設定。
→AUTH関係やPHP関係のモジュールの読み込みはやっておくこと!
→公開ディレクトリのAllowOverride設定は慎重に選ぶ。 - vsFTPD設定
→まず、最初に。思考停止でネット上にあるコードを貼り付けないこと!間違いなく動かない。まとめてやろうとすると絶対トラブるので、エラーを見逃さないためにも一つ一つ動作を見ながら作業する。
→パッシブモードは最後に設定するのでこの段階では捨て置く。全てはアクティブモードで実行できてからだ。 →最初の段階では、ftpusers, user_list, chroot_listとかの設定はさておいて、vsftpd.confを弄くって、とりあえずはコマンドライン上の実行エラーを出さないように実行できるようにする。ひいてはrootでFTPに接続できるようにする。(その場合絶対ftpusersは触らなきゃいけないと思うけど)
→FTPのルートはApacheで設定している公開ディレクトリを指定。
→上2つ終わった後、本番FTP用のLinuxユーザーの作成。パスワードもね。・・・(B)
→更についでに(A)で設定したディレクトリへオ◯ーナを買う権利所有者の権利を移譲しておく。
→ディレクトリのパーミッションも忘れず行う。
→ftpusers, user_list, chroot_listを弄くって(B)のユーザーでFTPを設定する。
→(B)で接続テスト。ファイル等のアップロード、FTP上での移動や削除がきちんとできることを確認する。
→ようやくパッシブモードを設定(ファイヤウォールのポートを開ける)。
→ピリオドで始まるファイル用の設定をする
→OS再起動時の(ry - PHP設定
→わりかしスムーズだった気がする。つまずいたのはApacheの方にPHPのモジュール追加するくらいか?
→あぁ、あとPHPのライブラリも使うCMSに応じて選ぶのか。これは少しめんどいね。
→正直、箇条1~3まで設定が面倒臭すぎて、こっちはあまり難しい印象ではない。 - MySQL設定
→いくつかコマンドラインでやったが引っかかるとこは今のところなし。
→管理者ログインのパスワードは付けましょう。なぁに、UPDATE文で一発さ。
→phpMyAdminをFTPからぶっこして動きゃおk。タブンネ。 - Postfix+Dovecot設定 →Postfix設定はISPを中継させる。
→master.cfでsubmission、smtpd_sasl_auth_enable、smtpd_client_restrictionsは有効化しとく。
→Linuxのメール用ユーザーとISPのメールリレー用アカウントは併記する。(ハッシュ化も忘れずに!)
→info等のユーザーはOS側がデフォルトで転送設定をかけているため、「/etc/aliases」から該当するユーザーをコメントアウトしておく。