- Mac開発者のためのマルチパートブログシリーズの最初の部分
- Homebrewのインストール
- Big Sur Required Libraries
- Apacheのインストール
- トラブルシューティングヒント
- Visual Studio Code
- Apache Configuration
- ユーザー&グループ
- Servername
- Sites FolderSitesフォルダを作成する必要があります。 これは、端末またはFinderで行うことができます。 この新しいSitesindex.html<h1>My User Web Root</h1>のようなダミーコンテンツ mkdir ~/Sitesecho "<h1>My User Web Root</h1>" > ~/Sites/index.html
- 非Sudo httpdサービス開始のトラブルシューティング
- PHPのインストール
- Apache PHP Setup-Part1
- PHP Switcher Script
- あなたのパスを確認してください
- PHP切り替えのテスト
- Grav CMSで設定をテストします!Gravをすばやくインストールしてテストするよりも、新しい強力な設定をテストする方が良い方法は何ですか?
- 特定の/最新のPHPバージョンのアクティブ化
Mac開発者のためのマルチパートブログシリーズの最初の部分
パート1:Macos11.0BIG Sur Web開発環境
MacosでWebアプリケーションを開発することは本当の喜びです。 Apache、PHP、MySQLの上に素晴らしいUIを提供する人気のあるMAMP Proなど、開発環境を設定するための多くのオプションがあります。 しかし、MAMP Proには遅いダウンがある、または古いバージョンがない、または設定テンプレートと非標準ビルドの制限的なシステムのために単に動作が悪
人々がしばしば別のアプローチを探すのはこのような時代ですが、幸いにもそれがあり、セットアップには比較的簡単です。このブログ記事では、Apache2の設定と設定について説明します。4と複数のPHPバージョン。 この2つの記事シリーズの2番目のブログ記事では、MySQL、Apache仮想ホスト、APCキャッシュ、およびXdebugのインストールについて説明します。
2019/11/27PHP8.0に関する情報を追加するように更新
2020/11/13macOS11.0Big Surのリリースを反映するように更新
2019/12/02PHP7.4の最新リリースと公式2019/08/10macOS10のリリースを反映して更新しました。2018/12/12PHP7.3の最新リリースとBrewからのPHP7.0の削除を反映するように更新しました。
過去にHomebrew/php
Homebrew/core
アプローチにアップグレードしようとしている場合は、最初に新しいアップグレードHomebrewに従うことによって、現在のインストールをクリーンアップする必要があります。
このガイドは経験豊富なweb開発者を対象としています。 あなたが初心者の開発者であれば、MAMPまたはMAMP Proを使用してより良いサービスを受けることができます。XCodeがまだインストールされていない場合は、homebrewで使用されるコマンドラインツールを最初にインストールすることをお勧めします。
xcode-select --install
Homebrewのインストール
このプロセスは、Homebrewと呼ばれるmacOSパッケージマネージャーに大きく依存しています。 brew
コマンドを使用すると、macに強力な機能を簡単に追加できますが、最初にインストールする必要があります。 これは簡単なプロセスですが、ターミナル(/Applications/Utilities/Terminal
)アプリケーションを起動してから、次のように入力する必要があります。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
ターミナルのプロンプトに従って、必要に応じてパスワードを入力してください。 これには数分かかるかもしれませんが、完了したら、brew
正しくインストールされていることを確認するための簡単な方法は、単に入力します。
brew --version
Homebrew 2.5.10Homebrew/homebrew-core (git revision 542ff0; last commit 2020-11-13)
おそらく、次のコマンドを実行して、すべてが正しく設定されていることを確認する必要があります:p>
brew doctor
何かを修正する必要があるかどうかを指示します。
Big Sur Required Libraries
Big Surにfreshをインストールすると、以下のすべての手順を完了するときに不足していたいくつかのライブラリに遭遇しました。 簡単にするために、今すぐ実行してください:
brew install openssl
Apacheのインストール
a最新のmacOS11.0Big SurにはApache2.4がプリインストールされていますが、Appleはこのリリースで必要なスクリプトをいくつか削除しているため、Homebrewでこのバージョンを使用するのは簡単な作業ではなくなりました。 ただし、解決策は、Homebrew経由でApache2.4をインストールし、標準ポート(80/443)で実行するように構成することです。
組み込みのApacheが既に実行されている場合は、最初にシャットダウンし、自動ロードスクリプトを削除する必要があります。 新規インストールであっても、これらのコマンドをすべて順番に実行するだけでは本当に害はありません。
sudo apachectl stopsudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
今、Brewが提供する新バージョンをインストールする必要があります。
brew install httpd
オプションなしで、httpd
ソースからビルドする必要はないので、かなり迅速にインストールされます。 完了すると、次のようなメッセージが表示されます。
🍺 /usr/local/Cellar/httpd/2.4.46: 1,658 files, 27.9MB
新しいApacheサーバーが自動起動されるように設定する必要があります
brew services start httpd
HomebrewのApacheをインストールし、特権アカウントで自動起動するように設定しました。 すでに実行されているはずなので、ブラウザでサーバーに到達しようとすると、http://localhost:8080
を指すと、「動作します!”.
トラブルシューティングヒント
ブラウザがサーバーに接続できないというメッセージが表示された場合は、まず
ps -aef | grep httpd
Apacheが起動して実行されている場合は、いくつかのhttpdプロセスが表示されるはずです。
Apacheを再起動してみてください:
brew services restart httpd
再起動中に新しいターミナルタブ/ウィンドウでApacheエラーログを見て、何か無効であるか問題:
tail -f /usr/local/var/log/httpd/error_log
Apacheはbrew services
コマンドを介して制御されるため、使用する便利なコマンドは次のとおりです。
$ brew services stop httpd$ brew services start httpd$ brew services restart httpd
Visual Studio Code
過去のガTextEdit
プリインストールされているアプリケーション。 しかし、これはひどいエディタであり、Big Surのための私のガイドをテストするとき、私はエンコード、行番号の検索などの問題に遭遇し続けました。 より良い解決策は、単により良いエディタをインストールすることです。 だから、まだ驚くほど汎用性の高い、100%無料、Visual Studioのコードをインストールしてくださ Mac、Windows、Linuxで利用できますが、今はmacバージョンのみを気にしています。
Visual Studio Codeサイトに移動し、Mac用のダウンロードをクリックします
ダウンロードしたら、事前に指定されたアプリケーションの場所にアプリケーションをドラ 次に、コマンドラインツールをインストールするので、公式のステップバイステップの指示に従って、ターミナルからcode
コマンドを使
Apache Configuration
動作するwebサーバーができたので、ローカル開発サーバーとして機能するように構成を変更することをしたいと思います。Brewの最新バージョンでは、listenポートをデフォルトの8080
80
に手動で設定する必要があるため、Apacheの設定ファイル/usr/local/etc/httpd/httpd.conf
を編集する必要があります。上記の手順に従った場合は、Visual Studio Codeを使用してファイルを編集できるはずです。code
ターミナルコマンド。 ただし、デフォルトのTextEditorアプリケーションを使用して編集を実行する場合は、open -e
コマンドの後にファイルへのパスを使用できます。p>
という行を見つけます
Listen 8080
そしてそれを変更します80
:
80
:
Listen 80
次は、apacheのドキュメントルートを変更するために使用するように設定します。 これは、Apacheがファイルを提供するフォルダです。 デフォルトでは、ドキュメントルートは/usr/local/var/www
として構成されています。 これは開発マシンであるため、ドキュメントルートを変更して、自分のホームディレクトリ内のフォルダを指すようにしたいとしましょう。
DocumentRoot
という用語を検索すると、次の行が表示されます。
DocumentRoot "/usr/local/var/www"
これをユーザーディレクトリを指すように変更します。your_user
はユーザーアカウントの名前です。
DocumentRoot /Users/your_user/Sites
DocumentRoot /Users/your_user/Sites
DocumentRoot /Users/your_user/Sites
DocumentRoot /Users/your_user/Sites
DocumentRoot /Users/your_user/Sites
DocumentRoot /Users/your_user/Sites
また、documentroot行のすぐ下に<Directory>
タグ参照を変更する必要があります。 これはまた、新しいドキュメントルートを指すように変更する必要があります:TextEditはおそらくそれらをスマート引用符に変換しようとし、Apacheを再起動しようとすると構文エラーが発生するため、ディレクトリパスの周りの省略可能な引用符を削除しました。 引用符の周りを編集してそのままにしても、ドキュメントを保存すると変換が発生し、エラーが発生する可能性があります。同じ<Directory>
AllowOverride
設定がありますが、これは次のように変更する必要があります:
## AllowOverride controls what directives may be placed in .htaccess files.# It can be "All", "None", or any combination of the keywords:# AllowOverride FileInfo AuthConfig Limit#AllowOverride All
また、デフォルトでコメントアウトされているmod_rewriteを有効にする必要があります。 mod_rewrite.so
#
⌘
/
を削除して行のコメントを解除します(これは、単一または複数の行のコメントを解除してコメントを解除する簡単な方法です。
#
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
ユーザー&グループ
これで、ホームディレクトリのSites
フォルダを指すapache設定があります。 しかし、一つの問題はまだ存在します。 デフォルトでは、apacheはユーザーdaemon
daemon
httpd.conf
User
Group
Apacheが実行されるように設定するための二つの設定があります。 これらをユーザーアカウントと一致するように変更します(your_user
staff
:
User your_userGroup staff
Servername
Apacheは設定でサーバー名を持つのが好きですが、これはデフォルトで無効になっているため、次のように検索します。
#ServerName www.example.com:8080
そしてそれを次のように置き換えます。
ServerName localhost
Sites FolderSites
フォルダを作成する必要があります。 これは、端末またはFinderで行うことができます。 この新しいSites
index.html
<h1>My User Web Root</h1>
のようなダミーコンテンツ
mkdir ~/Sitesecho "<h1>My User Web Root</h1>" > ~/Sites/index.html
mkdir ~/Sitesecho "<h1>My User Web Root</h1>" > ~/Sites/index.html
apacheを再起動して、設定の変更が有効になっていることを確認します。
brew services stop httpdbrew services start httpd
Apacheの再起動時にエラーが発生した場合は、前に設定したDocumentRootブラウザを指すhttp://localhost
:8080
Shift
Reload
が必要な場合があります。P>
非Sudo httpdサービス開始のトラブルシューティング
私は一般的な問題の解決策を見つけるように、より多くのヒントと試してみるべきことで、このセクションを更新します。 いくつかの”ライブ”の助けを得るために私たちの#macos Discordチャットに飛び乗ってくださ今年、macOS Big Surでは、sudo
httpd
httpd.conf
で定義されたユーザー/グループとして実行されていましたが)、そのバージョンからこれにアップグレードした人にとっては、問題がありました。私は自分でいくつかの問題に遭遇しましたが、それをかなり簡単に動作させることができましたが、他の人はより広範な問題を報告しています。
brew services start httpd
を使用しているときにApacheが起動していない場合は、これらの手順を試してください。
まず、apacheを直接起動してみてください:
/usr/local/bin/httpd -k start
これはbrew servicesコマンドをバイパスし、多くの場合、特定の問題を出力します。 ログファイルに書き込むことができないという問題が報告されている場合は、現在のログhttpdログファイルをすべて削除してみてください。
rm -Rf /usr/local/var/log/httpd/*
次のようなメッセージが表示された場合Address already in use: AH00072: make_sock: could not bind to address
Listen
httpd.conf
:
Listen 0.0.0.0:80
PHPのインストール
Brewを介して既存のPHPのインストールがある場合は、このセクションを続行する前に、最初に私たちのアップグレードHomebrewガイドであなたのセットアップをクリーンアップする必要があります。2018年3月末まで、すべてのPHP関連の醸造はHomebrew/php
Homebrew/core
パ これはよりよく維持されるべきですが、はるかに完全ではないパッケージのセットです。PHP5.6、PHP7.0、およびPHP7。1はサポート外であり、本番環境では推奨されていませんが、これらのサポートされていないバージョンを開発環境でテストする正当な理由があります。 これらのバージョンは、icu4c
openssl
の最新バージョンを使用するために、「ソースから構築」する必要Php7.2から7.4まではBrewによって正式にサポートされていますが、これらもビルドする必要がありますが、かなり遅いことを覚えておいてくださ 私たちのガイドの最新バージョンでは、多くのバージョン(PHP8.0ビルドを含む)が事前に構築されているため、@shivammahturの新しいタップを使用します。
PHP8.0がリリースされたばかりで、インストールすることはできますが、互換性のあるPHPモジュールが完全に利用可能になるには時間がかかる場合があ
brew tap shivammathur/php
さまざまなバージョンのPHPをインストールし、必要に応じて簡単なスクリプトを使用してそれらを切り替えることによっ インストールしたくないバージョンを自由に除外してください。また、必要に応じてPHPの構成設定を微調整する必要があるかもしれません。 変更する一般的なことは、メモリ設定、またはdate.timezone
構成です。 PHPの各バージョンのphp.ini
ファイルは、次のディレクトリにあります。
/usr/local/etc/php/5.6/php.ini/usr/local/etc/php/7.0/php.ini/usr/local/etc/php/7.1/php.ini/usr/local/etc/php/7.2/php.ini/usr/local/etc/php/7.3/php.ini/usr/local/etc/php/7.4/php.ini/usr/local/etc/php/8.0/php.ini
この時点で、すべての端末タブとウィンドウを閉じることを強くお勧めします。 これは、次のステップを続行するために新しい端末を開くことを意味します。 これは、いくつかの本当に奇妙なパスの問題が既存の端末で発生する可能性があるため、強くお勧めします(私を信頼して、私はそれを見ました!).
これらのPHPバージョンはインストールされていますがリンクされていません。 PHPに切り替えるには5.6
例えば、次のように入力します。
brew unlink php && brew link --overwrite --force [email protected]
正しいバージョンになっていることを簡単にテストします。
php -v
PHP 5.6.40 (cli) (built: Jul 2 2020 04:41:54) Copyright (c) 1997-2016 The PHP GroupZend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
とに切り替えるには
php -v
PHP 5.6.40 (cli) (built: Jul 2 2020 04:41:54) Copyright (c) 1997-2016 The PHP GroupZend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
7.4
:
brew unlink php && brew link --overwrite --force [email protected]
正しく変更されていることを確認します:
php -v
PHP 7.4.12 (cli) (built: Oct 30 2020 00:56:27) ( NTS )Copyright (c) The PHP GroupZend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.12, Copyright (c), by Zend Technologies
Apache PHP Setup-Part1
PHPバージョンを正常にインストールしましたが、Apacheにそれらを使用するよ あなたは再び編集する必要があります/usr/local/etc/httpd/httpd.conf
LoadModule
mod_rewrite
モジュールでなければなりません:
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
この下に次のlibphp
モジュール:
LoadModule php5_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp5.so#LoadModule php7_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so#LoadModule php7_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so#LoadModule php7_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so#LoadModule php7_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so#LoadModule php7_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so#LoadModule php_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp.so
一度にPHPを処理するモジュールは1つしかないので、今のところ[email protected]
他のすべてのエントリはコメントアウトされていますが、コメント解除されています。 これは、Php要求を処理するためにPHP5.6を使用するようにApacheに指示します。 (私たちは、後でPHPのバージョンを切り替える機能を追加します)。
また、PHPのディレクトリインデックスを明示的に設定する必要があるので、このブロックを検索します。
<IfModule dir_module> DirectoryIndex index.html</IfModule>
次のように置き換えます。
<IfModule dir_module> DirectoryIndex index.php index.html</IfModule><FilesMatch \.php$> SetHandler application/x-httpd-php</FilesMatch>
ファイルを保存してApacheを停止し、PHPをインストールしたので、再度起動します:PHPがインストールされ、期待どおりに実行されているかどうかをテストする最良の方法は、phpinfo()を使用することです。 これは実稼働マシンに残しておきたいものではありませんが、開発環境では非常に貴重です。info.php
Sites/
http://localhost/info.php
にポイントすると、光沢のあるPHP情報ページが表示されます:p>
同様のphpinfo結果が表示された場合は、おめでとうございます! これで、ApacheとPHPが正常に実行されました。 他のPHPバージョンをテストするには、LoadModule ... [email protected] ...
エントリをコメントし、他のいずれかのコメントを解除します。 その後、単にapacheを再起動し、同じページをリロードします。
PHP Switcher Script
PHP5.6を使用するようにApacheをハードコードしましたが、実際にはバージョンを切り替えることができるようにしたいと考えています。 幸いにも、いくつかの勤勉な個人はすでに私たちのためにハードワークを行い、非常に便利な小さなPHPスイッチャースクリプトを書いています。このsphp
スクリプトがPHP8.0をサポートするように更新されました。 そのバージョンを使用する場合は、以下のプロセスを繰り返して最新バージョンを入手してください。私たちは、brewの標準にsphp
/usr/local/bin
:
curl -L https://gist.githubusercontent.com/rhukster/f4c04f1bf59e0b74e335ee5d186a98e2/raw/0c36a5067fbd63e6a36700a6aaa119df0836bdfc/sphp.sh > /usr/local/bin/sphpchmod +x /usr/local/bin/sphp
あなたのパスを確認してください
自作は、その優先を追加している必要があります/usr/local/bin
と/usr/local/sbin
/usr/local/bin
/usr/bin
/usr/local/sbin
/usr/sbin
~/.zshrc
ファイル。 シェルで一時的に行うには、次のように入力します:
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
PHP切り替えのテスト
これらの手順を完了したら、コマンドを使用してPHPバージョンを切り替えることができるはずですsphp
その後にPHPバージョンの二桁の値を続けます。
sphp 7.1
おそらく、あなたのバージョンを入力する必要があります。管理者パスワード、そしてそれはあなたにいくつかのフィードバックを与える必要があります:
Switching to [email protected]
Switching to [email protected] your shellUnlinking /usr/local/Cellar/[email protected]/5.6.40... 0 symlinks removedUnlinking /usr/local/Cellar/[email protected]/7.1.33... 0 symlinks removedUnlinking /usr/local/Cellar/[email protected]/7.2.34... 0 symlinks removedUnlinking /usr/local/Cellar/php/7.4.12... 24 symlinks removedLinking /usr/local/Cellar/php/7.4.12... 24 symlinks createdSwitching your apache confRestarting apachePHP 7.4.12 (cli) (built: Oct 30 2020 00:56:27) ( NTS )Copyright (c) The PHP GroupZend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.12, Copyright (c), by Zend TechnologiesAll done!
ブラウザを再び指すことによって、apacheがphp7.4を実行しているかどうかをテストしますhttp://localhost/info.php
。 このガイドの以前のバージョンからアップグレードし、PHP8をインストールしている場合は、次のようなメッセージが表示されることがあります。Unknown version of PHP. PHP Switcher can only handle arguments of: 5.6,7.0,7.1,7.2,7.3,7.4
sphp
スクリプトが更新されました。
PHPのバージョンが競合しているというメッセージが表示された場合は、おそらくtapsの競合があります。 以前のPHPバージョンをアンインストールし、古いタップを削除し、新しいタップを追加してから、上記の構文を使用してPHPバージョンを再インストールする必 たとえば、次のようにします。
brew untap exolnet/deprecatedbrew tap shivammathur/phpbrew install shivammathur/php/[email protected]
Grav CMSで設定をテストします!Gravをすばやくインストールしてテストするよりも、新しい強力な設定をテストする方が良い方法は何ですか?
世界で最高のフラットファイルCMS♥! いくつかの簡単な端末コマンドでこれを行うことができます:
cd ~/Sitescurl -OJL https://getgrav.org/download/core/grav-admin/latest
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0100 646 100 646 0 0 1664 0 --:--:-- --:--:-- --:--:-- 1664100 10.5M 100 10.5M 0 0 8198k 0 0:00:01 0:00:01 --:--:-- 21.6Mcurl: Saved to filename 'grav-admin-v1.6.28.zip'
次に、zipファイルを抽出するだけです:これにより、zipが~/Sites/grav-admin
http://localhost/grav-admin
:
関連する情報を入力して新しい管理者ユーザーを作成し、[ユーザーの作成]をクリックして管理者に入ります。 他の手順は必要ありません。p>
すべて完了!!!!PHPやその他のBrewパッケージを更新する
Brewは、PHPやインストールした他のパッケージを更新するのが非常に簡単になります。 最初のステップは、Brewを更新して、利用可能な更新のリストを取得することです。
brew update
これにより、利用可能な更新のリストと削除された式が吐き出されます。 パッケージをアップグレードするには、次のように入力します。
brew upgrade
インストールされている各PHPバージョンに切り替えて、updateを再度実行して、各PHPバージ
特定の/最新のPHPバージョンのアクティブ化
PHPリンクの設定方法により、一度に一つのバージョンのPHPのみがリンクされ、現在のアクティ 次のように入力して、現在のアクティブなバージョンを確認できます。
php -v
次のように入力して、PHPパッケージの特定のバージョンを確認できます。
brew info [email protected]
PHP 7.4.12 (cli) (built: Oct 30 2020 00:56:27) ( NTS )Copyright (c) The PHP GroupZend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.12, Copyright (c), by Zend Technologiesrhuk@macos-big-sur ~ % brew info [email protected]: stable 7.4.12 (bottled), HEADGeneral-purpose scripting languagehttps://www.php.net//usr/local/Cellar/php/7.4.12 (497 files, 72.2MB) * Poured from bottle on 2020-11-13 at 11:57:43From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/php.rbLicense: PHP-3.01==> DependenciesBuild: httpd ✔, pkg-config ✔Required: apr ✔, apr-util ✔, argon2 ✔, aspell ✔, autoconf ✔, curl-openssl ✔, freetds ✔, gd ✔, gettext ✔, glib ✔, gmp ✔, icu4c ✔, krb5 ✔, libffi ✔, libpq ✔, libsodium ✔, libzip ✔, oniguruma ✔, openldap ✔, [email protected] ✔, pcre2 ✔, sqlite ✔, tidy-html5 ✔, unixodbc ✔...
さて、この3つのパートシリーズの第1部をラップします。php5.6、7を切り替える簡単な方法。0, 7.1, 7.2, 7.3, 7.4, そして、8.0。 MySQL、仮想ホスト、APCキャッシュ、YAML、およびXdebugを使用して環境を設定する方法については、パート2をご覧ください。 また、パート3では、Apache仮想ホスト用にSSLを設定する方法についても説明します。