Nasazení Symfony na Wedos

Nasazováním mého webu na Wedos, který jsem dělal v Symfony, jsem strávil několik hodin. Nikde jsem nenašel žádný přesný návod, který by se dal použít, tak jsem si sepsal vlastní. Používám Symfony 7.3.3.

Příprava kódu

Kroky pro přípravu produkční verze aplikace.

Příprava vendoru na produkci

composer install --no-dev --optimize-autoloader

Promazání cache

APP_ENV=prod APP_DEBUG=0 php bin/console cache:clear

Příprava cache

php bin/console cache:warmup --env=prod --no-debug

Zkompilování JS a CSS

php bin/console asset-map:compile

Export proměnných prostředí

composer dump-env prod

Nahrání souborů

Na server se pak nahrají dané soubory:

/config/, /src/, /templates/, /translations/, /public/, composer.json, composer.lock, .env.local.php, /vendor/

Na straně Wedos

Wedos má dost striktní práva ohledně použití .htaccess příkazů. Mnoho jich je zakázáno, tak jsem tu sepsal moje úpravy, které mi pomohly web zprovoznit.

  1. Upravit .htaccess v rootu pro přesměrování do složky /public

    Symfony má index.php ve složce public, tak je potřeba to tam přesměrovat. Já jsem celý projekt nahrál do složky /www/blog/.

    RewriteCond %{HTTP_HOST} ^myblog.fck$
    RewriteCond %{REQUEST_URI} !^/blog/public/
    RewriteRule (.*) /blog/public/$1 [L]

    Tento blok se vkládá hned po „RewriteEngine On“.

  2. Upravit .htaccess ve složce /public

    Je potřeba smazat nebo zakomentovat následující příkazy, které Wedos nepodporuje.

    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>
    Options +SymLinksIfOwnerMatch
  3. Opravit práva složek a souborů

    Pokud složka public nemá dostatečná práva, nastavte práva 755 pro složky a 644 pro soubory.