WordPressサーバを構築する度に、Apache
php
MySQL
を入れるのがめんどくさかったので、いい方法がないかと思い調べていると、シェルスクリプトを使えば一発構築できそうなので、やってみました。
ただ、MySQL
をいじるのに初期パスワードが必要で、その部分が実装できなかったので、WordPress
に必要なものを入れてひとまず終了します。
(そのあたり詳しい方がいたらコメントくださると嬉しいです。)
あと、個人的にfishシェル
が大好きなのでついでに入れます。
環境
- Azure CentOS(7.7)
AzureにまっさらなOSを起動した時を想定します。
コード
wordpress.sh
#!bin/bash
#yumのアップデート
yum -y update
#fishシェルのインストール
yum -y install epel-release #epelリポジトリのインストール
yum -y install fish #fishのインストール
#Apacheのインストール
yum install httpd.x86_64 -y #apacheのインストール
systemctl start httpd #apacheの起動
systemctl status httpd #apache自動起動
#php7.3のインストール
yum -y remove php* #デフォルトphpのアンインストール
yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm #remiリポジトリのインストール
yum -y install --enablerepo=remi,remi-php73 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql #php7.3の必要なパッケージのインストール
cp /etc/php.ini /etc/php.ini.org #PHPのバックアップ
sed -i -e "s/date\.timezone =/date\.timezone = Asia\/Tokyo/g" /etc/php.ini #timezoneを日本に変更
#設定を反映
systemctl restart httpd #httpdの再起動
#WordPressのダウンロード
wget https://ja.wordpress.org/latest-ja.tar.gz #WordPressファイルのダウンロード
tar -xzvf latest-ja.tar.gz #WordPressの解凍
rm latest-ja.tar.gz #WordPressファイルの削除
cp -r wordpress /var/www/ #/var/wwwにwordpressファイルをコピー
chown -R apache.apache /var/www/wordpress #Apacheで読み込む
# /etc/httpd/conf/httpd.confのバックアップと編集
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org #httpd.confのバックアップ
sed -i -e "s/\/var\/www\/html/\/var\/www\/wordpress/g" /etc/httpd/conf/httpd.conf
sed -i -e "s/Directory \//Directory \/var\/www\/wordpress/g" /etc/httpd/conf/httpd.conf
sed -i -e "s/AllowOverride None/AllowOverride All/g" /etc/httpd/conf/httpd.conf
#Apachenのバージョン非表示
sed -i -e "s/ServerTokens OS/ServerTokens Prod/g" /etc/httpd/conf/httpd.conf
#MarinaDBのアンインストール
yum -y remove mariadb-libs
rm -rf /var/lib/mysql/
#MySQLのインストール
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum -y install mysql-community-server
systemctl start mysqld #mysqlの起動
systemctl enable mysqld #mysqlの自動起動
# httpd.confの反映
service httpd restart
exit 0
実行する時はsudo bash wordpress.sh
で実行できます。