2015/07/30 よりさくらのSSL ラピッドSSL提供開始記念キャンペーンが始まったのですが、あまりの安さに飛びついてみました。今なら(2015/09/30まで)RapidSSLの証明書が1年ぶん0円なので、さくらのVPSにあるぼくの仕事用サイト ( http://ll4u.in ) のドメインで3年ぶん申し込んでインストールするまでの作業手順を書いておきます。
nginx
[CentOS]nginxを1.9.2にしたらmuninでnginxとphp-fpmのグラフが取れなくなったときの対処
CentOS 6と7でnginxを1.9.2にアップデートした後から、muninでnginxとphp-fpmのグラフが取得できなくなったので、対処したときのメモを残します。nginxは公式サイトのyumリポジトリ(mainline)からインストールおよびアップデートしています。
[一撃]CentOS7にWordPressをインストールする一撃シェルスクリプト
以前、CentOS6にWordPressをインストールする一撃シェルスクリプトを公開しましたが、2014/12/25にさくらのクラウド パブリックアーカイブにCentOS7が追加されたので、CentOS7にWordPressを一撃インストールするスタートアップスクリプトを作成しました。また、ISOイメージからインストールした素っぴんのCentOS7でも動くことも確認しています。
[concrete5]LNMP環境に一撃でconcrete5をインストールする
先ほどUPしたconcrete5一撃インストールですが、ブラウザでのオペレーションが発生するので、厳密には一撃ではありません。WordPressで言うところのWP-CLIみたいにコマンドラインからインストールできないかなー、と探していたら、ありました!そのものズバリ install-concrete5.php が。
ただし、concrete5.7.3では動きませんでした。どうやら引数に指定するcoreのところで処理がおかしいようです。安定版の最新バージョン5.6.3.2でインストールしてみたら一撃インストールできたので、こちらの一撃スクリプトを直してみました。
以下の一撃スクリプトは、今後concrete5がバージョンアップしたときにメンテナンスしやすいように、ダウンロードURLなどを変数に格納しました。ブログの管理者メールアドレスとサイトのタイトルも適宜修正して使ってくださいね。(クリックで大きくなります)
#!/bin/bash DBNAME=concrete5 DBUSER=con5user PARAMFILE=${HOME}/.mysql/MySQLPARAM CONCRETE5ZIP=concrete5.6.3.2.ja.zip DOWNLOADURL=http://concrete5-japan.org/index.php/download_file/view/1488/45/ DOCUMENT_ROOT=/var/www/html ADMIN_EMAIL=you@example.com SITENAME="ぬるぽぽぽ" sudo yum -y update sudo service iptables stop sudo iptables -P INPUT DROP sudo iptables -P OUTPUT ACCEPT sudo iptables -P FORWARD DROP sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -I INPUT -p icmp --icmp-type 0 -j ACCEPT sudo iptables -I INPUT -p icmp --icmp-type 8 -j ACCEPT sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo service iptables save sudo service iptables start sudo chkconfig iptables on sudo yum -y install http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm sudo cp -p /etc/yum.repos.d/nginx.repo /etc/yum.repos.d/nginx.repo.orig sudo sed -i 's/centos/mainline/centos/' /etc/yum.repos.d/nginx.repo sudo yum -y install nginx [ ! -f /etc/yum.repos.d/remi.repo ] && sudo yum -y install http://rpms.famillecollet.com/enterprise/remi-release-6.rpm sudo yum -y --enablerepo=remi install gd-last sudo yum --enablerepo=remi-php56 -y install php-cli php-common php-mbstring php-pdo php-xml php-mysqlnd php-gd php-pecl-apcu php-xmlrpc php-opcache php-fpm sudo yum -y install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm sudo yum -y install mysql-community-server mkdir ${HOME}/.mysql sudo chkconfig mysqld on sudo service mysqld start echo "user root $(cat /dev/urandom | tr -dc '[:alnum:]' | head -c 8)" > ${PARAMFILE} echo "DBPARAM ${DBNAME} ${DBUSER} $(cat /dev/urandom | tr -dc '[:alnum:]' | head -c 8)" >> ${PARAMFILE} mysqladmin -u root password "$(grep ^user ${PARAMFILE} | awk '{print $NF}')" mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') -e "create database ${DBNAME} character set utf8;" PW=$(grep ^DBPARAM ${PARAMFILE} | awk '{print $NF}') mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') -e "GRANT ALL PRIVILEGES on ${DBNAME}.* to ${DBUSER}@localhost identified by "${PW}";" mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') -e "DELETE FROM mysql.user WHERE User='';" mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');" mysql -u root -p$(grep ^user ${PARAMFILE} | awk '{print $NF}') -e "FLUSH PRIVILEGES;" sudo cp -p /etc/php.ini /etc/php.ini.orig sudo sed -i 's/;date.timezone =/;##--@--##date.timezone =ndate.timezone = Asia/Tokyo/' /etc/php.ini sudo cp -p /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.orig sudo sed -i 's/^user = apache/;user = apachenuser = nginx/' /etc/php-fpm.d/www.conf sudo sed -i 's/^group = apache/;group = apachengroup = nginx/' /etc/php-fpm.d/www.conf sudo chgrp nginx /var/lib/php/session sudo chgrp nginx /var/lib/php/wsdlcache sudo service php-fpm start sudo chkconfig php-fpm on mkdir ${HOME}/src wget -O ${HOME}/src/${CONCRETE5ZIP} ${DOWNLOADURL} unzip ${HOME}/src/${CONCRETE5ZIP} -d ${HOME}/src/ sudo cp -pr ${HOME}/src/$(echo ${CONCRETE5ZIP} | sed -e 's/.zip//')/* ${DOCUMENT_ROOT}/ sudo chown -R nginx. ${DOCUMENT_ROOT}/ sudo cp -p /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig sudo sed -i "s/worker_processes[[:space:]]+[0-9]+/worker_processes $(cat /proc/cpuinfo | grep processor | wc -l)/g" /etc/nginx/nginx.conf sudo mkdir /etc/nginx/conf.d/BACKUP sudo mv /etc/nginx/conf.d/*.conf /etc/nginx/conf.d/BACKUP/ cat << _EOL_ > 000_VHOST.conf server { server_name ${HOSTNAME}; root ${DOCUMENT_ROOT}; location / { index index.php index.html index.htm; } if ($uri ~ "^(.+?.php?)(/.*)$") { set $path_info $2; } if (!-e $request_filename) { rewrite ^(.+)$ /index.php last; } location ~* .(js|css|png|jpg|jpeg|gif|ico)$ { expires 24h; log_not_found off; } location ~ .php$ { try_files $uri =404; fastcgi_split_path_info ^(.+.php)(/.+)$; include fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9000; } } _EOL_ sudo mv 000_VHOST.conf /etc/nginx/conf.d/ sudo chown root. /etc/nginx/conf.d/000_VHOST.conf sudo service nginx start sudo chkconfig nginx on wget -O ${HOME}/bin/install-concrete5.php https://raw.githubusercontent.com/concrete5japan/concrete5/master/cli/install-concrete5.php sudo php ${HOME}/bin/install-concrete5.php --db-server=localhost --db-username=$(cat ${PARAMFILE} | egrep '(^DBPARAM)' | awk '{print $3}') --db-password=$(cat ${PARAMFILE} | egrep '(^DBPARAM)' | awk '{print $NF}') --db-database=$(cat ${PARAMFILE} | egrep '(^DBPARAM)' | awk '{print $2}') --starting-point=standard --admin-password=$(cat ${PARAMFILE} | egrep '(^DBPARAM)' | awk '{print $NF}') --admin-email=${ADMIN_EMAIL} --target=${DOCUMENT_ROOT} --site=${SITENAME} --core=${DOCUMENT_ROOT}/concrete --reinstall=no sudo reboot