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



All Articles