13

Rails のスクリーンキャストには、ビルトイン Web サーバーと、ローカル マシンでの開発とテストを可能にするデータベースが示されていることに感銘を受けました。Apache のインスタンスを取得してプロジェクト ディレクトリをその DocumentRoot として実行し、ポート 8080 (または同様のもの) でファイルを提供するにはどうすればよいですか?

私が質問している理由は、CodeIgniter を試してみるつもりであり、複数のプロジェクトで使用したいからです。マシンの DocumentRoot をそれぞれで散らかしたくありません。データベースの移行方法に関する提案も歓迎します。


これまでのご回答ありがとうございます。私は Mac OS X を使用していることを明確にしておく必要があります。WAMP は Windows 専用のようです。また、XAMPP は Apache や他の多くの Web ツールをインストールするための優れた方法のように見えますが、プロジェクト ディレクトリを提供するためにインスタンスをロードする方法がわかりません。Mac OS X には Apache と PHP の両方がインストールされています。標準以外のポートでプロジェクトを提供する方法を探しています。

私が望むことを行うMAMP Proを見つけましたが、可能であれば、よりミニマリストなアプローチが良いでしょう. httpd.conf編集してプロジェクト ディレクトリにドロップできるファイルを持っている人はいますか?

また、データベースの移行に関する質問を投げかけたことをお詫びします。私が見つけたいと思っているのは、既存のデータを失うことなく、スキーマの変更をライブ サーバーにプッシュできるようにするものです。これは難しく、環境要因に大きく依存していると思います。

4

8 に答える 8

28

Macには、ApacheWebサーバーとPHPのビルドの両方が付属しています。これは、プラットフォームがWeb開発者に愛されている大きな理由の1つです。

Code Igniterを使用しているので、10.5に同梱されているPHPのデフォルトバージョンであるPHP5が必要になります。以前のバージョンのOSを使用している場合は、entropy.chにアクセスして、提供されているPHP5パッケージをインストールしてください。

次に、Apacheをオンにします。共有設定パネルで、個人用Web共有をオンにします。これにより、ローカルマシンでapacheが起動します。

次に、サイトで使用するためにいくつかの偽の開発URLを設定する必要があります。長年の伝統では、これには偽のTLD .dev(例:stackoverflow.dev)を使用していました。ただし、.dev現在は実際のTLDであるため、おそらくこれを実行したくないでしょう。これは.localhost、新しいデファクトスタンダードのようです。/ etc / hostsファイルを編集し、次の行を追加します

127.0.0.1    www.example.localhost
127.0.0.1    example.localhost

これは、ローカルマシンで上記のURLを指します。最後のステップは、apacheの構成です。具体的には、名前付き仮想ホスティングを有効にし、PHPを有効にし、いくつかの仮想ホストを設定します。エントロピーPHPパッケージを使用した場合、PHPの有効化はすでに実行されています。そうでない場合は、ここで説明するようにhttp.confファイルを編集する必要があります。基本的に、PHPモジュールをロードする行のコメントを解除します。

apache構成に変更を加えるときはいつでも、変更を有効にするためにapacheを再起動する必要があります。ターミナルウィンドウで、次のコマンドを入力します

sudo apachectl graceful

これにより、apacheが正常に再起動します。設定ファイルで構文エラーが発生した場合、Apacheは再起動しません。構成の問題を強調表示できます

sudo apachectl configtest

したがって、PHPを有効にした状態で、NamedVirtualHostsをオンにする必要があります。これにより、apacheは複数のURLに応答できるようになります。http.confファイルで次の(または同様の)行を探し、コメントを外します。

#NameVirtualHost *  

最後に、新しい仮想ホストのファイルを探す場所をapacheに指示する必要があります。これを行うには、http.confファイルに以下を追加します。注:このような構成ルールを別のファイルに分割し、includeディレクティブを使用して変更を含めることをお勧めします。これにより、自動更新による変更の消去が停止します。

<VirtualHost *>
    DocumentRoot /Users/username/Sites/example.localhost
    ServerName example.localhost
    ServerAlias www.example.localhost
</VirtualHost>

DocumentRootとして任意のフォルダーを指定できますが、ファイルを含めるための適切なアクセス許可が既に構成されているため、個人のSitesフォルダーを使用すると便利です。

于 2008-09-23T01:44:29.077 に答える
6

申し訳ありませんが、カイル、私はあなたのコメントに直接返信するのに十分な信用がありません. しかし、各プロジェクトを異なるポートで提供したい場合は、80 の代わりに、各仮想ホストに独自のポート番号を与えることを除いて、上記のケリーとまったく同じように (DNS 要素を除いて) 仮想ホスト構成を設定してみてください。このポートをports.confファイルに追加しました。

NameVirtualHost *

<virtualhost *:80>
DocumentRoot /site1/documentroot
</virtualhost>

<virtualhost *:81>
DocumentRoot /site2/documentroot
</virtualhost>

<virtualhost *:82>
DocumentRoot /site3/documentroot
</virtualhost>

<virtualhost *:83>
DocumentRoot /site4/documentroot
</virtualhost>

それが役立つことを願っています

于 2008-09-23T01:23:40.720 に答える
2

また、それぞれの最新のバイナリをダウンロードして、手動でセットアップします。Apache の構成について少し知っている限り、簡単なプロセスであることがわかりました。

私の開発マシンでは、名前ベースの仮想ホスティングを使用して apache をセットアップしています。また、開発ドメインをローカル マシンにマップするdyndns.orgアカウントも持っています。DynDNSはワイルドカード ドメインを提供するため、名前ベースの仮想ホストを使用して、必要な数の開発ドメイン用に (個別のドキュメント ルートを持つ) サイトを簡単に作成でき、すべて 1 つの Apache インスタンスから実行されます。

たとえば、仮想ホストのApache構成は次のようになります

NameVirtualHost *:80

<virtualhost *:80>
ServerName site1.mydyndns.dyndns.org
DocumentRoot /site1/documentroot
</virtualhost>

<virtualhost *:80>
ServerName site2.mydyndns.dyndns.org
DocumentRoot /site2/documentroot
</virtualhost>

これは、ローカル マシンで多くの開発サイトを簡単に維持するための最も迅速で簡単な方法です。

それが理にかなっていることを願っています。

于 2008-09-23T00:59:37.143 に答える
1

私は macOS を使用していませんが、Apache を使用しています。私の apache 構成ファイル (Linux では通常は に/etc/apache2/apache2.confあります) で、 というファイルへの参照を探しますports.conf。このファイルを見つけて、次の行を追加します

Listen 8080

次に、Apache プロセスを再起動します。その後、あなたはビジネスをしているはずです。これがMacで機能しない場合は、事前にお詫び申し上げます:)

于 2008-09-23T01:07:40.447 に答える
0

XAMPPなどの事前設定パッケージを使用して、別のインスタンスとして実行することができます。他にも多くの同様のプロジェクトがあります。

于 2008-09-23T00:38:47.817 に答える
0

PHPの場合、 WAMPXAMPPなど、Apache + MySQL+PHPをデプロイするための高品質のパッケージがいくつかあります。個人的には、それぞれの最新のバイナリをダウンロードして手動でインストールし、よりきめ細かい制御を行います。それを処理する方法についてのオンラインチュートリアルはたくさんあります。

データベースの移行は簡単である必要があります。コマンドラインまたはPHPMyAdminなどのインターフェイスを介してデータベースをサーバーにダンプし、同様の方法でエクスポートして戻します(Mysqlコマンドラインの経験がない場合はPHPMyAdminをお勧めします)。

于 2008-09-23T00:42:43.953 に答える
0

MAMP proを使用できますが、無料バージョンも非常に良い選択です。ここで入手してください:http://www.mamp.info/en/mamp.html

于 2008-09-23T02:24:43.647 に答える
0

実験したい開発環境ごとに個別の LAMP 仮想アプライアンスを使用することをお勧めします。

それらを VMware Server または VirtualBox で実行します。

于 2008-09-23T16:25:54.153 に答える