
作成したシェルスクリプト詳細
LinuxにApache, MySQL, PHPとWordpressをインストールする時間の掛かる作業を、シェルスクリプトを一回実行すると一発で環境が整うようにします。
まずはwordpress_lamp.shなどのファイルを作り、実行権限を与える。
$ touch wordpress_lamp.sh $ chmod +x wordpress_lamp.sh
作成したシェルスクリプト詳細
- rootユーザーで実行する
- LinuxディストリビューションはCentOS
- Apache, MySQL, PHPをこれからインストールするPC対象
実行条件

以下は一発作成シェルスクリプトのソースコード
# 変数定義 => MySQLの設定で必須
database=wordpress
user=wp_user
password=password
host_name=localhost
# yumで必要なものインストール
yum -y install httpd mysql-server php php-mysql wget
# ポート開放
service iptables restart
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# Apacheの起動、自動起動設定
service httpd restart
chkconfig httpd on
# PHPの設定ファイルのバックアップ、timezoneの設定
cp /etc/php.ini /etc/php.ini.org
sed -i -e "s/date\.timezone =/date\.timezone = Asia\/Tokyo/g" /etc/php.ini
#設定を反映
service httpd restart
# WordPressのダウンロードと解凍
wget http://ja.wordpress.org/wordpress-4.3-ja.tar.gz
tar zxvf wordpress-4.3-ja.tar.gz
# WordPressファイルを/var/www/配下にコピーし、apacheで読み込めむ
cp -r wordpress /var/www/
chown -R apache.apache /var/www/wordpress
# /etc/httpd/conf/httpd.confのバックアップと編集
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
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
# MySQLの起動と設定
service mysqld start
chkconfig mysqld on
mysql -u root -e "create database $database"
mysql -u root -e "grant all privileges on $database.* to $user@$host_name identified by '$password'"
# wp-config.phpのバックアップ
# WordPressへデータベースの設定を書き込む
cp /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php
sed -i -e "s/define('DB_NAME', 'database_name_here')/define('DB_NAME', '$database')/g" /var/www/wordpress/wp-config.php
sed -i -e "s/define('DB_USER', 'username_here')/define('DB_USER', '$user')/g" /var/www/wordpress/wp-config.php
sed -i -e "s/define('DB_PASSWORD', 'password_here')/define('DB_PASSWORD', '$password')/g" /var/www/wordpress/wp-config.php
sed -i -e "s/define('DB_HOST', 'localhost')/define('DB_HOST', '$host_name')/g" /var/www/wordpress/wp-config.php
sed -i -e "s/define('DB_CHARSET', 'utf8')/define('DB_CHARSET', 'utf8')/g" /var/www/wordpress/wp-config.php
# httpd.confの反映
service httpd restart
2行 ~ 5行はMySQLで設定するデータベース名、ユーザー名、パスワード、ホスト名なので変数にして
適宜、置き換えられるようにした。
MySQLがもしもインストール済み、かつMySQLのrootユーザにパスワードを付与している場合は、
53,54行目の部分を以下のように-pオプションを付け足してください。
mysql -u root -p -e "create database $database" mysql -u root -p -e "grant all privileges on $database.* to $user@$host_name identified by '$password'"
-p をつけるとMySQLに接続する際に設定したパスワードを要求されます。
シェルスクリプトは ./wordpress_lamp.sh とコマンドラインで打つと実行できる。
$ ./wordpress_lamp.sh

LAMP環境 + WordPress が出来上がるまで約1分。
とても便利です。
* 実行後はブラウザから、LAMP+WordpressをインストールしたサーバのIPアドレスにアクセスするとWordpressの画面が表示されます。

