IDE:Symfony/Installieren: Unterschied zwischen den Versionen

Aus ahrensburg.city
Zur Navigation springen Zur Suche springen
// via Wikitext Extension for VSCode
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 7: Zeile 7:
</pre>
</pre>
==Composer Installieren==
==Composer Installieren==
<pre>
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
echo 'Installer corrupt'.PHP_EOL; unlink('composer-setup.php'); exit(1); }"
echo 'Installer corrupt'.PHP_EOL; unlink('composer-setup.php'); exit(1); }"
Zeile 12: Zeile 13:
php -r "unlink('composer-setup.php');"
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
sudo mv composer.phar /usr/local/bin/composer
</pre>
==nginx==
==nginx==
<pre>
<pre>
Zeile 19: Zeile 22:
==Symfony Projekt Erstellen==
==Symfony Projekt Erstellen==
<pre>
<pre>
composer create-project symfony/website-skeleton stadtportal  
composer create-project symfony/skeleton:"8.0.x-dev" stadtportal
cd stadtportal
composer require webapp
</pre>
</pre>


Zeile 32: Zeile 37:
     listen 80;
     listen 80;


     server_name example.com www.example.com;
     server_name stadtportal.localhost;
     root /var/www/stadtportal/public;
     root /var/www/stadtportal/public;


Zeile 90: Zeile 95:
}
}


</pre>1
</pre>

Aktuelle Version vom 29. November 2025, 01:47 Uhr

Voraussetzungen

Um Symfony zu installieren, benötigen Sie die folgenden Voraussetzungen:

PHP Installieren

sudo apt install php-fpm php-pgsql php-xml php-curl php-gd php-mbstring php-xmlrpc php-zip php-intl php-json php-cli php-common php-apcu php-bcmath php-soap php-ldap php-imagick php-zip php-gmp -y

Composer Installieren

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
echo 'Installer corrupt'.PHP_EOL; unlink('composer-setup.php'); exit(1); }"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer

nginx

sudo apt-get install nginx
sudo rm /etc/nginx/sites-enabled/default

Symfony Projekt Erstellen

composer create-project symfony/skeleton:"8.0.x-dev" stadtportal 
cd stadtportal
composer require webapp

nginx Konfiguration

sudo nano /etc/nginx/conf.d/stadtportal.conf

Fügen Sie die folgende Konfiguration ein:

  
server {
    listen 80;

    server_name stadtportal.localhost;
    root /var/www/stadtportal/public;

    location / {
        # try to serve file directly, fallback to index.php
        try_files $uri /index.php$is_args$args;
    }

    # optionally disable falling back to PHP script for the asset directories;
    # nginx will return a 404 error when files are not found instead of passing the
    # request to Symfony (improves performance but Symfony's 404 page is not displayed)
    # location /bundles {
    #     try_files $uri =404;
    # }

    location ~ ^/index\.php(/|$) {
        # when using PHP-FPM as a unix socket
        fastcgi_pass unix:/var/run/php/php8.4-fpm.sock;

        # when PHP-FPM is configured to use TCP
        # fastcgi_pass 127.0.0.1:9000;

        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;

        # optionally set the value of the environment variables used in the application
        # fastcgi_param APP_ENV prod;
        # fastcgi_param APP_SECRET <app-secret-id>;
        # fastcgi_param DATABASE_URL "mysql://db_user:db_pass@host:3306/db_name";

        # When you are using symlinks to link the document root to the
        # current version of your application, you should pass the real
        # application path instead of the path to the symlink to PHP
        # FPM.
        # Otherwise, PHP's OPcache may not properly detect changes to
        # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
        # for more information).
        # Caveat: When PHP-FPM is hosted on a different machine from nginx
        #         $realpath_root may not resolve as you expect! In this case try using
        #         $document_root instead.
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        # Prevents URIs that include the front controller. This will 404:
        # http://example.com/index.php/some-path
        # Remove the internal directive to allow URIs like this
        internal;
    }

    # return 404 for all other php files not matching the front controller
    # this prevents access to other php files you don't want to be accessible.
    location ~ \.php$ {
        return 404;
    }

    error_log /var/log/nginx/project_error.log;
    access_log /var/log/nginx/project_access.log;
}