次は、Laradocke 実行 TP プロジェクトについて紹介する thinkphp フレームワーク チュートリアルのコラムです。困っている友達のお役に立てれば幸いです!
1. laradock を初めて起動すると、ビルド プロセスが非常に遅くなります。
コンテナのプルの問題により、イメージはデフォルトで海外にあるため、コンテナを docker-compose する前に、.env ファイルで次のテキストを探してください
CHANGE_SOURCE=``false
次に、false を false true に変更し、次のテキストを探します。
#UBUNTU_SOURCE=aliyun
先頭の # を削除します。コメントを削除し、デフォルトの外部ミラー ソースを最速の国内ミラー ソースに変更します。aliyunのミラー ソース
次に、ワークスペースのタイム ゾーンを中国のタイム ゾーンに変更し、次のテキストを見つけます
WORKSPACE_TIMEZONE=UTC
UTC を PRC に変更します
次にコマンドを実行します
docker-compose up -d nginx mariadb
開始する必要があるコンテナを選択してください
自分で比較してくださいビルド時間後、帯域幅 20M 未満で、ミラー ソースが変更されていなければ、1 つと同じくらい高速になります変更後は 10 分しかかかりません
# 2. laradock が起動しています コンテナーのビルド ワークスペース プロセス中にエラーが報告されます
関連テキスト「raw.githubusercontent.com」が表示された場合は、ドメイン名をローカル ホストの IP にバインドしますLinux を例に挙げます
vim ` `/etc/hosts
3. Composer のインストールが遅い
laradock をインストールした後、git を使用してワークスペース コンテナー内のサードパーティのホスティング ウェアハウスから tp5 フレームワークをプルし、フレームワークの依存関係をインストールします。この時点では、composer のインストールは非常に遅くなります。国内のソースを置き換える必要がある場合は、次のコマンドを実行します。composer config -g repo.packagist combos https:``//packagist``.phpcomposer.com
4. Composer はインストールするバージョン番号を無視します
Composer のインストール中にエラー メッセージ「Your要件をインストール可能なパッケージのセットに解決できませんでした。」が表示された場合は、次のことができます。インストールのバージョン番号を無視して、次のコマンドを実行しますcomposer ``install
--ignore-platform-reqs
5. Composer は tp5 のデータベース移行ツールをインストールします
tp5.0 の移行ツールは 1.、tp5.1 の移行ツールは 2.バージョン番号が指定されていない場合は、デフォルトで最新のバージョンがインストールされます。移行ツールでは、次のコマンドを実行します。
composer require topthink``/think-migration``=1.*
##6. laradock の tp5 でデータベース接続を設定するとき、ホストはコンテナ名を入力します。私は mariadb コンテナを使用します。したがって、次の構成
##'host'=>'mariadb'
7. tp5 はランタイムに完全な権限を与えます##hmod -r runtime 777
Add によってスローされた例外をキャプチャします。 catch パラメータ Exception の前にあるバックスラッシュは、キャプチャが最下位の Exception から開始されることを示します
catch``(\Exception)画像の参照を容易にするために、画像の保存ディレクトリを public/uploads に指定しましたが、エラーが報告されました。パブリックに完全な権限を与えることで解決できますchmod -r public 777
10. バックエンド インターフェイスの権限の確認oauth2 は非常に優れた認証メカニズムです。PHP には優れたライブラリ https://github.com/thephpleague/ oauth2-server がありますが、非常に無力です。パスポートがある laravel とは異なり、また、 Drupal、cakephp、その他のフレームワークをサポートしています。Json-web-token を使用するのも良いです https://github.com/lcobucci/jwt
11. クロスドメイン処理アプリケーションディレクトリの tags.php に、アプリケーションの初期化時に実行されるファイルを追加します。 applicationapi/behavior/CORS.php ファイル、および header
// アプリケーションの初期化``'app_init'はアプリケーションの初期化プロセス中に発行されます
=> [` `' app\\api\\behavior\\CORS'``], クロスドメイン ファイル
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><?php
namespace app\api\behavior; use think\Response; class CORS{ public function appInit(&$params)
{ header(&#39;Access-Control-Allow-Origin: *&#39;);
header("Access-Control-Allow-Headers: token,Origin, X-Requested-With, Content-Type, Accept");
header("Access-Control-Allow-Methods:GET, POST");
if (request()->isOptions()) {
exit();
}
}}</pre><div class="contentsignin">ログイン後にコピー</div></div>
<hr>
<p><span class="header-link octicon octicon-link"></span><strong>12. git プッシュ/プルには本人確認が必要です。ユーザー名とパスワードを複数回入力してください</strong></p>
<p>Linux 環境では、ウェアハウス ディレクトリを実行します。 ##境界線なしでパケットを送信するように設定し、HTTP リクエスト バッファーを大きく設定します</p>##git config --global sendpack.sideband false git config --global http.postBuffer 524288000<p><code>
14. nginx は tp5 pathinfo をサポートしていませんプロジェクトに対応する .conf ファイル構成を変更します
<?php namespace app\api\behavior; use think\Response; class CORS { public function appInit(&$params) { header('Access-Control-Allow-Origin: *'); header("Access-Control-Allow-Headers: token,Origin, X-Requested-With, Content-Type, Accept"); header("Access-Control-Allow-Methods:GET, POST"); if (request()->isOptions()) { exit(); } } }
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> location ~ \.php {
try_files $uri /index.php =404;
fastcgi_pass php-upstream;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
# 添加部分↓↓↓↓
# Set var PATH_INFO
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
# 添加部分↑↑↑↑
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params;}</pre><div class="contentsignin">ログイン後にコピー</div></div>
時間を見つけて具体的なオプションを学習します
14. Docker 設定の国内ソース
sudo tee /etc/docker/daemon.json <<-'EOF'vim /etc/docker/daemon.json
次の内容を入力し、アドレスは自分で選択できます
{ "registry-mirrors": ["https://uxk0ognt.mirror.aliyuncs.com"] }
#その後、次の手順を実行します
systemctl restart docker
##Note
ご存知のとおり, github からのクローン作成は常に行われています。比較的遅いです。Code Cloud を使用して、事前に一般的に使用されるウェアハウスを独自の Code Cloud ワークスペースにインポートすることを選択できます。使用する必要がある場合は、Code Cloud を通じてクローンを作成してください
以上がLaradocke が実行する TP プロジェクトについての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。