Apple シリコン のローカル環境で WordPressをインストールしてみました。
導入したMacの仕様 MacMini 16Gメモリ 1Tb
ちまたでは、Dokker,VirtualBox(vagrant),Mamp 等々の統合環境ではインストールできないという報告を目にします(2021年1月上旬現在)。
そこで、もともとMacOS(Big Sur 11.1 購入後macOSはアップデート済み)にインストールしてある phpとApacheを利用してローカル環境にインストールすることができました。ただ、BigSurでは phpは非推奨で、mysqlはインストールされていませんでした。
そこで、mysqlは HomeBrewよりインストールしてみました。
作業内容のメモです。
注:補足情報 OSのバージョンアップ時のトラブル
バージョン確認 (作業完了時)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
(base) khagiwara@MacMin-M1 WebServer % sysctl machdep.cpu.brand_string machdep.cpu.brand_string: Apple M1 (base) khagiwara@MacMin-M1 WebServer % sw_vers ProductName: macOS Big Sur 11.1 ProductVersion: 11.1 BuildVersion: 20C69 (base) khagiwara@MacMin-M1 WebServer % php -v WARNING: PHP is not recommended PHP is included in macOS for compatibility with legacy software. Future versions of macOS will not include PHP. PHP 7.3.24-(to be removed in future macOS) (cli) (built: Nov 23 2020 06:45:14) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.24, Copyright (c) 1998-2018 Zend Technologies (base) khagiwara@MacMin-M1 WebServer % apachectl -v Server version: Apache/2.4.46 (Unix) Server built: Nov 23 2020 03:38:13 (base) khagiwara@MacMin-M1 ~ % brew -v Homebrew 2.7.1-119-g4a90a5a Homebrew/homebrew-core (git revision eb5e0; last commit 2021-01-03) (base) khagiwara@MacMin-M1 ~ % mysql -V mysql Ver 14.14 Distrib 5.7.32, for osx10.16 (x86_64) using EditLine wrapper |
homebrewのインストール
1 2 3 |
mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew |
1 2 3 |
echo 'export PATH=$PATH:[インストール先のパス]/homebrew/bin"' >> ~/.zshrc |
mysqlのインストール
1 2 3 4 5 6 7 8 9 10 11 12 13 |
(base) khagiwara@MacMin-M1 WebServer % brew search mysql ==> Formulae automysqlbackup mysql-sandbox mysql ✔ mysql-search-replace mysql++ mysql@5.6 mysql-client mysql@5.7 ✔ mysql-client@5.7 mysqltuner mysql-connector-c++ ・ ・ 「以下略」 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
(base) khagiwara@MacMin-M1 ~ % brew install mysql@5.7 Initialized empty Git repository in /Users/khagiwara/homebrew/.git/ remote: Enumerating objects: 4, done. ・ ・ To have launchd start mysql@5.7 now and restart at login: brew services start mysql@5.7 Or, if you don't want/need a background service you can just run: /Users/khagiwara/homebrew/opt/mysql@5.7/bin/mysql.server start (base) khagiwara@MacMin-M1 ~ % mysql -V mysql Ver 14.14 Distrib 5.7.32, for osx10.16 (x86_64) using EditLine wrapper |
1 2 3 |
echo 'export PATH="「[インストール先のパス]/homebrew/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
(base) khagiwara@MacMin-M1 opt % pwd /Users/khagiwara/homebrew/opt (base) khagiwara@MacMin-M1 opt % ls -l total 0 lrwxr-xr-x 1 khagiwara staff 22 1 3 09:27 cmake -> ../Cellar/cmake/3.19.2 lrwxr-xr-x 1 khagiwara staff 24 1 4 06:20 mysql -> ../Cellar/mysql/8.0.22_1 lrwxr-xr-x 1 khagiwara staff 26 1 3 09:34 mysql@5.7 -> ../Cellar/mysql@5.7/5.7.32 lrwxr-xr-x 1 khagiwara staff 24 1 4 06:20 mysql@8.0 -> ../Cellar/mysql/8.0.22_1 lrwxr-xr-x 1 khagiwara staff 28 1 3 09:30 openssl -> ../Cellar/openssl@1.1/1.1.1i lrwxr-xr-x 1 khagiwara staff 28 1 3 09:30 openssl@1.1 -> ../Cellar/openssl@1.1/1.1.1i lrwxr-xr-x 1 khagiwara staff 25 1 4 06:11 protobuf -> ../Cellar/protobuf/3.14.0 lrwxr-xr-x 1 khagiwara staff 25 1 4 06:11 protobuf@3.14 -> ../Cellar/protobuf/3.14.0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
(base) khagiwara@MacMin-M1 ~ % brew services start mysql@5.7 ==> Tapping homebrew/services Cloning into '/Users/khagiwara/homebrew/Library/Taps/homebrew/homebrew-services'... remote: Enumerating objects: 18, done. remote: Counting objects: 100% (18/18), done. remote: Compressing objects: 100% (18/18), done. remote: Total 1063 (delta 10), reused 0 (delta 0), pack-reused 1045 Receiving objects: 100% (1063/1063), 305.21 KiB | 573.00 KiB/s, done. Resolving deltas: 100% (445/445), done. Tapped 1 command (41 files, 392.7KB). ==> Successfully started `mysql@5.7` (label: homebrew.mxcl.mysql@5.7) |
mysqlの初期化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
(base) khagiwara@MacMin-M1 ~ % mysql_secure_installation Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0 Please set the password for root here. New password: Re-enter new password: ・ ・ Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Success. All done! |
Apache httpd.conf 及び php.iniの修正
1 2 3 4 |
#LoadModule php7_module libexec/apache2/libphp7.so // コメントアウトを外す => LoadModule php7_module libexec/apache2/libphp7.so |
1 2 3 4 |
User _www Group apache |
1 2 3 4 |
$ mysql_config --socket /tmp/mysql.sock |
1 2 3 4 |
pdo_mysql.default_socket=/tmp/mysql.sock mysqli.default_socket = /tmp/mysql.sock |
1 2 3 4 5 |
(base) khagiwara@MacMin-M1 ~ % sudo apachectl restart Password: (base) khagiwara@MacMin-M1 ~ % |
動作確認 サンプルプログラム
1 2 3 4 |
(base) khagiwara@MacMin-M1 Documents % pwd /Library/WebServer/Documents |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<!DOCTYPE html> <html lang="jp"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <?php $dsn = 'mysql:dbname=wp;host=localhost'; $user = "root"; $pass = "xxxxxxxxxxxxxxxx"; try{ $pdo = new PDO($dsn,$user,$pass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $pdo->query("SELECT Host, User FROM mysql.user;"); $users = $stmt->fetchAll(PDO::FETCH_ASSOC); print_r( $users ); echo "接続できました。"; } catch (PDOException $e) { exit('データベースに接続できませんでした。' . $e->getMessage()); }</pre> |
ワードプレスのインストール
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | wp | +--------------------+ 2 rows in set (0.06 sec) mysql> SELECT Host, User FROM mysql.user; +-----------+------------------+ | Host | User | +-----------+------------------+ | localhost | mysql.session | | localhost | mysql.sys | | localhost | root | | localhost | wpuser | +-----------+------------------+ 4 rows in set (0.01 sec) |
1 2 3 4 5 6 7 8 9 10 |
## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost 127.0.0.1 wordpress.local |
コンテンツの配置はそれぞれ工夫した場所に配置すればいいのですが、ここでは、 /Library/WebServer/wordpress に設置することにしました。 ただ、 httpd.confでの公開権限も変更する必要がありました。
1 2 3 |
httpd.conf内 <Directory "/Library/WebServer/Documents"> =>変更 <Directory "/Library/WebServer"> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
・ ・ ・ <VirtualHost *:80> DocumentRoot "/Library/WebServer/wordpress/" ServerName wordpress.local ErrorLog "/private/var/log/apache2/wordpress.local-error_log" CustomLog "/private/var/log/apache2/wordpress.local-access_log" common <Directory "/Library/WebServer/wordpress/"> Options All AllowOverride All </Directory> </VirtualHost> ・ ・ |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
(base) khagiwara@MacMin-M1 wordpress % ls -al total 424 drwxrwxr-x 23 _www apache 736 1 4 07:46 . drwxr-xr-x 9 root wheel 288 1 3 22:40 .. -rwxrwxr-x 1 _www apache 336 1 4 07:46 .htaccess -rwxrwxr-x 1 _www apache 405 1 4 07:46 index.php -rwxrwxr-x 1 _www apache 19915 1 4 07:46 license.txt -rwxrwxr-x 1 _www apache 10089 1 4 07:46 readme.html -rwxrwxr-x 1 _www apache 7101 1 4 07:46 wp-activate.php drwxrwxr-x 98 _www apache 3136 1 4 07:46 wp-admin -rwxrwxr-x 1 _www apache 351 1 4 07:46 wp-blog-header.php -rwxrwxr-x 1 _www apache 2328 1 4 07:46 wp-comments-post.php -rwxrwxr-x 1 _www apache 3931 1 4 07:46 wp-config-sample.php -rwxrwxr-x@ 1 _www apache 4195 1 4 07:35 wp-config.php drwxrwxr-x 7 _www apache 224 1 4 07:46 wp-content -rwxrwxr-x 1 _www apache 3939 1 4 07:46 wp-cron.php drwxrwxr-x 223 _www apache 7136 1 4 07:46 wp-includes -rwxrwxr-x 1 _www apache 2496 1 4 07:46 wp-links-opml.php -rwxrwxr-x 1 _www apache 3300 1 4 07:46 wp-load.php -rwxrwxr-x 1 _www apache 49831 1 4 07:46 wp-login.php -rwxrwxr-x 1 _www apache 8509 1 4 07:46 wp-mail.php -rwxrwxr-x 1 _www apache 20975 1 4 07:46 wp-settings.php -rwxrwxr-x 1 _www apache 31337 1 4 07:46 wp-signup.php -rwxrwxr-x 1 _www apache 4747 1 4 07:46 wp-trackback.php -rwxrwxr-x 1 _www apache 3236 1 4 07:46 xmlrpc.php |
バージョンアップはバックアップとして以下のフォルダーに保存されていました。
1 2 3 4 5 6 7 8 9 10 |
MacMin-M1:apache2 root# pwd /System/Volumes/Data/Users/Shared/Relocated Items/Configuration/private/etc/apache2 MacMin-M1:apache2 root# ls -al total 48 drwxr-xr-x 4 root wheel 128 Feb 5 08:12 . drwxr-xr-x 3 root wheel 96 Feb 3 05:21 .. drwxr-xr-x 3 root wheel 96 Feb 5 08:21 extra -rw-r--r-- 1 root wheel 21679 Jan 4 07:42 httpd.conf |