Fedora 25: WordPressをインストールする

コンテンツマネージメントシステムのWordPressをインストールする手順を記載します。

1 WordPressをインストールする

  • WORDPRESS_DOMAINをお使いの環境のFQDNに変更してください。
  • この記事ではhttpsの為にデフォルトのSSL/TLS証明書を使っています。別にSSL/TLS証明書を用意している場合は変更してください。
#!/bin/sh

set -e

fedora_install_php()
{
  sudo dnf install -y php-pecl-imagick php-pecl-ssh2 \
       php-opcache php-pecl-zendopcache php-pecl-apc
}

fedora_install_mysql()
{
  sudo dnf install -y mariadb-server
  sudo systemctl enable mariadb
  sudo systemctl start mariadb

  cat<<EOF | sudo mysql -u root
create database wordpress;
grant all privileges on wordpress.* to wordpress@localhost
  identified by '${WORDPRESS_PASSWD}';
flush privileges;
exit
EOF
}

fedora_install_wordpress()
{
  sudo dnf install -y wordpress

  cat <<EOF | sudo tee /etc/wordpress/wp-config.php
<?php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', '${WORDPRESS_PASSWD}');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
define('AUTH_KEY', '$(openssl rand -base64 64 | head -c 64)');
define('SECURE_AUTH_KEY', '$(openssl rand -base64 64 | head -c 64)');
define('LOGGED_IN_KEY', '$(openssl rand -base64 64 | head -c 64)');
define('NONCE_KEY', '$(openssl rand -base64 64 | head -c 64)');
define('AUTH_SALT', '$(openssl rand -base64 64 | head -c 64)');
define('SECURE_AUTH_SALT', '$(openssl rand -base64 64 | head -c 64)');
define('LOGGED_IN_SALT', '$(openssl rand -base64 64 | head -c 64)');
define('NONCE_SALT', '$(openssl rand -base64 64 | head -c 64)');
\$table_prefix  = 'wp_';
define('WP_CONTENT_DIR', '/var/lib/wordpress/wp-content');
define('DISALLOW_FILE_MODS', false);
define('AUTOMATIC_UPDATER_DISABLED', false);
define('WP_DEBUG', false);
\$_SERVER['HTTPS'] = 'on';
define('FS_METHOD', 'direct');
if ( !defined('ABSPATH') )
  define('ABSPATH', '/usr/share/wordpress');
require_once(ABSPATH . 'wp-settings.php');
?>
EOF

  sudo mkdir -p /var/lib/wordpress/wp-content
  for dir in languages plugins themes uploads; do
    sudo mkdir /var/lib/wordpress/wp-content/${dir}
  done
  sudo chown -R apache:apache /var/lib/wordpress/wp-content

  for top in languages plugins themes; do
    cd /var/lib/wordpress/wp-content/${top}/
    for dir in /usr/share/wordpress/wp-content/${top}/*; do
      sudo ln -s "${dir}"
    done
  done
}

fedora_install_apache()
{
  sudo dnf install -y httpd mod_ssl

  cat <<EOF | sudo tee /etc/httpd/conf.d/wordpress.conf
<VirtualHost _default_:443>
  SSLEngine on
  SSLCertificateFile /etc/pki/tls/certs/localhost.crt
  SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

  ServerName ${WORDPRESS_DOMAIN}
  DocumentRoot /usr/share/wordpress/
  DirectoryIndex index.php index.html
  ErrorLog /var/log/httpd/wp-error.log
  TransferLog /var/log/httpd/wp-access.log
  Alias /wp-content /var/lib/wordpress/wp-content

  <Directory /usr/share/wordpress>
    Options FollowSymLinks
    Require all granted
  </Directory>

  <Directory /var/lib/wordpress/wp-content>
    Options FollowSymLinks
    Require all granted
  </Directory>
</VirtualHost>
EOF

  sudo setsebool -P httpd_can_sendmail 1
  sudo firewall-cmd --add-service=https --permanent
  sudo firewall-cmd --reload
  sudo systemctl enable httpd
  sudo systemctl restart httpd
}

fedora_main()
{
  [ -z "${WORDPRESS_DOMAIN}" ] && \
    WORDPRESS_DOMAIN=fedora-25-wordpress.hiroom2.com
  WORDPRESS_PASSWD=$(openssl rand -base64 32 | head -c 32)

  fedora_install_php
  fedora_install_mysql
  fedora_install_wordpress
  fedora_install_apache
}

fedora_main

2 WordPressへアクセスする

WORDPRESS_DOMAINで設定したFQDNにhttps経由でアクセスします。

https://<WORDPRESS_DOMAIN>

マシンの証明書を組み込んでいないので、Chromeの場合は以下の警告が出てアクセスできません。"ADVANCED"を表示させて"Proceed to <server> (unsafe)"をクリックすることで、このウェブサイトに例外的にアクセスするようにします。

Firefox等でも同様にこのウェブサイトを例外的にアクセスできるようにしてください。

0001_YourConnectionIsNotPrivate.png

ロケールの設定画面が表示されます。

0002_SetLocale.png

アカウント作成画面が表示されます。アカウント作成の後にログインして、ブログ記事の投稿やWordPressの管理が可能になります。

0003_WordPress.png