15

オープンソースとは疎遠になり、 ASP.NETでのWeb アプリケーションの開発に数年を費やした後、私はかなり多くの PHP / MySQL 開発を開始する予定です。

Windows マシンで開発環境を立ち上げて実行するためにWampServerを簡単にインストールしましたが、ターゲットにするプラットフォームはおそらく Linux です。Linux をターゲットにしながら Windows で開発しているため、問題が発生する可能性はありますか? LAMP アプリケーションを開発するための Linux 環境のセットアップに投資することは賢明ですか?

4

10 に答える 10

15

可能であれば、ある種の Linux、または少なくとも *nix の開発環境に投資します。単純なアプリケーションと Web サイトの場合、セットアップは問題ありませんが、展開するときに最終的に微妙な違いに遭遇します。

ここでは、Windows 環境を使い続ける場合に気を付けていただきたいことがいくつかあります。

  1. ファイル パス。多くの PHP 関数は、引数としてファイル パスを取ります。Windows のバックスラッシュ (\) セパレーターは使用しないでください。Windows を使用している場合でも、PHP ではスラッシュ区切り記号を使用できます。理想的には、独自のファイル パス クラスでこれを抽象化します。

  2. Apache モジュール、PECL 拡張機能。多くの場合、Apache Windows と Apache Unix には、デフォルトでインストールされる Apache モジュールの異なるセットが付属しています。また、同じバージョンのモジュールでも、プラットフォームが異なると動作が異なる場合があります。アプリケーションがApache モジュールに依存している場合は、両方のプラットフォームで利用できることを確認してください。同じことが PHP カスタム拡張機能 (PECL) にも当てはまります。

  3. プロセス フォーキング。Web アプリケーションで exec や ` などを使用することは、そもそも悪い考えですが、これらの関数を使用している場合、Windows と *nix の間で動作が異なります。

  4. ファイルの書き込み、ロックなどの動作が異なります

  5. 電子メールは両方のプラットフォームで異なる方法で処理されます

  6. PHP グループの Windows 用のコード ワードは、「一部のプラットフォーム」です。必要に応じて、自分でさらに研究することができます

一般に、開発環境が本番環境に近いほど、環境やデプロイに関連する問題は少なくなります。

于 2008-10-22T23:34:26.127 に答える
13

私は過去数年間それを行ってきましたが、まだ問題に遭遇していません.どちらかといえば、より移植性の高いコードを書くことを余儀なくされることで、あなたに利点があります.

于 2008-10-22T21:15:15.453 に答える
2

アクセス許可と、Windows ではファイル名の大文字と小文字が区別されないという事実の 2 つは、私にとって苦痛であると考えることができます。しかし、彼らは

  1. 解決可能、最悪の場合、FTP クライアントを使用してパーミッションを変更します。
  2. より優れたプログラマーになるための良い、簡単な方法 (小さな意味で、はい)。
于 2008-10-22T21:23:15.673 に答える
1

いいえ、WAMP での開発と LAMP での実行は問題ないはずですが、少なくとも LAMP でのステージングは​​必要です。

私は多くの問題なしに両方の方法で行ってきました (OK、以前は WAMP にエンタープライズ サイトを展開する際に多くの問題がありました (PHP ISAPI フィルターを使用しないでください) が、現在は解決可能です ( FastCGI ))。

Windows でサポートされていないことを示す PECL モジュールを追加しない限り、問題はないはずです。また(WAMPを使用していると述べているので、MySQLを使用していると思います)、SQL ServerとPHPには多くの問題があります(必要な古いドライバーにより、クエリの長​​さが大幅に制限されます)。

于 2008-10-22T21:15:27.093 に答える
1

理論的には、PHP と MySQL は完全にプラットフォームに依存しないはずです。

実際には、実際の運用アプリケーションを作成する場合は、予期せぬ事態を避けるために、運用環境をミラーリングしたテスト環境を用意することをお勧めします。

于 2008-10-22T21:16:58.307 に答える
1

はい、できるだけ本番環境に近い環境で開発することをお勧めします。

Linux と比較して、Windows での PHP の動作には違いがあります。また、Linux が Windows と比較してファイルのアクセス許可を処理する方法など、その他の違いもあります。無料のVMwareサーバーを Linux 仮想マシンで実行しています。

Windows でネットワーク ドライブとしてマウントする Linux VM に Samba 共有があります次に、コード エディターとして Windows 上のEclipseを使用します。

于 2008-10-22T21:17:10.660 に答える
0

実稼働環境でこれらのタスクを処理する必要がある場合は、構成ファイルの場所(および編集方法)を把握し、サービスの再起動、スケジュールされたジョブの処理などに慣れるために、LAMPサンドボックスを用意する価値があります。

于 2008-10-22T23:11:25.580 に答える
0

パス、パスに注意してください。CMS全体を構築することができ、パスが原因で混乱します。

于 2012-07-27T12:36:53.750 に答える
0

いいえ
。VirtualBox + 共有フォルダは、週末に 6 ~ 8 時間ほど空きがあり、VirtualBox の基本をすべてクリアして設定を行う場合に便利です。

Linux に切り替える場合、このプロセスには最大 1 か月かかる場合があり、その間は生産コードに関して非常に非生産的です。

PCLinuxOSCentOSopenSUSE、またはUbuntuのいずれかを使用して、切り替え前に VirtualBox for Windows で Linux を練習し続けることをお勧めします。私は CentOS と PCLinuxOS を好みます。

SLAMPP と呼ばれる gem と、XAMPPと呼ばれる別の美しさがあります <-- Linux と Windows で動作します。

大まかな見積もりとして、プロジェクトごとに2000〜3000行のコード(作成/追加)を6か月から1年間コーディングすると予想される場合は、Windowsに固執し、その間VirtualBoxを使用してLinuxを習得してください.

それ以上の場合、またはクールな新しい LAMP Web サイトを作成する予定がある場合は、まず Linux に切り替える必要があると思います。Linux に慣れるには、さらに 1 か月かかります。LAMP アプリケーションをデバッグするのに十分な Linux を学習するには時間がかかります。

于 2008-10-24T02:32:17.840 に答える
0

いいえ、LAMP を対象とする場合に WAMP で実行できないことは、System() / Exec呼び出しを使用することだけです。通常、これらは非常にまばらに使用する必要があるため、これは良いことです。

于 2008-10-22T21:18:12.233 に答える