ホームページ >バックエンド開発 >PHPチュートリアル >サーバー展開中に thinkphp5 で発生した問題の概要

サーバー展開中に thinkphp5 で発生した問題の概要

不言
不言オリジナル
2018-08-15 09:48:416319ブラウズ

この記事は、サーバーのデプロイ中に thinkphp5 で発生した問題の概要を示しています。これには一定の参考値があります。必要な友人は参照できます。お役に立てれば幸いです。

最近の TP5 の展開で多くの落とし穴に遭遇しました。さまざまな環境でいくつかの問題が発生します。以下は私が落とし穴を記録した方法です。

最も単純な lnmp の問題について話しましょう。 1.5 安定バージョンの使用

インストール コマンド:wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp (ワンクリックインストールとコンパイル)

必要な場合install LNMPA または LAMP, install . /install.sh の後のパラメータ lnmp を lnmpa または Lamp に置き換えるだけです。 Web サイトとデータベース ディレクトリを変更する必要がある場合、Nginx パラメータ、PHP パラメータ モジュールをカスタマイズする、lua を開くなどの必要がある場合は、./install.sh コマンドを実行する前に、インストール パッケージ ディレクトリ内の lnmp.conf ファイルを変更する必要があります。詳細については、lnmp.conf ファイルのパラメータの説明を参照してください。

#最初のヒント: データベース (私は 3 を使用) を指定します。番号を入力して Enter キーを押すだけです。

##2 番目のプロンプト: データベースのパスワードを入力してください

3 番目のプロンプト: Innodb を有効にするかどうか、単に押してくださいy を入力するか押してください

##4 番目のヒント: PHP バージョン (デフォルト 5.6) を選択します。これはデフォルトのバージョンです。

#5 番目のヒント: デフォルトではインストールしないことにしました (私の場合はデフォルトです)

6 番目のヒント: Apache のバージョンを選択します (私が選択したデフォルト)

#7 番目のヒント: Nginx: OK、MySQL: OK、PHP: OK

と表示され、Nginx、MySQL、PHP がすべて実行されており、ポートが表示されている場合80 と 3306 が存在します。インストール時間のメッセージが表示され、「Install lnmp V1.5 completed! fun it.」と表示されれば、インストールは成功しています。 一部のシステムは、「lnmp V1.5 のインストールが完了しました! 楽しんでください。」でスタックする可能性があります。自動的に終了しない場合は、Ctrl c キーを押して終了できます。

インストールが完了したら、使用を開始できます。
仮想ホストの追加チュートリアル
を押してください。仮想ホストを追加した後、sftp または ftp サーバーを使用して Web サイトのコードをアップロードし、問題を解決できますドメイン名を VPS またはサーバーに追加し、IP 上で解決が有効になった後に使用できるようになります。
8 番目のプロンプト: インストールに失敗しました

上の図のようなプロンプトが表示される場合は、 a または複数のインストールが失敗した場合は、インストールが失敗したことを示しています。 ! winscp または他の同様のツールを使用して、lnmp-install.log を /root ディレクトリにダウンロードし、LNMP サポート フォーラムに投稿して、システムのディストリビューション名とバージョン番号、32 ビットか 64 ビットなどを指定する必要があります。 copy lnmp - install.log は圧縮され、添付ファイルとしてフォーラムにアップロードされます。ログからエラーを検出し、対応する解決策を提供します

デフォルトでは、LNMP は FTP サーバーをインストールしません。FTP サーバーの場合は必須です: https://lnmp .org/faq/ftpserver.html


仮想ホストの追加: lnmp カプセル化は非常に便利です

#lnmp vhost add // 仮想ホストを追加

#仮想ドメイン名を入力してください。私の場合は www です。 .tp5api.cn

ここではさらにドメイン名を追加するかどうかを尋ねられ、バインドするドメイン名を直接入力します。私は Enter キーを押してスキップしました

Web サイトのディレクトリが存在しない場合は、ディレクトリが作成されます。既存のディレクトリまたは設定するディレクトリを入力することもできます (

入力する場合はフル パス、つまり /!!! で始まる完全なパスである必要があることに注意してください)。入力せずに Enter キーを押すと、デフォルトのディレクトリが使用されます: /home/wwwroot/domain name

擬似静的を有効にする。これは SEO の最適化に有益です

デフォルトでは、discuz、discuzx、discuzx2 (Discuz X セカンダリ ディレクトリ)、wordpress、wp2 (WordPress セカンダリ ディレクトリ)、typecho、typecho2 (Typecho セカンダリ ディレクトリ)、sablog、emlog、dabr、phpwind、、dedecms が一般的に使用されます。 、drupal、ecshop、shopexなどのNginx擬似静的設定ファイルは名前を直接入力して利用できますが、セカンダリディレクトリの場合は設定ファイルのセカンダリディレクトリ名と対応させる必要があります。

#エラー ログを有効にするかどうか

有効にした場合、エラー ログを保存するログの名前を入力する必要があります。デフォルトのログ ディレクトリは :/home/wwwlogs/ デフォルトのファイル名は: ドメイン名.log です。Enter キーを押して確認した後、データベースとデータベース ユーザーを追加するかどうかを尋ねられます。

追加する場合は、まず MySQL root パスワードを確認する必要があります (注: パスワードを入力しても表示されません)

プロンプト データベース名を入力してください: および次に、作成するデータベースの名前を入力します。作成するデータベースのユーザー名はデータベースと同じ名前になります。Enter キーを押して確認します。
プロンプト mysql ユーザー データベース名のパスワードを入力してください: 設定するパスワードを入力し、Enter キーを押して確認します。

FTP サーバーがインストールされている場合は、FTP アカウントを追加するかどうかを尋ねられます

追加する必要がある場合は、次のように入力します。 y でない場合は、 n を入力して Enter を押します。

プロンプト Enter ftp account name: に続いて、作成する FTP アカウントの名前を入力し、Enter キーを押して確認します。

プロンプト FTP アカウントのパスワードを入力してください FTP アカウント: 設定するパスワードを入力し、Enter キーを押して確認します。

次は 1.4 で追加された新しい SSL 関数です。

入力 y を追加する必要がある場合は、入力 n を追加せずに Enter キーを押してください。

SSL の追加を選択すると、次のプロンプトが表示されます。

2 つのオプションがあります。オプション 1 は、準備した SSL 証明書とキーを使用することです。

> > プロンプトが表示されたら、SSL 証明書ファイルへのフル パスを入力し、必要な SSL 証明書のフル パスとファイル名を入力し、Enter キーを押して確認します。
> > プロンプト SSL 証明書キー ファイルへのフル パスを入力してください: 次に、キー ファイルのフル パスとファイル名を入力し、Enter キーを押して確認します。

2 オプションは、無料の SSL 証明書プロバイダー Letsencrypt の証明書を使用して、SSL 証明書とその他の情報を自動的に生成することです。

電子メール アドレスを入力し、Enter キーを押して確認する必要があります。

プロンプト Press any key to start create virtul host... Enter キーを押して確認すると、仮想ホストの作成が開始されます。

追加が成功すると、以下に示すように、追加されたドメイン名、ディレクトリ、擬似静的、ログ、データベース、FTP、およびその他の関連情報の入力を求めるプロンプトが表示されます。

擬似静的管理

##LNMPA または LAMP は、Web サイトのルート ディレクトリを直接使用して .htaccess をダウンロードし、擬似静的ルールを設定できます (特定のルールについては、プログラムの公式 Web サイトにアクセスして Google Baidu を見つけることができます)。ただし、LNMP では、Nginx 擬似静的ルールを使用する必要があります。 擬似静的は、いつでも追加または削除できます。仮想ホストの追加後に擬似静的を追加し忘れたり、追加しなかった場合は、構成ファイルを変更することで擬似静的を追加できます。

仮想ホスト構成ファイルは、/usr/local/nginx/conf/vhost/domain name.conf にあります。


擬似静的ルール ファイルは、/usr/local/nginx/ に配置する必要があります。 conf/.
仮想ホスト構成ファイルを編集するには、vi、nano、または winscp を使用できます。後者の 2 つのツールは初心者にとって簡単です。

たとえば、前に追加した仮想ホストを開いた後、構成の前半は次のように表示されます。


root /home/wwwroot/www の行の下に追加します。 .vpser.net;:
include wordpress.conf;上記の wordpress.conf は擬似静的ファイルです。他の擬似静的ファイルが必要な場合は、自分で作成して /usr/local/ にアップロードしてください。 nginx/conf/ and include pseudo-static.conf; 追加して保存した後、実行します:
/etc/init.d/nginx restart
再起動が有効になります。エラーが報告された場合は、次のことが考えられます。追加が正しくないか、疑似静的ルールが正しくありません。
1.4 以前のバージョンの疑似静的ファイルはすべて /usr/local/nginx/conf/ ディレクトリにあります。 1.5 以降のバージョンの疑似静的ファイルはすべて /usr/ にあります。 local/nginx/conf/rewrite directory
後ろに 2 が付いた疑似静的ファイルの名前は、セカンダリ ディレクトリの疑似静的ファイルです。必要に応じてセカンダリ ディレクトリの名前を変更するか、コピーすることができます。別の名前に変更し、仮想ホスト構成ファイルに含めます。

##Web サイト プログラムのアップロード

##FTP サーバーをインストールしている場合は、FTP クライアントを直接使用して FTP 情報でログインし、Web サイトまたは SFTP をアップロードできます。関連する権限を取得したら、インストールを開始できます。
Web サイトをアップロードした後、chown www:www -R /path/to/dir を実行して Web サイトのディレクトリにアクセス許可を設定し、/path/to/dir を Web サイトのディレクトリに置き換えることをお勧めします。
セキュリティ上の理由から、PHP の実行に必要のないアップロードされたファイルなどのディレクトリから実行権限を削除できます。参考: http://www.vpser.net/security/lnmp-remove-nginx-php-execute。 html

SSL 証明書を既存の仮想ホストに追加し、https を有効にする

##https サイトを既存の仮想ホストに追加するには、実行可能: lnmp ssl add コマンドにより ssl 証明書が追加されます。現在、独自の ssl 証明書を使用する方法と、Let's Encrypt の無料証明書を使用する方法の 2 つの方法があります。追加プロセスは、SSL 証明書とキーを入力するか、Let'sEncrypt を直接選択して証明書を自動的に生成する追加の手順があることを除いて、前の仮想ホストの追加プロセスと同じです。
バージョン 1.* から 1.4 にアップグレードする場合、またはバージョンを変更する場合は、https://lnmp.org/faq/upgrade1-4.html の手順を参照する必要があります。安全でない場合、または小さな緑色のロックが表示されない場合は、リンクに手順も記載されています。

Web サイト (仮想ホスト) のリスト

##実行: lnmp vhost list

Web サイト (仮想ホスト) の削除

##実行: lnmp vhost del

Web サイトを削除すると、最初に既存の仮想ホストがリストされます。プロンプトに従って、削除する仮想ホストのドメイン名を入力し、Enter キーを押して確認します。

これは仮想ホスト設定ファイルを削除するだけであり、Web サイトのファイルは削除されないため、自分で削除する必要があります。

LNMP 1.2 では、Web サイト ディレクトリを削除する前に、chattr -i /website directory/.user.ini を実行する必要があります。

chown または chmod を実行して、Web サイトのディレクトリの所有者グループまたは権限を操作する場合、「chown: `/home/wwwroot/default/.user.ini' の所有権を変更しています: 操作は許可されていません。」というプロンプトが表示される場合があります。強迫性障害がある場合は、前の chattr -i 操作を参照してください。

##デフォルト Web サイト (仮想ホスト)

##LNMP デフォルト Web サイト構成ファイル:/usr/local/nginx/conf/nginx.conf
LNMPAデフォルトの Web サイト設定ファイル: /usr/local/nginx/conf/nginx.conf および /usr/local/apache/conf/extra/httpd-vhosts.conf
LAMP のデフォルト Web サイト設定ファイル: /usr/local/apache/ conf/extra/httpd-vhosts.conf

アンチクロスディレクトリ設定

LNMP 1.1 およびそれ以前のバージョンでは php.ini を使用します。 open_basedir 設定

LNMP 1.2 以降のバージョンでは、クロスディレクトリ機能を防ぐために .user.ini を使用します。このファイルは Web サイトのルート ディレクトリにあります。.user.ini の open_basedir 値を変更して、ディレクトリを削除してアクセスを制限するか、削除してクロスディレクトリ設定を削除します。

.user.ini ファイルは直接変更できません。修復または削除したい場合は、chattr -i /website directory/.user.ini を実行する必要があります。
winscp ファイル管理を使用できます。 、vim エディターまたは nano 編集 デバイスが変更されます。
これを削除するには、rm -f /website directory/.user.ini を実行するだけです。
変更が完了したら、次のコマンドを実行します: chattr i/website directory/.user.ini
.user.ini は再起動する必要はなく、約 5 分で有効になります。php-fpm を再起動することもできます。そしてそれはすぐに有効になります。
Web サイトのディレクトリを変更したい場合は、上記の方法に従ってクロスディレクトリ設定を変更する必要があります。変更しないと必ずエラーが報告されます。 !

LNMP 1.4 では、アンチクロスディレクトリを使用したくない場合、または .user.ini のアンチクロスディレクトリ ディレクトリを変更したくない場合は、ディレクトリも変更する必要があります。 in /usr/local/nginx/conf/fastcgi.conf fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"; 行の前に # を追加するか、行を削除して変更します。nginx を再起動する必要があります。

LNMP 1.4 では、lnmp1.4/tools/ ディレクトリの ./remove_open_basedir_restriction.sh を直接使用して削除することもできます。
Thinkphp、codeigniter、Laravel などのフレームワークでは、通常、Web サイトのディレクトリは public の下にありますが、LNMP ではクロスディレクトリが許可されていないため、public の下にあるプログラムは、パブリックの親ディレクトリの下にあるファイルを呼び出すためにディレクトリを越える必要があります。 -ディレクトリ アクセスがデフォルトで設定されているため、クロスディレクトリ アクセスを防ぐために設定を削除する必要があります。これらのフレームワーク プログラムで 500 エラーが表示されることがありますが、これもこの問題が原因である可能性があります。

LNMPA または LAMP モード バージョン 1.2 以降では、クロスディレクトリ設定に対応する Apache 仮想ホスト構成ファイルが使用されます (lnmp 管理ツールによって追加された場合、ファイルは /usr/ です) local/apache/conf/ vhost/domain name.conf に php_admin_value open_basedir パラメータを設定します)。設定する必要がない場合は、先頭に # を付けてコメントするか、ディレクトリ制限を自分で変更できます。
Apache を再起動して有効にします。

pathinfo 設定

##LNMP 上の pathinfo の各バージョンの設定は基本的に同じです。

lnmp v1.1上,修改對應虛擬主機的設定檔(/usr/local/nginx/conf/vhost/網域.conf)
去掉#include pathinfo.conf前面的#,把try_files $uri = 404; 前面加上# 註解掉。

1.2,1.3,1.4,1.5以上版本,修改對應虛擬主機的設定檔(/usr/local/nginx/conf/vhost/網域.conf)
將include enable-php.conf ;替換為include enable-php-pathinfo.conf;

1.4版本多PHP版本啟用pathinfo的話,進入/usr/local/nginx/conf目錄,拷貝一份enable-php-pathinfo.conf 命名為enable-php7.2-pathinfo.conf,將enable-php7.2.conf 檔案裡fastcgi_pass這一行內容完整的複製下來替換enable-php7.2-pathinfo.conf 檔案中的fastcgi_pass這一行,保存,再按前面的方法修改虛擬主機include enable-php7.2-pathinfo.conf; 就行了,其他版本以此類推。

1.5版本多重PHP版本開啟pathinfo的話,可以在lnmp vhost add 是選擇啟用pathinfo,如果存在多重PHP版本就會提示你選擇,也可以直接修改虛擬主機設定檔將include enable-php. conf; 替換為include enable-php7.2-pathinfo.conf; 保存

修改pathinfo需要重新啟動nginx生效。

##資料庫管理

##1.3以上版本,可以在新增虛擬主機時選擇建立資料庫,也可以單獨使用lnmp database add 依提示新增資料庫,新增的使用者名稱和資料庫名稱是同名的。
新增資料庫指令:lnmp database add
編輯資料庫使用者密碼指令:lnmp database edit
刪除資料庫指令:lnmp database del
列出所有資料庫指令:lnmp database list

#這些資料都是在https://lnmp.org/faq/lnmp-vhost-add-howto.html(lnmp官網查到的)

很多東西是直接複製過來的,以我的水準寫的不會比官網手冊好

如果有人使用寶塔tp5報錯open_base_dir,網站設定裡面有一個安全防護,關掉了就可以(坑我好長時間)

# 相關建議:

CentOS 6 部署 Nginx PHP5 伺服器

##thinkphp專案部署到Linux伺服器上報錯誤「範本不存在」如何解決,thinkphplinux

thinkphp部署到萬網雲端伺服器上報連接不上mysql

以上がサーバー展開中に thinkphp5 で発生した問題の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。