2017-12-26 19 views
0

私がチェックしたのはhttps://symfony.com/doc/current/deployment.html#common-post-deployment-taskssymfony 4アプリケーションをコマンドラインなしでサーバ上で実行することは可能ですか?

私はコマンドラインで行う必要があるのではなく、手動で行っています。たとえば、ローカルマシンからコピーしたばかりのベンダーファイル。環境変数を設定できないため、手動で.envファイルを使用してキャッシュをクリアします。

初めてそのページがロードされますが、次のロードに私はエラー

名前空間「のSymfony \コンポーネント\依存性の注入\ Configを」からクラス「ContainerParametersResourceChecker」をロードしようとしました

を得ました。 別の名前空間に「使用」ステートメントを忘れていましたか?

キャッシュをクリアする前に同じエラーがあったと思います。もちろん、各ページの読み込み時にキャッシュをクリアすることはできません。

永久に修正することはできませんか、それはどうですか?

スタックトレース:

Symfony\Component\Debug\Exception\ClassNotFoundException: 
Attempted to load class "ContainerParametersResourceChecker" from namespace "Symfony\Component\DependencyInjection\Config". 
Did you forget a "use" statement for another namespace? 

    at var/cache/dev/ContainerWz8cB8L/srcDevDebugProjectContainer.php:357 
    at ContainerWz8cB8L\srcDevDebugProjectContainer->ContainerWz8cB8L\{closure}() 
    (vendor/symfony/config/ResourceCheckerConfigCache.php:95) 
    at Symfony\Component\Config\ResourceCheckerConfigCache->isFresh() 
    (vendor/symfony/config/ResourceCheckerConfigCacheFactory.php:42) 
    at Symfony\Component\Config\ResourceCheckerConfigCacheFactory->cache('/home/dari/domains/dari.us.lt/public_html/symfony_4_persons_demo/var/cache/dev/srcDevDebugProjectContainerUrlMatcher.php', object(Closure)) 
    (vendor/symfony/routing/Router.php:302) 
    at Symfony\Component\Routing\Router->getMatcher() 
    (vendor/symfony/routing/Router.php:256) 
    at Symfony\Component\Routing\Router->matchRequest(object(Request)) 
    (vendor/symfony/http-kernel/EventListener/RouterListener.php:109) 
    at Symfony\Component\HttpKernel\EventListener\RouterListener->onKernelRequest(object(GetResponseEvent), 'kernel.request', object(EventDispatcher)) 
    (vendor/symfony/event-dispatcher/EventDispatcher.php:212) 
    at Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(array(array(object(DebugHandlersListener), 'configure'), array(object(ValidateRequestListener), 'onKernelRequest'), array(object(SessionListener), 'onKernelRequest'), array(object(RouterListener), 'onKernelRequest'), array(object(ResolveControllerNameSubscriber), 'onKernelRequest'), array(object(LocaleListener), 'onKernelRequest'), array(object(TranslatorListener), 'onKernelRequest'), array(object(TraceableFirewallListener), 'onKernelRequest')), 'kernel.request', object(GetResponseEvent)) 
    (vendor/symfony/event-dispatcher/EventDispatcher.php:44) 
    at Symfony\Component\EventDispatcher\EventDispatcher->dispatch('kernel.request', object(GetResponseEvent)) 
    (vendor/symfony/http-kernel/HttpKernel.php:127) 
    at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1) 
    (vendor/symfony/http-kernel/HttpKernel.php:66) 
    at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true) 
    (vendor/symfony/http-kernel/Kernel.php:190) 
    at Symfony\Component\HttpKernel\Kernel->handle(object(Request)) 
    (public/index.php:34) 

アップデート:コメントすることで

は、私はまだ何をすべきかわかりません。 How to deploy a symfony project without SSH and CLI access to production

セット

parameters.ymlそのようなファイルが表示されない場合:ここでコメント内のリンクでした。

Environtmentがvarsは - 私は、彼らは$ PARAMETER-中にキャッシュにコピーされていると思います>(解決)

私は、コマンドラインなしでそれらを設定することができるとは思いません。

キャッシュします。ftpに手動でキャッシュフォルダの内容を削除したクリーン--env prodに

ログ

を削除するには、それは本当に重要ですか?

資産:私は、私はそれらを使用しないと思います--env PROD

をインストールします。

varフォルダの権限が777に設定されているため、何らかの問題が発生した場合に備えて、そのために使用します。プロダクションサーバーではなく、セキュリティについてあまり気にしないように、デモを実行するだけです。

+0

これを確認してください:https://stackoverflow.com/questions/47943031/how-to-deploy-a-symfony-project-without-ssh-and-cli-access-to-production/47943527#47943527 – albert

答えて

0

プロダクション設定でローカルホスト上で完全に動作するビルドが必要です。特定のプロジェクトがローカルで作業するためのすべてのステップがわかります。プロダクションセットアップのためにプロジェクトを新しいフォルダにクローンし、すべての手順を実行します。完了したら、すべてをサーバーにアップロードし、キーフォルダのアクセス許可を修正します。

注:

  • データベースサーバーのアドレス
  • データベース名
  • データベースのユーザー名
  • データベースのパスワード
  • SMTPサーバ: parameters.ymlはあなたのようなあなたのsymfonyのパラメータを設定ファイルであります
  • smtp username
  • smtpアドレス

ただし、symfony 4では環境変数に置き換えられました。

+0

私は思います私は生産を設定していないことを除いてこれをしましたが、それは開発環境のように動作するはずです。そして、どのパーミッションを設定すべきかわかりません。そして、私が得るエラーメッセージに基づいて、このパーミッションの問題はまったくありません。 –

+0

WORST ADVICE EVER:apache/php-fpmを使用して実行するユーザを確認し、そのユーザのすべての所有者を変更します。 var/recursivelyのすべてのファイルとフォルダを777に変更してください。デモ用ではないと言っていますか? :) – albert

+0

コマンドラインなしでApacheを実行するユーザーを探すにはどうすればよいですか?私は、PHPファイルにshell_execを追加すると、500エラーが発生します。はい、デモ用です。 –

関連する問題