VagrantにてCentOS 6.10 finalなLAMP環境を作る話

VagrantにてOSをCentOS6.10finalにてLAMP環境を作るって話です。

ってか、前回 CentOSで動作検証環境をVagrantで作る話(2021/10/15) の続きです
※ apache周りは今回のソース見たほうが良いかもしれません
※ vbboxのマウント周りの解説は前回を参考したほうが良いです。

成果物!

めんどくさいので、ソースをGitHubを上げました

https://github.com/wataru775/vagrant/tree/for-CentOS6.10

出来上がり環境

OSCentOS 6.10 final (サポート切れ)
PHPver 7.3.31 (7.3系はサポートがやばい2021/12/06まで)
Apache2.4.51 (最新 : CVE-2021-42013対応済)
MySQL8.0.26

CentOSとApacheは前回参考 : CentOSで動作検証環境をVagrantで作る話(2021/10/15)

今回は、MySQLとPHPの導入の話です

MySQLを入れる!

MySQLは普通にすればサクッと入ります…

抜粋すると

    yum install -y https://dev.mysql.com/get/mysql80-community-release-el6-3.noarch.rpm
    yum install -y mysql-server
    chkconfig mysqld on
    service mysqld restart

難しいところはパスワード周りです。

インストールすると初期パスワードがログ(/var/log/mysqld.log)に吐き出されます

/var/log/mysqld.log
2021-10-16T08:54:40.708824Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 5+me,!m!sg/Z

そこから、パスワード(5+me,!m!sg/Z)を引っ張ります

    export MYSQL_TMP_PASSWD=`grep 'temporary password' /var/log/mysqld.log | awk '{ print $13 }'`

Vagrantの接続アカウントの設定などは環境設定ファイルに書いているもので使います

/vagrant/conf/mysql/sql.cnf
[client]
user = root
password = YfK*tVav.ywZ6T3zJ-MZ
host = localhost

この中に定義していますパスワードを使います!
※ 単純なのはデフォルトセキュリティ設定で弾かれるので注意です

sql.cnfからパスワードを取り出し

    export MYSQL_PASSWD=`grep password /vagrant/vagrant/conf/mysql/sql.cnf | awk '{print $3}'`

変更します

    mysql -uroot --password=$MYSQL_TMP_PASSWD --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '$MYSQL_PASSWD';"

実行時にパスワードを引数にしていますのでWARNINGが出ますが、放置です

mysql: [Warning] Using a password on the command line interface can be insecure.

以降、mysqlを実行するには環境設定ファイルを使ってください

mysql --defaults-extra-file=/vagrant/vagrant/conf/mysql/sql.cnf

あと、2回も実行するのは無意味なので2回めからはインストールとかは排除します

PHPをインストールする

PHP 7.3をいれます。サポートは2021/12/06までですw

php 7.4がいいのですが、試行錯誤の結果ですが、rpmで入るautoconfがver 2.63-5.1までです…
要求するautoconf周りがソースから入れるのが大変なので諦めました… (rpmで使える最新をいれています)

    curl --silent https://www.php.net/distributions/php-7.3.31.tar.gz -o php-7.3.31.tar.gz
    tar zfx php-7.3.31.tar.gz -C /usr/local/src/
    cd /usr/local/src/php-7.3.31/
    ./configure --with-apxs2=/usr/local/apache2/bin/apxs
    make
    make install

今回は/usr/local/apache2/に入れています。
環境設定ファイルが/etc/httpdではなく/usr/local/apache2/conf/なので注意です

あとは、phpのアクセスにlibphpに引き継げばOKです
/usr/local/apache2/conf/httpd.conf

LoadModule php7_module        modules/libphp7.so

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

簡単だろw

あと、ドキュメントルートは以下で定義しています

   config.vm.synced_folder "./public", "/usr/local/apache2/htdocs/", type: "virtualbox"

laravelなどのフレームワークの場合は/vagrantに実行ルートをマウントしていますのでそっちとhttpd.confをいじってください

   config.vm.synced_folder ".", "/vagrant", type: "virtualbox"

今回でCentOS 6.10 final でのLAMP環境は完成です。

正直… さっさと乗り換えろ!というのが言いたいことですねw
CentOSがリリース終えたのが全て悪い!w

次回からは、別OSで同じ環境作れるようになるVagrantスクリプトを書いてみたり…

前回にも書きましたが… 最近はあくまでも本番環境と一致する環境で動作の確認程度がVagrantになっています。

開発環境はDockerでするのが吉ですね