Mac OS X Mavericksにphp5.5 + php-fpm + mysql + nginxをインストールします

システムの初期設定後、Macを選択するすべてのWeb開発者は、機能するツールを探しています。 そして、IDEとエディターですべてが明らかな場合、 OpenServerDenwerを無料で勝ち取るために、このようなものを見つけるのは困難です。 優れたMAMP PROソリューションがありますが、2000の木製のものがかかります。 はい、Apacheで作業すると混乱する場合があります。

この問題に対処しているときに、コンソールパッケージマネージャーHomebrewを使用してワークスペースを5〜10分で設定する方法について説明する興味深い資料に出会いました。 誰かがMacでWeb環境をセットアップするためのこの種の指示を役立つと思うので、私はその翻訳を公開しています。



「新しいMacBook Proを手に入れて、ゼロからセットアップすることにしました。これは、約4年前から同じTime Machineバックアップを使用しているからです。 Webサーバー/ LAMPスタック( L inux A pache M ySQL P HP)を取り除き、FastCGIの実装としてNginxとPHP-FPMに置き換える良い機会です。 以下では、OS X 10.9 / MavericksでNginx、PHP-FPM、MySQL、およびPhpMyAdminを構成する方法を読むことができます。

Xcode



まず、Mac App StoreからXcodeの最新バージョンをインストールします。
Xcode.appのダウンロード(Mac App Store経由)

ダウンロードが完了したら、 /ApplicationsフォルダーでXcodeを開き、ライセンスに同意します。

ターミナルウィンドウを開き、次のコマンドでXcodeをインストールします。

 xcode-select --install 


Install ]ボタンを使用してインストールを確認します。

Xcodeに戻り、 ⌘ + ,を押して設定にアクセスし、[ 場所 ]タブに移動します。 私の例では、最新バージョンのXcode 5.0.2(5A3005)コマンドラインツールをインストールします。

Xcode.app→環境設定→場所|コマンドラインツール

自作



ここで、OS XのパッケージマネージャーであるHomebrewをインストールする必要があります。特定のアプリケーションのパッケージと依存関係をインストールするために、Linuxディストリビューションでapt-getまたはaptitudeについて既に聞いたことがあるかもしれません。 brewは、Mac OS Xを実行しているコンピューターでのみ機能します。また、インストールされているアプリケーションの最新の更新プログラムを確実に取得できるため、期限切れバージョンやセキュリティホール、エクスプロイトなどを心配する必要がありません。

まず、Xquarzが必要です。

 curl http://xquartz-dl.macosforge.org/SL/XQuartz-2.7.5.dmg -o /tmp/XQuartz.dmg open /tmp/XQuartz.dmg 


次のコマンドでHomebrewをダウンロードしてインストールする必要があります。
 ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)" 


競合や問題を信じます。
 brew doctor 


Homebrewでリポジトリとアプリケーションを更新します。
 brew update brew upgrade 


PHP-FPM



HomebrewにはPHP-FPMのデフォルトリポジトリがないため、追加する必要があります。
 brew tap homebrew/dupes brew tap josegonzalez/homebrew-php 


以下の引数を使用してPHP-FPMをインストールします。
 brew install --without-apache --with-fpm --with-mysql php55 


HomebrewはPHP-FPMソースコードをダウンロードしてコンパイルします。 彼に時間を与えてください。これには数分かかる場合があります。

コマンドラインでのPHP設定



コマンドラインでPHPを使用する場合は、 ~/.bash_profileファイルの$PATH環境変数を更新する必要があります。
 echo 'export PATH="$(brew --prefix josegonzalez/php/php55)/bin:$PATH"' >> ~/.bash_profile 


自動起動セットアップ



 mkdir -p ~/Library/LaunchAgents cp /usr/local/Cellar/php55/5.5.9/homebrew-php.josegonzalez.php55.plist ~/Library/LaunchAgents/ 


そして、PHP-FPMの始まり:

 launchctl load -w ~/Library/LaunchAgents/homebrew-php.josegonzalez.php55.plist 


PHP-FPMがポート9000でリッスンしていることを確認します。

 lsof -Pni4 | grep LISTEN | grep php 


出力は次のようになります。

 php-fpm 69659 frdmn 6u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN) php-fpm 69660 frdmn 0u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN) php-fpm 69661 frdmn 0u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN) php-fpm 69662 frdmn 0u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN) 


MySQL



次のステップは、MySQLをインストールすることです。

 brew install mysql 


自動起動セットアップ



 cp /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents 


データベースサーバーを起動します。

 launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 


安全なインストール



MySQLサーバーのセキュリティを確保するために、 secure_mysql_installation secure_mysql_installationバイナリを呼び出して、ルートパスワードを変更し、匿名ユーザーを削除し、ルートの下でリモートログイン機能を無効にします。
 mysql_secure_installation 




 > Enter current password for root (enter for none): 


既に設定されている場合は、現在のパスワードを指定してください。

 > Change the root password? [Y/n] 


Enterキーを押して、rootユーザーのパスワードを指定します。 必要に応じて、LastPassまたは1Passwordパスワードマネージャーに保存します。

 > Remove anonymous users? [Y/n] 


はい、必要ありません。

 > Disallow root login remotely? [Y/n] 


はい、127.0.0.1を除く他のIPからのルート認証は不要です。

 > Remove test database and access to it? [Y/n] 


はい テストテーブルは必要ありません。

 > Reload privilege tables now? [Y/n] 


特権テーブルを再起動すると、変更が有効になることを確認できます。

接続確認



 mysql -uroot -p 


上記で指定したルートパスワードを入力すると、MySQLコンソールが表示されます。

 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> 


\qコマンドでセッションを終了します。

 mysql> \q Bye 


phpMyAdmin



phpMyAdminに必要なautoconfをインストールします。

 brew install autoconf 


環境変数$ PHP_AUTOCONFを設定します。

 echo 'PHP_AUTOCONF="'$(which autoconf)'"' >> ~/.bash_profile 


phpMyAdminをインストールしましょう。

 brew install phpmyadmin 


Nginx



次のコマンドでNginxをインストールします。

 brew install nginx 


自動起動セットアップ



ポート80を使用しているため、rootとしてNginxを実行する必要があります。
 sudo cp /usr/local/opt/nginx/*.plist /Library/LaunchDaemons/ sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.nginx.plist 


Webサーバーをテストする



Nginxを起動します:

 sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.nginx.plist 


設定は、HTTPプロトコルの標準ポート80ではなく、デフォルトでポート8080でリッスンします。
 curl -IL http://localhost:8080 


答えは次のようになります。

 HTTP/1.1 403 Forbidden Server: nginx/1.4.4 Date: Sun, 08 Dec 2013 03:33:41 GMT Content-Type: text/html Content-Length: 168 Connection: keep-alive 


Nginxを再度停止します。

 sudo launchctl unload /Library/LaunchDaemons/homebrew.mxcl.nginx.plist 


さらなるカスタマイズ



nginx.conf



次のNginx構成中に必要なフォルダーを作成します。

 mkdir -p /usr/local/etc/nginx/logs mkdir -p /usr/local/etc/nginx/sites-available mkdir -p /usr/local/etc/nginx/sites-enabled mkdir -p /usr/local/etc/nginx/conf.d mkdir -p /usr/local/etc/nginx/ssl sudo mkdir -p /var/www sudo chown :staff /var/www sudo chmod 775 /var/www 


現在のnginx.confファイル(コードを見たい場合は常に/usr/local/etc/nginx/nginx.conf.defaultで利用可能)を削除し、GitHubからcurlを使用して作成した設定を読み込みます:
 rm /usr/local/etc/nginx/nginx.conf curl -L https://gist.github.com/frdmn/7853158/raw/nginx.conf -o /usr/local/etc/nginx/nginx.conf 


構成ファイルは、できるだけ単純で軽量です。ワーカー設定、ログパス/形式、およびいくつかのインクルードです。 nginx.conf.default以上のものはありません。

PHP FPMをダウンロードする



GitHubからPHP-FPM設定をダウンロードします。
 curl -L https://gist.github.com/frdmn/7853158/raw/php-fpm -o /usr/local/etc/nginx/conf.d/php-fpm 


仮想ホストの作成



 curl -L https://gist.github.com/frdmn/7853158/raw/sites-available_default -o /usr/local/etc/nginx/sites-available/default curl -L https://gist.github.com/frdmn/7853158/raw/sites-available_default-ssl -o /usr/local/etc/nginx/sites-available/default-ssl curl -L https://gist.github.com/frdmn/7853158/raw/sites-available_phpmyadmin -o /usr/local/etc/nginx/sites-available/phpmyadmin 


gitを使用して、テスト仮想ホスト( phpinfo() 、およびphpinfo()書き換えを含む)のクローンを作成します。
 git clone http://git.frd.mn/frdmn/nginx-virtual-host.git /var/www rm -rf /var/www/.git 


また、 /var/www/.gitフォルダーを削除して、gitがその後の変更を追跡しないようにします。

SSLセットアップ



SSL証明書と秘密キー用のフォルダーを作成します。

 mkdir -p /usr/local/etc/nginx/ssl 


次のコマンドを使用して、4096ビットRSAキーと自己署名証明書を生成します。

 openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=US/ST=State/L=Town/O=Office/CN=phpmyadmin" -keyout /usr/local/etc/nginx/ssl/localhost.key -out /usr/local/etc/nginx/ssl/localhost.crt openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=US/ST=State/L=Town/O=Office/CN=localhost" -keyout /usr/local/etc/nginx/ssl/phpmyadmin.key -out /usr/local/etc/nginx/ssl/phpmyadmin.crt 


仮想ホストを有効にする



次に、仮想ホストを有効にするために、仮想ホストのsites-enabledフォルダーにシンボリックリンクを作成する必要があります。
 ln -sfv /usr/local/etc/nginx/sites-available/default /usr/local/etc/nginx/sites-enabled/default ln -sfv /usr/local/etc/nginx/sites-available/default-ssl /usr/local/etc/nginx/sites-enabled/default-ssl ln -sfv /usr/local/etc/nginx/sites-available/phpmyadmin /usr/local/etc/nginx/sites-enabled/phpmyadmin 


Nginxの再起動:

 sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.nginx.plist 


最新のテスト



ここで、すべてが機能するはずです。 これを確認するには、以下のリンクをクリックしてください。



サービス管理



遅かれ早かれクラッシュしたものを再起動する必要があるため、追加のエイリアスが必要になる場合があります。
 curl -L https://gist.github.com/frdmn/7853158/raw/bash_aliases -o /tmp/.bash_aliases cat /tmp/.bash_aliases >> ~/.bash_aliases echo "source ~/.bash_aliases" >> ~/.bash_profile 


次のコマンドを使用して、新しいウィンドウ/ターミナルセッションを開くか、手動で~/.bash_profileをリロードできます。
 source ~/.bash_profile 


上記のように、長いlaunchctlコマンドを入力する代わりにエイリアスを使用できるようになりました。

Nginx



次のコマンドを使用して、Nginxを起動、停止、および再起動できます。

 nginx.start nginx.stop nginx.restart 


ログへのクイックアクセス:

 nginx.logs.access nginx.logs.default.access nginx.logs.phpmyadmin.access nginx.logs.default-ssl.access nginx.logs.error nginx.logs.phpmyadmin.error 


構成チェック:

 [sudo] nginx -t 


PHP-FPM



PHP-FPMを起動、停止、再読み込みします。

 php-fpm.start php-fpm.stop php-fpm.restart 


構成チェック:

 [sudo] php-fpm -t 


MySQL



MySQLサーバーを起動、停止、再起動します。

 mysql.start mysql.stop mysql.restart 


「立ち往生しているのか、アドオンがあるのか​​教えてください!」




私自身で、ローカルドメインを作成し、Nginxをセットアップしてそれらと連携hosts場合、 sudo vi /etc/hostsコマンドを使用して、 hosts 「IP domain.name」ペアを書くことを忘れないでください。

PS同僚は、次のものを自動的にインストールするスクリプトを書いたと報告しています。
github.com/mrded/brew-emp

Source: https://habr.com/ru/post/J217245/


All Articles