MacのPHPをv7.4.5にアップデートしたらソコからゴツ面倒なコトになッた

この記事は約9分で読めます。
スポンサーリンク

当サイトには広告が含まれています。

(2020年4月)

Mac(HighSierra)のPHPをv7.4.5にアップデートしたら、phpMyAdminやWordPressにエラーが出たのでそちらもアップデート。

WordPressのアップデートは簡単だが、phpMyAdminは手動で面倒。

PHPのアップデートにより、post_max_sizeやupload_max_filesizeが初期値に戻ってしまうので、再設定する必要がある。

過去に書いた以下の記事に対して、多少追加しておいた。

関連:Macでサーバー(Apache,PHP,MySQL,phpMyAdmin,WordPress)を作る

関連:[Mac] PHPのバージョンが異なる問題と解決方法 [HighSierra]

phpMyAdminに36MB(zip圧縮)のSQLファイルをインポートすると途中で止まる問題は解決セヅ。
(phpMyAdminのconfig.default.phpの設定で解決、最下部に後述)

Apacheもv2.4.33→v2.4.43とできるようだが、上げたらページが表示されなくなった!

以下の手順で解決。

現在のApacheのバージョンやhttpd.confの場所を調べる
apachectl -V (大文字)

結果
Apache/2.4.33 (Unix)
/private/etc/apache2/httpd.conf

Homebrew版Apacheのインストール
brew install httpd
brew upgrade httpd ←Apacheのアップデート

sudo apachectl restart ←Apacheの再起動

再度調べる
apachectl -V

結果
Apache/2.4.33 (Unix)
/private/etc/apache2/httpd.conf

http://192.168.0.XX:8080/
It works!

http://192.168.0.XX/だと出ない

インストールを有効化するためMac再起動

再度調べる
apachectl -V

結果
Apache/2.4.43 (Unix) ← Homebrew版で上がっている
/usr/local/etc/httpd/httpd.conf ← Homebrew版で場所変化

httpd.conf.default を 旧httpd.conf を見て改変
(変更箇所が多いので旧httpd.confの上書きでは失敗する)

-----

Apacheが起動しない場合

apachectl configtest

でのエラーを見る。

/private/etc/apache2/httpd.conf

の記述にエラーがあると行数を示してくれる。

brew uninstall httpd

でHomebrew版Apacheの削除後、再度入れようとするとmacOSが古くて失敗するので、Mac版でいくしかない。

-----

8080を80に変更(2箇所)

-----

mod_rewrite.soのコメントアウトを外す

-----

DocumentRoot “/users/www”
<Directory “/users/www”>

-----

# PHP7 of Homebrew
LoadModule php7_module /usr/local/Cellar/php/7.4.5/lib/httpd/modules/libphp7.so
(PHPのアップデートによりパスが変化するので注意)

-----

#ファイルアップロード上限
php_value memory_limit 2048M
php_value post_max_size 1024M
php_value upload_max_filesize 512M

#実行時間
php_value max_execution_time 600

-----

/で切った場合の優先順位

<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>

-----

拡張子規定

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

-----

php.iniのタイムゾーン設定やdisplay_errorsの設定。

関連:[PHP] 時間のズレを直す方法 [Mac]

-----

Apacheの再起動
sudo apachectl restart

振舞を確認する。

補記

Apacheが動いているかは、Macのアクティビティモニタで分かる。

プロセス名
Apache:httpd
MySQL:mysqld

/usr/local/etc/httpd/httpd.conf の php_value max_execution_time は phpinfo の max_execution_time の Local Value(左側)に相当

/usr/local/etc/php/7.4/php.ini の max_execution_time(秒) は 同右側に相当

Homebrew版Apacheの削除
brew uninstall httpd

削除してもMac版(v2.4.33)は残る

Apacheの起動
sudo apachectl start

Apacheの再起動
sudo apachectl restart

Homebrew内の各アップデートでありインストールではない
brew upgrade httpd
brew upgrade php
brew upgrade mysql
brew upgrade phpmyadmin

brew管理下の全てをアップデート
brew upgrade

インストール
brew install phpmyadmin

再インストール
brew reinstall phpmyadmin

mysqlのバージョン確認(接続前)
mysql –version

接続後
select version();

Homebrewのアップデート

バージョン確認
brew –version

Homebrew自体のアップデート
brew update

brew update時に「homebrew-core is a shallow clone.」でエラーとなる場合は、エラーの指示通り以下を実行。

git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch –unshallow

過去の更新データを全てダウンロードするため時間がかかる。

補記(2022年1月)

各種アップデートで新版が検出されるも、Macが古いと、以下のようにエラーとなる。

Warning: You are using macOS 10.13.
We (and Apple) do not provide support for this old version.
You will encounter build failures with some formulae.
Please create pull requests instead of asking for help on Homebrew’s GitHub, Twitter or any other official channels. You are responsible for resolving any issues you experience while you are running this old version.

Error: Your Xcode (8.1) is too outdated.
Please update to Xcode 10.1 (or delete it).
Xcode can be updated from the App Store.

macOSがHigh Sierra(10.13.6)だと、以下が検出されるもアップデートできなかった。

・httpd(Apache) 2.4.43 → 2.4.52
・php 7.4.5_2 → 8.1.2
・mysql 8.0.19 → 8.0.28
・phpmyadmin 5.0.2 → 5.1.2

MacBook Air(13-inch, Mid 2011)は、High Sierra(10.13.6)が最終なのだ…

High Sierra(髙死鰓)10.13.6

関連:10年落ちのMacBook Air(13-inch, Mid 2011)

追記:以下の方法でアップデートできるコトを確認。

関連:古いMacにXcodeをインストールする方法とHomebrewでのアップデート

mysql

Homebrew版mysqlの削除
brew uninstall mysql
削除してもデータは残る

データも削除
rm -rf /usr/local/var/mysql

インストール
brew install mysql

手動起動
mysql.server start

起動後に設定
mysql_secure_installation

phpMyAdminにてデータベース「wordpress」を作成してから/wordpress/wp-admin/install.phpで「ようこそ画面」。

自動起動

ApacheとPHPはMac起動で起動するが、MySQLは起動だけでなくMacに対面ログインか、コマンドでmysql.server startしなければ起動しない。

自動起動有効化
brew services start mysql

自動起動無効化
brew services stop mysql

自動起動かを調べる
brew services list

started:有効
stopped:無効

httpd,mysql,phpがstartedなのに、対面ログインかコマンドでmysql.server startしないとphpMyAdminにログインできない罠(=mysqlが起動していない)。

LaunchDaemons内のhomebrew.mxcl.mysql.plistを調べるが意味不明。

brew services list

startedの色が異なるが意味不明、homebrew.mxcl.mysql.plist内のパスが意味をなさヅ意味不明、パスを通すも変化セヅ昭恵並に意味不明、mysqlを完全削除し再インストールしても自動起動不可で、何もかも不明。

sudo ln -fs /usr/local/opt/mysql/8.0.19/homebrew.mxcl.mysql.plist /Library/LaunchAgents/ でも無理。

phpMyAdmin

phpMyAdminで大ファイルのインポートに失敗する場合は、上述の容量設定に加え、以下も設定する。

/phpmyadmin/libraries/config.default.php

$cfg[‘ExecTimeLimit’] = 300;

$cfg[‘ExecTimeLimit’] = 0; (無制限)

にする。

Mac

ターミナルからMacの再起動
sudo reboot

Macのアップデートの確認
sudo softwareupdate –list

全部インストール
sudo softwareupdate –install –all

関連:Macでサーバー(Apache,PHP,MySQL,phpMyAdmin,WordPress)を作る

関連:[Mac] PHPのバージョンが異なる問題と解決方法 [HighSierra]

タイトルとURLをコピーしました