目次
Nginx での ThinkPHP プロジェクトのデプロイに関するチュートリアル、nginxthinkphp
ホームページ バックエンド開発 PHPチュートリアル ThinkPHP プロジェクトを Nginx にデプロイするためのチュートリアル、nginxthinkphp_PHP チュートリアル

ThinkPHP プロジェクトを Nginx にデプロイするためのチュートリアル、nginxthinkphp_PHP チュートリアル

Jul 13, 2016 am 10:08 AM
nginx thinkphp 展開する

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. ほとんどのプロジェクトでは相対パス、つまりエントリ ファイルに対する相対パスが使用されるため、ファイルを削除するときにパスの問題が発生しますが、ファイルを削除するには絶対パスを使用する必要がありました。より保守的なアプローチのコードは次のとおりです

コードをコピーします

コードは次のとおりです: $path="./Public/uploads/"; $path=str_replace("\","/",realpath($path)."/") //絶対パスを取得し、区切り文字を変換します


4. nginx と php を設定するときに、fastCGI を使用し、次のコードを cmd ファイルとして保存し、クリックするだけで実行しました
"F:phpphp-cgi.exe" -b 127.0.0.1:9000 -c "F:phpphp.ini" //以下はphpファイルへのパスです 次に、nginx 設定ファイルにいくつかの文を追加します


コードをコピーします

コードは次のとおりです: 場所 ~ .php/?.* { 根 Fastcgi_pass 127.0.0.1:9000 ;
fastcgi_indexindex.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
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;
}

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/951641.html技術記事 Nginx での ThinkPHP プロジェクトのデプロイに関するチュートリアル、nginxthinkphp 私は少し前に Apache と TP を使用して小さな Web サイトを開発しました。これは、TP を使用した私の最初の実際的な経験とみなすことができます。 pathinfo モードの使用には慣れています...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Tomcat サーバーへの外部ネットワーク アクセスを許可する方法 Tomcat サーバーへの外部ネットワーク アクセスを許可する方法 Apr 21, 2024 am 07:22 AM

Tomcat サーバーが外部ネットワークにアクセスできるようにするには、以下を行う必要があります。 外部接続を許可するように Tomcat 構成ファイルを変更します。 Tomcat サーバー ポートへのアクセスを許可するファイアウォール ルールを追加します。 Tomcat サーバーのパブリック IP を指すドメイン名を指す DNS レコードを作成します。オプション: リバース プロキシを使用して、セキュリティとパフォーマンスを向上させます。オプション: セキュリティを強化するために HTTPS を設定します。

Yolov10: 詳細な説明、展開、アプリケーションがすべて 1 か所にまとめられています。 Yolov10: 詳細な説明、展開、アプリケーションがすべて 1 か所にまとめられています。 Jun 07, 2024 pm 12:05 PM

1. はじめに ここ数年、YOLO は、計算コストと検出パフォーマンスの効果的なバランスにより、リアルタイム物体検出の分野で主流のパラダイムとなっています。研究者たちは、YOLO のアーキテクチャ設計、最適化目標、データ拡張戦略などを調査し、大きな進歩を遂げました。同時に、後処理に非最大抑制 (NMS) に依存すると、YOLO のエンドツーエンドの展開が妨げられ、推論レイテンシに悪影響を及ぼします。 YOLO では、さまざまなコンポーネントの設計に包括的かつ徹底的な検査が欠けており、その結果、大幅な計算冗長性が生じ、モデルの機能が制限されます。効率は最適ではありませんが、パフォーマンス向上の可能性は比較的大きくなります。この作業の目標は、後処理とモデル アーキテクチャの両方から YOLO のパフォーマンス効率の境界をさらに改善することです。この目的を達成するために

HTMLファイルからURLを生成する方法 HTMLファイルからURLを生成する方法 Apr 21, 2024 pm 12:57 PM

HTML ファイルを URL に変換するには Web サーバーが必要です。これには次の手順が含まれます。 Web サーバーを取得します。 Webサーバーをセットアップします。 HTMLファイルをアップロードします。ドメイン名を作成します。リクエストをルーティングします。

Nodejsプロジェクトをサーバーにデプロイする方法 Nodejsプロジェクトをサーバーにデプロイする方法 Apr 21, 2024 am 04:40 AM

Node.js プロジェクトのサーバー デプロイメント手順: デプロイメント環境を準備します。サーバー アクセスの取得、Node.js のインストール、Git リポジトリのセットアップ。アプリケーションをビルドする: npm run build を使用して、デプロイ可能なコードと依存関係を生成します。コードをサーバーにアップロードします: Git またはファイル転送プロトコル経由。依存関係をインストールする: サーバーに SSH で接続し、npm install を使用してアプリケーションの依存関係をインストールします。アプリケーションを開始します。node Index.js などのコマンドを使用してアプリケーションを開始するか、pm2 などのプロセス マネージャーを使用します。リバース プロキシの構成 (オプション): Nginx や Apache などのリバース プロキシを使用して、トラフィックをアプリケーションにルーティングします。

外部からnodejsにアクセスできますか? 外部からnodejsにアクセスできますか? Apr 21, 2024 am 04:43 AM

はい、Node.js には外部からアクセスできます。次の方法を使用できます。 Cloud Functions を使用して関数をデプロイし、一般にアクセスできるようにします。 Express フレームワークを使用してルートを作成し、エンドポイントを定義します。 Nginx を使用して、Node.js アプリケーションへのリバース プロキシ リクエストを実行します。 Docker コンテナを使用して Node.js アプリケーションを実行し、ポート マッピングを通じて公開します。

PHP を使用して Web サイトを展開および維持する方法 PHP を使用して Web サイトを展開および維持する方法 May 03, 2024 am 08:54 AM

PHP Web サイトを正常に展開して維持するには、次の手順を実行する必要があります。 Web サーバー (Apache や Nginx など) を選択する PHP をインストールする データベースを作成して PHP に接続する コードをサーバーにアップロードする ドメイン名と DNS を設定する Web サイトのメンテナンスを監視する手順には、PHP および Web サーバーの更新、Web サイトのバックアップ、エラー ログの監視、コンテンツの更新が含まれます。

Fail2Ban を使用してサーバーをブルート フォース攻撃から保護する方法 Fail2Ban を使用してサーバーをブルート フォース攻撃から保護する方法 Apr 27, 2024 am 08:34 AM

Linux 管理者にとっての重要なタスクは、サーバーを違法な攻撃やアクセスから保護することです。デフォルトでは、Linux システムには、iptables、Uncomplicated Firewall (UFW)、ConfigServerSecurityFirewall (CSF) などの適切に構成されたファイアウォールが付属しており、さまざまな攻撃を防ぐことができます。インターネットに接続されているマシンはすべて、悪意のある攻撃のターゲットになる可能性があります。サーバーへの不正アクセスを軽減するために使用できる Fail2Ban と呼ばれるツールがあります。 Fail2Ban とは何ですか? Fail2Ban[1] は、ブルート フォース攻撃からサーバーを保護する侵入防止ソフトウェアです。 Python プログラミング言語で書かれています

Laravel と CodeIgniter はクラウド プラットフォームの展開をサポートしていますか? Laravel と CodeIgniter はクラウド プラットフォームの展開をサポートしていますか? Jun 05, 2024 pm 01:51 PM

Laravel と CodeIgniter はどちらもクラウド プラットフォームのデプロイメントをサポートしています。 Laravel はすぐに使えるネイティブ サポートを提供し、デプロイメント プロセスを簡素化します。 CodeIgniter をクラウド環境で実行するには、追加の構成と変更が必要です。

See all articles