そして、ここで理解が得られました-環境はすべての人にとって可能な限り均一である必要がありますが、最終製品の実際の動作条件にできるだけ近いはずです。 同時に、開発者がお気に入りのIDEを奪われるべきではありません。 何を言っても、ほとんどの開発者はWindowsを使用しており、PHPでの究極のWebホスティングはUNIXです。 私の練習では、「レーキ」に遭遇することがよくあります-Windowsでローカルにすべてが機能します-ホスティングに投稿し、すべてが悪いです。
そこで私は結論に達しました-WindowsとUnixの共生を組織する必要があります。 一般的に、このソリューションは表面にあります。Windowsの下にある仮想マシンであり、Unixに似たシステムが内部にあります。
VMware Workstationが仮想化システムとして選択されました。
2つのネットワークカードを仮想マシンに追加します。 「NAT」の1つのタイプ(仮想マシンはインターネットにアクセスする必要があります)、もう1つのタイプは「ホストのみ」です。 それを通して、親マシンから歩きます。
Ubuntu Serverは仮想マシンにインストールされました(選択は私の好みに基づいているだけでなく、必要なすべてのパッケージの可用性とタイムリーな更新に魅了されます)、および標準のLAMP(インターネット上に十分なインストール手順があります) これまでのところ、異常なことは何もありません。
そして、このエコノミーを設定するための少しの「魔法」で、誰にとっても便利です。
必ず仮想マシンにVMware Toolsをインストールしてください。 WindowsのローカルドライブにWebフォルダーを作成します(名前は何でも構いませんが、すべてのチームメンバーの名前にする必要があります)。 このフォルダーを共有フォルダーとして仮想マシンに接続します
システム内で接続した場所を確認します
マウントポイントが「/ mnt / hgfs」であることがわかります。
ここで、「/ mnt / hgfs / web」のフォルダーが自動的にApacheに接続する必要があります。
まず、設定を「/ etc / apache2 / sites-enabled」に追加します。
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /mnt/hgfs/web ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
したがって、アドレス「httr:// server_name / folder_name /」で任意のプロジェクトを開くことができます。 しかし、これは必ずしも便利ではありません。 したがって、ローカルドメインの作成も追加します。
次の内容のファイル「/root/web/elap.conf」を作成します。
<VirtualHost *:80> ServerName domen ServerAdmin webmaster@localhost DocumentRoot path ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory "path"> Options Indexes FollowSymLinks MultiViews AllowOverride all Require all granted </Directory> </VirtualHost>
次に、次の内容のスクリプトを作成します。
#!/bin/sh workdir="/mnt/hgfs/web/" apconf="/etc/apache2/sites-enabled/local.conf" apelconf="/root/web/elap.conf" echo > ${workdir}/local.conf LIST=`find $workdir -maxdepth 1 -type d` for PATH_DOMEN in $LIST do domen=`echo $PATH_DOMEN | sed s~${workdir}~~` if !( test -z ${domen} ) then cat ${apelconf} | sed s~domen~${domen}.local~ | sed s~path~${PATH_DOMEN}~ >> ${workdir}/local.conf fi done dc=`diff $apconf ${workdir}/local.conf` if !( test -z "${dc}" ) then cat ${workdir}/local.conf > $apconf /etc/init.d/apache2 restart fi
そして、それをクラウンに追加します(1分に1回配置します)-Webフォルダーに新しいフォルダーを作成したのは、そこからデータをプルしている間だけです。「httr://folder_name.local」という形式の仮想マシンのドメインは既に接続されています。
次に、これらのローカルドメインについて学習するためにWindowsが必要です。 2つの方法がありました。仮想マシンでDNSサーバーを上げるか、Windowsで「hosts」ファイルを使用します。 私は二番目の道を行くことにしました。
ネットワークカードタイプ「ホストのみ」で発行されたアドレスを確認します。 残念ながら、VMwareのインストールごとに個別です(または修正方法が見つかりませんでした)。したがって、将来、チームメンバーのコンピューターでこのバンドルを設定するときに、変更する必要があります。 1つ喜ばしいことは、将来的にはローカルで既に変更されていないことです。
アドレス「192.168.81.128」で必要なネットワークカード「eth0」が必要であることがわかります。 「C:\ Windows \ System32 \ drivers \ etc \ hosts」に次の行を追加します。
192.168.81.128 web
そして、次の内容のスクリプトを作成します。
@echo off set workdir=d:\web\ dir %workdir% /A:D /B > %workdir%list_project.txt find /V ".local" C:\Windows\System32\Drivers\etc\hosts > %workdir%hosts_new for /F %%i in (%workdir%list_project.txt) do ( echo 192.168.81.128 %%i.local >> %workdir%hosts_new ) copy %workdir%hosts_new C:\Windows\System32\Drivers\etc\hosts
ここで、「web」フォルダーに新しいプロジェクトを追加した後、管理者(!!!)としてこのスクリプトを1回実行する必要があり、ローカルドメインが使用可能になります。
次に、仮想マシンをすべての従業員にクローンします。
実際、そのようなシステムは慣らされており、実り多い動作をします。 これまでのところ、データベースという問題が未解決のままでした。 これで、すべてのプロジェクトでデータベースを「sql」フォルダーに保存し、プロジェクトのローカルコピーをインストールするときに、データベースに手動で入力する必要があります。 データベースの変更を追跡する方法について質問があります。 それらについて通知する方法。 解決策がある場合-コメントしてください。