IDE:Symfony/Installieren: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
// via Wikitext Extension for VSCode |
// via Wikitext Extension for VSCode |
||
| Zeile 21: | Zeile 21: | ||
composer create-project symfony/website-skeleton stadtportal | composer create-project symfony/website-skeleton stadtportal | ||
</pre> | </pre> | ||
==nginx Konfiguration== | |||
<pre> | |||
sudo nano /etc/nginx/conf.d/stadtportal.conf | |||
</pre> | |||
Fügen Sie die folgende Konfiguration ein: | |||
<pre> | |||
server { | |||
listen 80; | |||
server_name example.com www.example.com; | |||
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; | |||
} | |||
</pre>1 | |||
Version vom 24. November 2025, 01:26 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/website-skeleton stadtportal
nginx Konfiguration
sudo nano /etc/nginx/conf.d/stadtportal.conf
Fügen Sie die folgende Konfiguration ein:
server {
listen 80;
server_name example.com www.example.com;
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;
}
1