vagarantを使用してcentos7.4にphp5.6と7,2をインストールをおこないました
centos7系、php7.2が初めてで時間がかかった
まだ途中だけどメモを残す
- 作業1・初期設定
- 作業2・Vagrantfileの修正
- 作業3・SSHの設定変更
- 作業4・マシンの初期設定系
- 作業5・PHPのインストール
- 作業6・mysqlのインストール
- 作業7・apacheのインストール
- 作業8・phpmyadminのインストール
- はまった事
centos7.4のイメージは公式のイメージだと思います
小さいサイズではないのでダウンロードに時間がかかると思う
https://app.vagrantup.com/centos/boxes/7
作業1・初期設定
イメージをいれるフォルダを作成する
mkdir centos7 cd centos7 vagrant init centos/7
作業2・Vagrantfileの修正
直下の所にVagrantfileというファイルができるのでそちらを修正する
vim Vagrantfile
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.synced_folder ".", "/vagrant", type:nil config.vm.box = "centos/7" config.vm.box_check_update = false config.vm.network "private_network", ip: "192.168.33.10" #config.vm.synced_folder "./opt", "/var/opt" config.vm.provider "virtualbox" do |vb| # Display the VirtualBox GUI when booting the machine vb.gui = true # Customize the amount of memory on the VM: vb.memory = "1024" end config.vm.provision :shell, :path => "00_ssh.sh" config.vm.provision :shell, :path => "01_init.sh" config.vm.provision :shell, :path => "02_php.sh" config.vm.provision :shell, :path => "03_mysql.sh" config.vm.provision :shell, :path => "04_apache.sh" config.vm.provision :shell, :path => "05_phpmyadmin.sh" end
細かい設定は00_ssh.sh~05_phpmyadmin.shやる形になる
作業3・SSHの設定変更
# SSHのパスワードでのアクセス # Windowsを対象にしている為、Winscpだと毎回変換しないといけない。 # 手順が増えるのでローカル環境のみSSHのパスワードでのアクセスを許可する sudo sed -i -e "s/^PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config systemctl restart sshd.service
作業4・マシンの初期設定系
vim 01_init.sh
#SELinuxの無効化(恒久対応) sudo sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config sudo setenforce 0 # iptables stop ローカルでは使わない systemctl disable firewalld systemctl stop firewalld # デフォルトではiptablesは入っていないのでコメントアウト #systemctl disable iptables #systemctl stop iptables # bashのupdate お決まり yum update bash -y # openssl update お決まり yum update openssl -y # ntp install 時間同期 yum install -y ntp* systemctl enable ntpd systemctl restart ntpd # cron install アバウト系を削除してぴったり系をインストール yum -y install cronie-noanacron yum -y remove cronie-anacron systemctl enable crond systemctl restart crond # devtool lib install 開発系で使うものをインストール yum install rsync unzip zip zlib zlib-devel openssl-devel sqlite-devel gcc-c++ glibc-headers libyaml-devel readline readline-devel zlib-devel libffi-devel epel-release wget -y # timezone の変更 timedatectl set-timezone Asia/Tokyo timedatectl status
作業5・PHPのインストール
#php5.6とphp7.2のインストール # リポジトリをインストールする sudo yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm -y sudo yum install yum-utils -y sudo yum-config-manager --enable remi # インストールする for v in 56 72 ; do sudo yum -y install php$v php$v-php-{gd,xml,mbstring,mysqlnd} ; done for v in 56 72 ; do sudo yum -y install php$v-php-{opcache,pecl-apcu,pecl-memcached} ; done #バージョンの確認 for v in 56 72 ; do sudo php$v -v ; echo \ ; done #php.ini の配置場所 for v in 56 72 ; do sudo php$v --ini | grep Loaded | awk '{print $4}' ; done #php-fpm のインストール for v in 56 72 ; do sudo yum -y install php$v-php-fpm ; done #プロセスマネージャーの変更 for v in 56 ; do sudo sed -i '/pm = /s/dynamic/ondemand/' /opt/remi/php$v/root/etc/php-fpm.d/www.conf ; done for v in 72 ; do sudo sed -i '/pm = /s/dynamic/ondemand/' /etc/opt/remi/php$v/php-fpm.d/www.conf ; done #確認 for v in 56 ; do sudo grep 'pm = ondemand' /opt/remi/php$v/root/etc/php-fpm.d/www.conf ; done for v in 72 ; do sudo grep 'pm = ondemand' /etc/opt/remi/php$v/php-fpm.d/www.conf ; done #listenの変更 for v in 56 ; do sudo sed -i "s/9000/90$v/" /opt/remi/php$v/root/etc/php-fpm.d/www.conf ; done for v in 72 ; do sudo sed -i "s/9000/90$v/" /etc/opt/remi/php$v/php-fpm.d/www.conf ; done #listenの確認 for v in 56 ; do sudo grep 'listen = 127' /opt/remi/php$v/root/etc/php-fpm.d/www.conf ; done for v in 72 ; do sudo grep 'listen = 127' /etc/opt/remi/php$v/php-fpm.d/www.conf ; done #サービスの起動と再起動の設定 sudo systemctl restart php72-php-fpm sudo systemctl enable php72-php-fpm sudo systemctl restart php56-php-fpm sudo systemctl enable php56-php-fpm #サービスのステータス確認 sudo systemctl status php72-php-fpm sudo systemctl status php56-php-fpm
作業6・mysqlのインストール
mariadbは使わずmysqlを使う方向になった
自分的にはmariadbでいいと思うが・・・
# デフォルトで入っているmariadbを削除する # インジェクションがあるpostfixが消えるのが・・・やばいかも sudo yum remove mariadb* # mysql5.7のリポジトリを落としてきて「yum」でインストールする cd /var/tmp/ sudo rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm sudo yum install mysql-community-server -y #確認 mysqld --version # サービスの起動 sudo systemctl restart mysqld.service # OS再起動の設定 sudo systemctl enable mysqld.service #MySQL の初期パスワード確認(ログに出力されるのでそれを取得する) # (2回目はエラーになるかも) DB_PASSWORD=$(grep "A temporary password is generated" /var/log/mysqld.log | sed -s 's/.*root@localhost: //') echo ${DB_PASSWORD} #パスワードのバリデーション解除 sudo sed -i '$a validate-password=OFF' /etc/my.cnf #文字コードのutf-8の設定 sudo sed -i '$a character-set-server=utf8' /etc/my.cnf #パスワードの360日問題解除 sudo sed -i '$a default_password_lifetime=0' /etc/my.cnf sudo systemctl restart mysqld.service #新しいパスワードの設定をする(2回目はエラーになるかも) NEW_DB_PASSWORD='password' mysql -uroot -p${DB_PASSWORD} --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '${NEW_DB_PASSWORD}'; " #確認 sudo mysql -u root -p${NEW_DB_PASSWORD} -e "select user,host,password_last_changed from mysql.user;" sudo chown -R mysql /var/lib/mysql
作業7・apacheのインストール
cd /var/tmp/ sudo yum install --enablerepo=remi --enablerepo=remi-php56 httpd httpd-devel mod_ssl -y # パーミッション系の変更 sudo chown -R apache:apache /var/log/httpd sudo chmod -R 755 /var/log/httpd sudo mkdir /var/log/httpd/access_logs sudo chown -R apache:apache /var/log/httpd/access_logs sudo chmod -R 755 /var/log/httpd/access_logs sudo mkdir /var/log/httpd/error_logs sudo chown -R apache:apache /var/log/httpd/error_logs sudo chmod -R 755 /var/log/httpd/error_logs # 設定ファイルのパーミッション変更(vagrant環境のみ) sudo chown -R vagrant:vagrant /etc/httpd/conf.d/ sudo chown -R vagrant:vagrant /etc/httpd/conf/ sudo systemctl enable httpd sudo systemctl restart httpd sudo usermod -aG apache vagrant sudo usermod -aG vagrant apache # phpの所でいれた方がいいかも if [ -e /usr/local/bin/composer ]; then echo "composer installed" else echo "composer no installed" echo "composer install start" cd /tmp/ sudo wget https://getcomposer.org/installer sudo php72 /tmp/installer sudo mv /tmp/composer.phar /usr/local/bin/composer fi # svnのインストール・・・古いシステムがあるので・・・ sudo yum install subversion -y
作業8・phpmyadminのインストール
vim 05_phpmyadmin.sh
sudo yum install --enablerepo=remi --enablerepo=remi-php56 phpmyadmin -y #既存の設定は邪魔で削除 sudo rm -rf /etc/httpd/conf.d/phpmyadmin.conf sudo cat << 'EOT' >> /etc/httpd/conf.d/phpmyadmin.conf Listen 10003 <virtualhost *:10003=""> DocumentRoot /usr/share/phpMyAdmin/ <directory usr="" share="" phpmyadmin=""> AddDefaultCharset UTF-8 <ifmodule mod_authz_core.c=""> Require all granted </ifmodule> </directory> <filesmatch \.php$=""> SetHandler "proxy:fcgi://127.0.0.1:9056" </filesmatch> <directory usr="" share="" phpmyadmin="" setup=""> <ifmodule mod_authz_core.c=""> Require local </ifmodule> </directory> </virtualhost> EOT echo "#service httpd restart" systemctl restart httpd
これで
http://192.168.33.10:10003/
にアクセスする
phpmyadminが表示される
はまった事
seLinuxがデフォルトでオンになっていた事・・・
このせいでphp72-php-fpmが立ち上がらなかった。
ERROR: unable to bind listening socket for address '127.0.0.1:9072': Permission denied (13)
パーミッションが間違えていますしかエラーにでないもんだから本当に辛かった
この記事をみつけるまでseLinuxの存在をすっかり忘れていた
unix.stackexchange.com
参考URL
MySQL5.7の初期パスワードを非対話で変更する - akamist blog
enomotodev.hatenablog.com
あああ・・・めんどくさいからgitにあげよう!!
CentOS 7実践ガイド (impress top gear)
- 作者: 古賀政純
- 出版社/メーカー: インプレス
- 発売日: 2015/02/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る