====== WordPressインストール ====== [[https://am-i774.f5.si//|WordPress]]をRaspbian(buster)へ構築した際のメモ\\ **参考情報** [[https://www.ingenious.jp/articles/howto/raspberry-pi-howto/wordpress-server-setup/|Raspberry Pi WordPressサーバの構築]] ===== PHP7.4インストール ===== WordPressのシステム要件であるPHP7.4をインストールする。ただし、Raspbian(buster)のリポジトリには7.3までしか存在しないため、[[https://deb.sury.org/|SURY PPAリポジトリ]]からインストールする。 まず、SURY PPAリポジトリを使用するため必要なパッケージをインストールする。 $ sudo apt install lsb-release apt-transport-https ca-certificates PHPのGPGキーを取得する。 $ sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg SURY PPAリポジトリ情報を追加する。 $ echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list deb https://packages.sury.org/php/ buster main aptのパッケージ情報を更新し、インストール可能なPHPバージョンを確認する。 $ sudo apt-get update -y $ sudo apt-get upgrade $ sudo apt -a list php7.4 PHP7.4をインストールする。 $ sudo apt-get install php7.4 $ php -v ==== PHPモジュールのインストール ==== WordPressに必要なPHPモジュールをインストールする。 $ sudo apt-get install php7.4-curl php7.4-json php7.4-mbstring php7.4-mysql php7.4-imagick php7.4-xml php7.4-zip php7.4-intl $ sudo apt-get install php7.4-fpm ==== PHP設定 ==== PHPの設定を行う。 $ vi /etc/php/7.4/apache2/php.ini [mbstring] ; language for internal character representation. ; This affects mb_send_mail() and mbstring.detect_order. ; http://php.net/mbstring.language mbstring.language = Japanese memory_limit = 128M post_max_size = 40M upload_max_filesize = 30M ===== ApacheのPHPモジュール設定 ===== Apacheで稼働しているPHPバージョンを、phpinfoで確認する。 Apacheで有効になっているモジュールを確認する。 $ ls -l /etc/apache2/mods-available/php* /etc/apache2/mods-enabled/php* 古いバージョンが有効であれば無効化し、PHP7.4を有効化する。 $ sudo a2dismod php7.3.conf php7.3.load $ sudo a2enmod php7.4.conf php7.4.load $ ls -l /etc/apache2/mods-available/php* /etc/apache2/mods-enabled/php* Apacheを再起動し、新しいモジュールを有効化する。 $ sudo systemctl restart apache2 $ sudo systemctl status apache2 モジュールのバージョンは、phpinfoで確認する。 ==== ServerNameディレクティブの設定 ==== Apacheをマルチドメイン構成にしているので、該当のドメイン設定ファイルを編集する。 $ su vi /etc/apache2/sites-available/domain2.com ServerName domain2.com ==== DirectoryIndexディレクティブの設定 ==== Apacheへのアクセスでファイル名が省略された時にデフォルトで**index.php**が選択されるように設定する。 $ sudo vi /etc/apache2/mods-available/dir.conf **index.php**を最初に設定する。 DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm ==== Rewriteモジュールの有効化 ==== Apacheの有効なモジュールに**rewrite_module**があることを確認する。 $ sudo apache2ctl -M (snip) rewrite_module (shared) 有効でない場合は有効化する。 $ sudo a2enmod rewrite 新たに有効化した場合はApacheを再起動する。 $ sudo systemctl restart apache2 $ sudo systemctl status apache2 ==== MariaDBのインストール ==== $ sudo apt install mariadb-server-10.3 === MariaDBの初期設定 === $ sudo mysql_secure_installation (snip) Set root password? [Y/n] Y (snip) Remove anonymous users? [Y/n] Y (snip) Disallow root login remotely? [Y/n] Y (snip) Remove test database and access to it? [Y/n] Y (snip) Reload privilege tables now? [Y/n] Y (snip) ==== 初期設定の変更 ==== $ sudo mysql -u root -p (snip) MariaDB [(none)]> grant all privileges on *.* to root@localhost identified by 'Password' with grant option; (snip) MariaDB [(none)]> flush privileges; (snip) MariaDB [(none)]> quit DB接続を確認する。 $ mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 2026 Server version: 10.3.38-MariaDB-0+deb10u1 Raspbian 10 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> quit Bye $ ==== データベースの作成 ==== $ mysql -u root -p Enter password: (snip) MariaDB [(none)]> CREATE DATABASE db_wordpress; (snip) MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | db_wordpress | | information_schema | | performance_schema | +--------------------+ 4 rows in set (0.002 sec) MariaDB [(none)]> quit Bye $ ===== WordPressのインストール ===== WordPresssサイトから[[https://ja.wordpress.org/latest-ja.tar.gz|最新版]]をダウンロードし、Document Rootに展開します。 $ wget https://ja.wordpress.org/latest-ja.tar.gz $ ls -l $ tar tvzf latest-ja.tar.gz $ tar xvzf latest-ja.tar.gz $ cp -R wordpress/* /var/www/html/wordpress/ $ sudo chown -R www-data:www-data /var/www/html/wordpress/ インストールスクリプトを使ってセットアップします。 https://ドメイン名/wp-admin/install.php ===== Apache2設定例 ===== ServerName www.domain2.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html/www.domain2.com Options FollowSymLinks AllowOverride All Require all granted ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined RewriteEngine on RewriteCond %{SERVER_NAME} =www.domain2.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] ServerName www.domain2.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html/www.domain2.com Options FollowSymLinks AllowOverride All Require all granted ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLCertificateFile /etc/letsencrypt/live/www.domain2.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/www.domain2.com/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf