Skip to content

Instantly share code, notes, and snippets.

@yama
Last active January 24, 2023 20:30
Show Gist options
  • Save yama/9423d75bb930910d2756e828e7c0d383 to your computer and use it in GitHub Desktop.
Save yama/9423d75bb930910d2756e828e7c0d383 to your computer and use it in GitHub Desktop.
# 最初に vagrant up を実行
# id: apache: no such user と表示されてプロンプトに戻ってくるので、ここで vagrant vbguestを実行
# GuestAdditionsの最新版がインストールされて、またプロンプトに戻ってくる。再びvagrant upを実行
# 膨大なプロビジョン処理が再開されるので、しばらく待つ。
# Job for httpd.service failed と表示されてプロンプトに戻ってくるが、これはプロビジョンが完了したということ
# vagrant reload で再起動。ローカルフォルダがマウントされRunning: inline script と表示される
# ブラウザを開いてディレクトリ名.localでApacheの初期ページを開くことができる
# 利用するIPアドレスを設定します
GUEST_IP = "192.168.33.8"
def install_plugin(plugin)
system "vagrant plugin install #{plugin}" unless Vagrant.has_plugin? plugin
end
install_plugin('vagrant-vbguest')
install_plugin('vagrant-hostmanager')
Dir.mkdir("html") unless Dir.exist?("html")
HOSTNAME = File.split(File.dirname(__FILE__))[1] + '.local'
Vagrant.configure(2) do |config|
config.vm.provider "virtualbox" do |v|
v.gui = true
end
config.vm.box = "generic/centos7"
config.hostmanager.enabled = true
config.hostmanager.manage_host = true
config.vm.hostname = HOSTNAME
config.vbguest.auto_update = false
config.vbguest.installer_options = { allow_kernel_upgrade: true }
config.vbguest.auto_reboot = true
config.vbguest.no_remote = true
config.vm.synced_folder ".", "/var/www", type:'virtualbox',
:owner => "apache",
:group => "apache",
:create => true,
:mount_options => ['dmode=777','fmode=666']
config.vm.network "private_network", ip: GUEST_IP
config.vm.provision :hostmanager
config.vm.provision "shell", args:HOSTNAME, inline: <<-SHELL
sudo yum -y clean all
sudo yum -y install epel-release
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y update
sudo yum -y update kernel
sudo yum -y install kernel-devel kernel-headers dkms gcc gcc-c++
# sudo yum install update kernel kernel-devel
# Webサーバーインストール
sudo yum -y install httpd
# PHP関連インストール
sudo yum -y install --enablerepo=remi-php80 php
sudo yum -y install --enablerepo=remi-php80 php-devel php-mysql php-pdo php-mbstring php-mcrypt php-xml php-gd
sudo yum -y install --enablerepo=remi-php80 php-pecl-zip php-opcache php-xmlrpc php-pear php-mysqlnd php-intl
sudo yum -y install --enablerepo=remi-php80 php-common
sudo yum -y install --enablerepo=remi-php80 php-pecl-xdebug3
# sudo yum -y install --enablerepo=remi-php80 php-dbg
sudo yum -y install mariadb mariadb-server
sudo yum -y install zip
sudo yum -y install wget
sudo yum -y install git
sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
sudo php composer-setup.php
sudo php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
# 証明書作成
# sudo ssh-keygen -P "" -t rsa -b 4096 -f /root/.ssh/id_rsa
sudo yum -y reinstall glibc-common
sudo localectl set-locale LANG=ja_JP.UTF-8
sudo localectl set-keymap jp106
# 時刻設定
sudo timedatectl set-timezone Asia/Tokyo
# PHP設定
sudo sed -i -e 's|;mbstring.language = Japanese|mbstring.language = Japanese|' /etc/php.ini
sudo sed -i -e 's|;mbstring.internal_encoding =|mbstring.internal_encoding = UTF-8|' /etc/php.ini
sudo sed -i -e 's|upload_max_filesize = 2M|upload_max_filesize = 16M|' /etc/php.ini
sudo sed -i -e 's|;date.timezone =|date.timezone = Asia/Tokyo|' /etc/php.ini
# Apache 設定
sudo sed -i -e 's/AllowOverride None/AllowOverride All/g' /etc/httpd/conf/httpd.conf
sudo sed -i -e 's/ServerTokens Off/ServerTokens Prod/g' /etc/httpd/conf/httpd.conf
# sudo sed -i -e 's/User apache/User vagrant/g' /etc/httpd/conf/httpd.conf
# sudo sed -i -e 's/Group apache/Group vagrant/g' /etc/httpd/conf/httpd.conf
sudo sed -i -e 's/#ServerName www.example.com:80/ServerName localhost/g' /etc/httpd/conf/httpd.conf
sudo sed -i -e 's|SELINUX=enforcing|SELINUX=disabled|' /etc/selinux/config
SELINUX=enforcing
sudo chown -R apache /var/www/html
# sudo chmod 777 /var/lib/php/opcache
# sudo chmod 777 /var/lib/php/session
# sudo chmod 777 /var/lib/php/wsdlcache
sudo systemctl disable firewalld
sudo systemctl start mariadb
sudo mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
echo ${1} としてサイトを作成しました。
SHELL
config.vm.provision "shell", run: "always", inline: <<-COMMAND
sudo systemctl restart httpd
sudo systemctl restart mariadb
COMMAND
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment