ThinkPHP プロジェクトを Nginx にデプロイするためのチュートリアル、nginxthinkphp_PHP チュートリアル
Nginx での ThinkPHP プロジェクトのデプロイに関するチュートリアル、nginxthinkphp
少し前に、私は Apache と TP を使用して小さな Web サイトを開発しました。これは、TP を使用した初めての実践的な経験でもありました。 pathinfo モードの使用には慣れており、ローカルでは問題なく動作しますが、サーバーにデプロイすると、相手が Nginx を使用しているため、ThinkPHP の pathinfo モードがデフォルトでサポートされていないため、パス エラーが発生してしまいます。ページがループ内でジャンプするため、nginx をダウンロードしてローカルでテストします。
実際、nginx が pathinfo をサポートしていない問題を解決するには 2 つの解決策があります。1 つは pathinfo モードを使用しないこと、もう 1 つは pathinfo をサポートするように nginx 設定ファイルを変更することです。問題を単純化するために、最初の方法を選択しました。2 番目の方法に関しては、多くの情報を確認したところ、人によって方法が異なり、中には非常に異なるものもあり、誤解を招きやすいため、次の方法を選択しました。 simplify オフにして通常モードを選択しますが、一定のリスクはあります。 Index.php に対応するフロントエンド コードを変更した後、フロントエンドは基本的に正常であったものの、バックエンドでリダイレクトの問題が依然として発生していることがわかりました。長い間苦労した後、ログファイルを確認してみました。これまで気にしていなかったログファイルが非常に重要であることがわかりました。出力は config.php ファイルの最初の行に表示されます
sublime では、通常、BOM ヘッダーは UTF-8 ファイルに追加されます。この BOM ヘッダーは通常、ウィンドウの下では表示されず、Linux 上でも直接表示されます。文字がある場合は、文字を削除するか、最初の行で Enter キーを押して削除します。この時点で、バックエンドは基本的にアクセス可能になります。
説明が必要な小さな問題がいくつかあります。
1. ログイン時に、検証のために外部 js ファイルを介して Ajax リクエストを送信しました。js と ThinkPHP モジュール関数の間の通信でいくつかの問題が発生しました。正しいパスの記述方法がわかりませんでした。色々試してみることしかできませんが、幸いにもエントリーファイル名を直接指定することで解決できました
var url="system.php?m=Login&a=doLog";
$.post(url,{"staffname":$staffname,"staffpwd":$staffpwd,"verifycode":$verifycode},function(data){
If(data=="codeerr"){
alert("認証コードが間違っています!");
}else if(data=="authempty"){
alert("ユーザー名またはパスワードを入力してください!")
}else if(data=="autherr"){
alert("ユーザー名またはパスワードが間違っています!");
}else if(data=="成功"){
alert("ログイン成功!");
location.href="system.php?m=Index&a=index" //ホームページにアクセスします
}
もちろん、これは通常モードでのアクセス方法です。 pathinfo の場合は、以下のように赤い部分を変更するだけです
var url="doLog";
$.post(url,{"staffname":$staffname,"staffpwd":$staffpwd,"verifycode":$verifycode},function(data){
If(data=="codeerr"){
alert("認証コードが間違っています!");
}else if(data=="authempty"){
alert("ユーザー名またはパスワードを入力してください!")
}else if(data=="autherr"){
alert("ユーザー名またはパスワードが間違っています!");
}else if(data=="成功"){
alert("ログイン成功!");
Location.href="../Index/index"; //ホームページへのジャンプ方法と他のモジュールへのアクセス方法
2. ファイルをダウンロードするときに、不可解なことに常に HTML のものが大量に表示されます。これは、次のコードで変更できます。ただし、この方法では、実際にダウンロードされるファイルは HTML 形式のままです。ファイルですが、サフィックスを xls に変更したため、Excel で開くと形式の問題が表示されますが、無視してください。同時に、xls のデフォルトのエンコード形式は utf-8 ではないため、icov() 関数を使用してエンコードを変換することに注意する必要があります。
ob_start();
ob_end_clean();
Header( "コンテンツタイプ: application/octet-stream"); Header( "受け入れ範囲: バイト "); Header( "Content-type:application/vnd.ms-excel;charset=gb2312"); Header( "Content-Disposition:attachment;filename={$filename}.xls");
3. ほとんどのプロジェクトでは相対パス、つまりエントリ ファイルに対する相対パスが使用されるため、ファイルを削除するときにパスの問題が発生しますが、ファイルを削除するには絶対パスを使用する必要がありました。より保守的なアプローチのコードは次のとおりです
コードをコピーします
4. nginx と php を設定するときに、fastCGI を使用し、次のコードを cmd ファイルとして保存し、クリックするだけで実行しました
fastcgi_params を含める
#pathinfo 情報を保存するために使用される変数 $path_info を定義します
set $path_info "";
#実際のアドレスを保存するために使用される変数 $real_script_name を定義します
set $real_script_name $fastcgi_script_name;
#アドレスが引用符内の正規表現と一致する場合
If ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {
#変数 $real_script_name にファイルアドレスを代入します
set $real_script_name $1;
アウトアウトウェイ」 ’ダウン - set $path_info $2;
}
#fastcgi のいくつかのパラメータを設定します
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

HTTPキャッシュヘッダーの主要なプレーヤーには、キャッシュコントロール、ETAG、およびラスト修飾が含まれます。 1.Cache-Controlは、キャッシュポリシーを制御するために使用されます。例:キャッシュコントロール:Max-Age = 3600、public。 2。ETAGは、一意の識別子を介してリソースの変更を検証します。例:ETAG: "686897696A7C876B7E"。 3. Last-Modifiedは、リソースの最後の変更時間を示しています。

PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

PHPは、動的なWeb開発およびサーバー側のアプリケーションに使用されるサーバー側のスクリプト言語です。 1.PHPは、編集を必要とせず、迅速な発展に適した解釈言語です。 2。PHPコードはHTMLに組み込まれているため、Webページの開発が簡単になりました。 3。PHPプロセスサーバー側のロジック、HTML出力を生成し、ユーザーの相互作用とデータ処理をサポートします。 4。PHPは、データベースと対話し、プロセスフォームの送信、サーバー側のタスクを実行できます。

PHPは過去数十年にわたってネットワークを形成しており、Web開発において重要な役割を果たし続けます。 1)PHPは1994年に発信され、MySQLとのシームレスな統合により、開発者にとって最初の選択肢となっています。 2)コア関数には、動的なコンテンツの生成とデータベースとの統合が含まれ、ウェブサイトをリアルタイムで更新し、パーソナライズされた方法で表示できるようにします。 3)PHPの幅広いアプリケーションとエコシステムは、長期的な影響を促進していますが、バージョンの更新とセキュリティの課題にも直面しています。 4)PHP7のリリースなど、近年のパフォーマンスの改善により、現代の言語と競合できるようになりました。 5)将来的には、PHPはコンテナ化やマイクロサービスなどの新しい課題に対処する必要がありますが、その柔軟性とアクティブなコミュニティにより適応性があります。

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
