私の頭の上からあなたがする必要があるでしょう:
<オール>これらはあくまでも基本です。次のステップは、いつ問題が発生したかを認識し、どこに行けばその問題に関する詳細情報を入手できるかを知ることです。これらすべてがあっても、表面をなぞっただけであり、多くのことが意味をなさない可能性があります。とはいえ、良いスタートです。
問題の 80% はパーミッションです。 Windows はそれらを別の方法で行います。 root として (または root のような特権で) ログインすると、パーミッションをバイパスできます。 Apache はできませんし、しません。
- ファイルとディレクトリの所有権を適切に設定する方法を学びます。 Unix の本はどれもこれをカバーしています:実際にそれを理解するようにしてください.Windows セキュリティの綴りが異なるのではなく、セキュリティの別のモデルです.
残りの問題のうち、80% は PATH の問題です。 PHP には、Java や Python ほど大きな PATH の問題はありませんが、いずれも PATH 設定を使用してコンポーネントとライブラリを検索します。あなたは定期的にそれらを間違えます。 Windows には PATH がありますが、レジストリもあり、非常に簡単または極秘になります。 Unix は秘密を保持しません。
- PHP と MySQL が使用する環境変数について学びます。それらがどこでどのように設定されるかを知っていることを確認してください。 Apache は独自の環境で実行され、
mod_php
を介してランタイム環境設定を提供するコマンドがあります。 .echo $PATH
を短く書く 何が起こっているかを明らかにするためのシェル スクリプト。
残りの問題のうち、80% はデータベース関連です。データベースのアクセス許可を整理した後も、接続する必要があり、「名前付きパイプ」対「localhost」のものは、あいまいで紛らわしい方法で間違っています。 MySQL は非常に寛容ですが、ここで間違いを犯す可能性があります。
- それぞれの代替接続を試し、それらがどのように機能するかを理解します。 Windows に似ている、または "より単純" であるため、1 つを選択しないでください。それぞれ実際に運動させます。ユーザー名とパスワードを Web アプリからデータベース サーバーに渡す方法も重要です。 Apache は「nobody」として実行されます。また、デフォルトのアクセス権を何も与えたくありません。アプリは、デフォルトを使用せずに意図的にデータベースに接続する必要があります。
残りの問題のうち、80% は Apache 構成です。 Apache は非常にシンプルですが、100 万のオプションがあります。すべてを行うには 4 つの方法があります。常に、まったく機能しない 2 つを試して、厄介な 3 つ目の方法で解決します。はるかに単純な 4 番目は、決して思い浮かびません。
- Apache の設定についてたくさん読んでください。 httpd.apache.org サイトには多くの情報があります。シンプルさを追求してください。既存の例をコピーして使用します。 IIS の経験や Windows デスクトップの経験に基づいて、要件や望ましい実装を構成しないでください。機能するものをコピーします。
残りの問題のうち、80% はアプリケーションによるファイル システムの使用です。ローカル ファイルを開いたり、読み書きしたりしようとすると、(a) 使用しようとしているディレクトリのアクセス許可が正しくない [上記を参照] および (b) Unix ファイル パスが異なることがわかります。大きな違いはありませんが、あいまいな方法で何かが壊れるほどの違いがあります。
- Unix/Linux のすべてのプログラミング本でこれがカバーされています。 Windows と大差ありませんが、最初はつまずくだけの違いがあります。 「hello world」のような PHP ページを作成して、可能な限り単純なバージョンのアップロードまたはダウンロードを急増させて、すべての要素とパーツが適切に配置されていることを確認します。次に、アプリ全体を正しく修正してください。
残りの問題のうち、80% はサブプロセスの作成になります。 Windows はこれを別の方法で行います。 Unix で最も重要なことの 1 つは、サブプロセスが子プロセスであり、OS がクリーンアップできるようにサブプロセスが終了するまで実際に待つ必要があることを覚えておくことです。サブプロセスを並列の「ファイア アンド フォーゲット」と考えると、ゾンビ プロセスが発生し、定期的な再起動が必要になります。
- 非常に単純な PHP ページを作成して、サブプロセス管理をスパイクします。黄金律は、子供たちを管理し、後片付けをすることです。次に、アプリ全体を正しく修正してください。
残りの問題は些細なアプリケーション ロジックですが、プラットフォームが異なるため、PHP アプリケーションのバグを突き止める前に Unix のせいにする必要があります。
- 効果的にデバッグできるように、単体テストとログ記録を片付けます。