Apacheをオンにする
- 画面右上の虫眼鏡をクリックし、「ターミナル」を検索してターミナルを開く
- 「
sudo apachectl start
と入力しエンターキーを押す - Safari(または任意のブラウザ)を起動します。 アドレスバーに localhost と入力し、Enter
こんなに簡単だとは思いませんでしたか? そうなんです。
Turn on PHP
Mac にはすでに PHP が入っていますので、PHP.net からインストールする必要はありません。 High Sierra (バージョン 10.13) より前の Mac には、PHP 5 がインストールされていました。 そのため、PHP 7 が付属しておらず、PHP 5 から PHP 7 にアップグレードするために余分な作業をしなければならないため、ユーザーはイライラすることになりました。 ありがたいことに、High Sierra にはすでに PHP 7.1 が搭載されています!
- ターミナルを開き、
sudo nano /etc/apache2/httpd.conf
と入力してエンターキーを押します - 検索を表示する Ctrl+W を押します
- php を検索してエンターキーを押します。
- Delete the # from
#LoadModule php7_module libexec/apache2/libphp7.so
- Press Ctrl+O followed by Enter to save the change you just made
- Press Ctrl+X to exit nano
- Type
sudo apachectl restart
and press Enter
You just turned PHP 7 on. ここまでは素晴らしい仕事です!
サイトフォルダの作成
- 画面左下のFinderをクリックし、上部のナビゲーションバーにあるGo > Homeをクリックします。 これにより、ホーム ディレクトリに移動します。このディレクトリには、コンピュータの名前が表示されます。
<?phpecho "Hello From Sites Folder!";phpinfo();?>
- 作成した Sites フォルダに index.php を保存します
- ターミナルに戻って
sudo nano /etc/apache2/httpd.conf
- Ctrl+W キーで検索します
- ライブラリで検索して Enter キーを押してください。 このように表示されるはずです。
-
/Library/WebServer/Documents
を/Users/david/Sites
に置き換えます(david の代わりに、端末上部のホーム アイコンの横にある自分の名前を使用) - Ctrl+O を押し、次に Enter で保存
- Ctrl+X で nano を終了
-
sudo apachectl restart
と入力して Enter
Safari に戻って localhost ページを更新すると、Hello From Sites Folder! と表示され、PHP 7 が使用されていることを示す PHP 情報が表示されます。
Install MySQL
- Go to https://dev.mysql.com/downloads/mysql
- Scroll down until you see three download buttons and click one next to DMG Archive
- スクロールダウンして No thanks, just start my download
- ダウンロードしたファイルをクリックして pkg ファイルをダブルクリックして、インストールするとこのような感じになるはずです。
- インストールが終了すると、MySQL のユーザー名 (root) とパスワード (8hxKsiIh?) を知らせるポップアップが表示されます。YMt)を入力します。 パスワードは異なるでしょう。 パスワードをテキストファイルにコピーして(またはスクリーンショットを撮って)、OKを押してください。 パスワードがわからないとリセットするのが面倒なので、今すぐやってください。
- 画面左上のアップルロゴを押して、システム環境設定
- MySQLをクリックすると、オフになっています
- スタート MySQL サーバーを押してオンにすると、次のようになります
- ターミナルに戻って
sudo /usr/local/mysql/bin/mysql -u root -p
- Enterを押すと、パスワードを聞かれるので入力してください。 これは Mac にログインするときに使用するパスワードです
- 次に Enter Password: と表示されますが、私の場合は 8hxKsiIh?YMt です (8hxKsiIh?YMt の代わりに、以前にコピーしたパスワードを使用する必要があります)。
- Type
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
and press enter - Go to https://www.sequelpro.com and download Sequel Pro.この画面が出てきます。 これはphpMyAdminのようなものですが、デスクトップアプリケーションなのでより優れています。
- インストールを行い、Sequel Proを開き、ホストに127.0.0.1を入力します。 ユーザー名にはroot、パスワードにはnewpasswordを入力します。 Connect
- 左上の Choose Database… をクリックし、Add Database…
- それに mydb という名前を付けて Enter
- 次に左下のプラス記号をクリックして新しいテーブルを作成します。 テーブルの名前をmytableとし、add
- INDEXESという文字のすぐ上にあるプラス記号をクリックし、フィールドにmessageという名前を付けます。
- 上部のコンテンツをクリックします。
- 下部のプラス記号をクリックします(マイナス記号の左側)
- 新しいエントリに 1 の ID を与え、メッセージを MySQL が完全に動作するように設定します!
- Sites フォルダで index.php を開き、コードを
<?php$con = new mysqli("127.0.0.1", "root", "newpassword", "mydb");$message = $con->query("SELECT message FROM myTable")->fetch_object()->message;$con->close();echo "$message <br/>";echo "Hello From Sites Folder!";phpinfo();
ユーザーが入力した値がないため、この例は明らかに SQL インジェクションに対して無防備です。 しかし、MySQLi のプリペアド ステートメントについてよく理解していない場合は、SQL インジェクションを防ぐ方法についての優れたチュートリアルであるこの投稿をチェックしてみてください 😉。 PDO バージョンもあります。
- Safari で localhost をリフレッシュすると、次のように表示されます:
Great! MySQL が動作するようになったので、localhost を使用してデータベースに情報を格納できます。
SEO Friendly URL を有効にする
localhost/profile.php?user=david に行く代わりに localhost/profile/david に行ければ、よりきれいに見えるはずです。 RewriteRulesを使えるようにmod_rewriteを有効にして、これを動作させましょう。
- ターミナルで
sudo nano /etc/apache2/httpd.conf
と入力し、エンターキーを押します - Ctrl+Wを押し、rewrite.と入力し、rewrite.phpと入力します。 を削除し、Enterを押す
-
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
- Ctrl+Oを押してEnterで保存
- Ctrl+Xでnano終了
- Type
sudo apachectl restart
これでローカルホストを使って開発してもフレンドリーな URL を使うことができるようになりました。
Make .htaccess work
これは vanity URL を動作させるために必要ではありませんが、個人的には .htaccess を使用する方が好きです。htaccess ファイルを使用することを好みます。
- ターミナルで
sudo nano /etc/apache2/httpd.conf
と入力し、エンターキーを押します - Ctrl+W を押し、
AllowOverride controls
と入力します。 と入力し、Enterキーを押す - Change
AllowOverride None
toAllowOverride All
- Press Ctrl+O followed by Enter to save
- Press Ctrl+X to exit nano
- Type
sudo apachectl restart
Now you can add .NET Framework 2.0.htaccessファイルをSitesフォルダに追加すればうまくいきます。
Turn On SSL/HTTPS
ローカルホストからウェブサイトにアクセスする代わりに、https://localhostからウェブサイトにアクセスしたい場合があります。 SSLをオンにすると、URLバーのlocalhostの横に南京錠が表示されます。
- ターミナルで
sudo nano /etc/apache2/httpd.conf
と入力し、エンターキーを押します - Ctrl+Wを押し、socache_shmcb_module.と入力し、
sudo nano /etc/apache2/httpd.conf
をクリックします。 を削除し、Enter - Ctrl+Wを押して、
#LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
- mod_ssl と入力し、Enter
-
#LoadModule ssl_module libexec/apache2/mod_ssl.so
- Ctrl+Wを押して、#を削除。 httpd-ssl と入力し、エンターキーを押す
- Delete # from
#Include /private/etc/apache2/extra/httpd-ssl.conf
- Press Ctrl+O followed by Enter to save
- Press Ctrl+X to exit nano
- Type
sudo nano /etc/apache2/extra/httpd-ssl.conf
and press enter - Press Ctrl+W, type ServerName and press enter
- Replace www.Wikipedia.example.com:443 を localhost に置き換える
- すぐ上に
/Library/WebServer/Documents
があります。 これを/Users/david/Sites
に置き換えてください。 (先ほどと同じように、david の代わりに自分の名前を使います) -
<VirtualHost_default_:443>
のすぐ下に追加します (ただし、david を自分の名前に置き換えます):
<Directory "/Users/david/Sites"> Options All MultiviewsMatch Any AllowOverride All Require all granted</Directory>
- あなたのターミナルは今このような状態になっているはずです。
- Press Ctrl+O followed by Enter to save
- Press Ctrl+X to exit nano
- Type
sudo nano /etc/ssl/openssl.cnf
and press enter - A openssl.NET の一番下にある、opensl.Text をクリックします。cnf に次のように追加します:
subjectAltName = DNS:localhost
- あなたのターミナルは次のようになります:
- Press Ctrl+O followed by Enter to save
- Press Ctrl+X to exit nano
sudo openssl req -extensions san -config /etc/ssl/openssl.cnf -x509 -nodes -newkey rsa:4096 -keyout /private/etc/apache2/server.key -out /private/etc/apache2/server.crt -days 365 -subj "/C=US/ST=Florida/L=Boca Raton/O=WebsiteBeaver/CN=localhost"
and press Enter. (あなたの情報を代わりに使うこともできますが、localhostは変更しないでください)
- Type
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /private/etc/apache2/server.crt
と入力します
- Type
sudo apachectl
restart - これでブラウザでhttps://localhostへ行くと、URLの隣に南京錠が見えますが、これはSSLの設定が完了したことを示します!
.