Last active
September 7, 2025 18:54
-
-
Save techfish-11/3eb53c10752e79e06ed3f003e607923e to your computer and use it in GitHub Desktop.
俺用WordPressインストールスクリプト
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # WordPress日本語版 + Nginx + MySQL/MariaDBをUbuntu Serverにプロダクションレディでセットアップするスクリプト | |
| set -e | |
| apt update && apt install curl | |
| # --- 設定値(必要に応じて編集) --- | |
| DB_NAME="wordpress" | |
| DB_USER="wpuser" | |
| DB_PASS="secure_password_123" | |
| WP_DOMAIN="example.com" | |
| WP_DIR="/var/www/${WP_DOMAIN}" | |
| WP_LOCALE="ja" | |
| WP_VERSION="$(curl -s https://api.wordpress.org/core/version-check/1.7/ | grep -oP '(?<="version":")[^"]+' | head -1)" | |
| # ---------------------------------- | |
| echo "==== パッケージアップデート ====" | |
| sudo apt update && sudo apt upgrade -y | |
| echo "==== 必要なパッケージのインストール ====" | |
| sudo apt install -y nginx mariadb-server php-fpm php-mysql php-xml php-gd php-curl php-mbstring php-zip php-intl php-xmlrpc unzip wget curl | |
| echo "==== MySQL セキュリティ設定とDB作成 ====" | |
| sudo systemctl enable mariadb | |
| sudo systemctl start mariadb | |
| # mysql_secure_installation 相当の自動化 | |
| sudo mysql -e "DELETE FROM mysql.user WHERE User='';" | |
| sudo mysql -e "DROP DATABASE IF EXISTS test;" | |
| sudo mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';" | |
| sudo mysql -e "FLUSH PRIVILEGES;" | |
| # DB&ユーザー作成 | |
| sudo mysql -e "CREATE DATABASE IF NOT EXISTS ${DB_NAME} DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" | |
| sudo mysql -e "CREATE USER IF NOT EXISTS '${DB_USER}'@'localhost' IDENTIFIED BY '${DB_PASS}';" | |
| sudo mysql -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'localhost';" | |
| sudo mysql -e "FLUSH PRIVILEGES;" | |
| echo "==== WordPress日本語版のダウンロードと配置 ====" | |
| sudo mkdir -p "${WP_DIR}" | |
| sudo chown $USER:$USER "${WP_DIR}" | |
| wget "https://ja.wordpress.org/latest-ja.zip" -O /tmp/wordpress-ja.zip | |
| unzip -q /tmp/wordpress-ja.zip -d /tmp/ | |
| rsync -av /tmp/wordpress/ "${WP_DIR}/" | |
| rm -rf /tmp/wordpress /tmp/wordpress-ja.zip | |
| echo "==== wp-config.php の作成 ====" | |
| cd "${WP_DIR}" | |
| cp wp-config-sample.php wp-config.php | |
| sed -i "s/database_name_here/${DB_NAME}/" wp-config.php | |
| sed -i "s/username_here/${DB_USER}/" wp-config.php | |
| sed -i "s/password_here/${DB_PASS}/" wp-config.php | |
| # パーミッション設定 | |
| sudo chown -R www-data:www-data "${WP_DIR}" | |
| sudo find "${WP_DIR}" -type d -exec chmod 750 {} \; | |
| sudo find "${WP_DIR}" -type f -exec chmod 640 {} \; | |
| echo "==== Nginxサーバーブロックの作成 ====" | |
| NGINX_CONF="/etc/nginx/sites-available/${WP_DOMAIN}" | |
| sudo tee "${NGINX_CONF}" > /dev/null <<EOF | |
| server { | |
| listen 80; | |
| server_name ${WP_DOMAIN}; | |
| root ${WP_DIR}; | |
| index index.php index.html index.htm; | |
| client_max_body_size 64M; | |
| location / { | |
| try_files \$uri \$uri/ /index.php?\$args; | |
| } | |
| location ~ \.php\$ { | |
| include snippets/fastcgi-php.conf; | |
| fastcgi_pass unix:/run/php/php$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')-fpm.sock; | |
| } | |
| location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|webp|ttf|woff|woff2|eot)\$ { | |
| expires max; | |
| log_not_found off; | |
| } | |
| location = /favicon.ico { log_not_found off; access_log off; } | |
| location = /robots.txt { log_not_found off; access_log off; } | |
| access_log /var/log/nginx/${WP_DOMAIN}_access.log; | |
| error_log /var/log/nginx/${WP_DOMAIN}_error.log; | |
| } | |
| EOF | |
| sudo ln -sf "${NGINX_CONF}" /etc/nginx/sites-enabled/ | |
| sudo nginx -t | |
| sudo systemctl reload nginx | |
| echo "==== ファイアウォールの設定(UFW) ====" | |
| sudo ufw allow 'Nginx Full' | |
| echo "==== 完了 ====" | |
| echo "WordPress日本語版のインストールが完了しました。" | |
| echo "ブラウザで http://${WP_DOMAIN} にアクセスしてセットアップを続行してください。" | |
| echo "" | |
| echo "【備考】" | |
| echo "- 管理者用のWordPressアカウントはWeb画面で作成してください。" | |
| echo "- 本番運用時はSSL(Let's Encrypt等)の導入を推奨します。" | |
| echo "- wp-config.phpやファイル権限は都度ご確認ください。" |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
私の環境は