From 4c2ff12ca519a7e062e31165df67bb057171f46b Mon Sep 17 00:00:00 2001 From: Baptiste Lemoine Date: Wed, 15 Jan 2020 16:46:56 +0100 Subject: [PATCH] add nginx conf --- doc/nginx/base-framadate-api.conf | 63 ++++++++ doc/nginx/base-symfony.conf | 50 +++++++ src/Entity/Owner.php | 230 +++++++++++++++--------------- 3 files changed, 227 insertions(+), 116 deletions(-) create mode 100644 doc/nginx/base-framadate-api.conf create mode 100644 doc/nginx/base-symfony.conf diff --git a/doc/nginx/base-framadate-api.conf b/doc/nginx/base-framadate-api.conf new file mode 100644 index 0000000..e9a4732 --- /dev/null +++ b/doc/nginx/base-framadate-api.conf @@ -0,0 +1,63 @@ +server { + listen 443 ssl http2; + listen [::]:443 ssl http2; + server_name framadate-api.cipherbliss.com; + root /home/www/tykayn/cipherbliss/framadate/public/; + # Use Mozilla's guidelines for SSL/TLS settings + # https://mozilla.github.io/server-side-tls/ssl-config-generator/ + # NOTE: some settings below might be redundant + ssl_certificate /etc/letsencrypt/live/framadate-api.cipherbliss.com/fullchain.pem; # managed by Cert$ + ssl_certificate_key /etc/letsencrypt/live/framadate-api.cipherbliss.com/privkey.pem; # managed by Ce$ + + client_max_body_size 32m; + + + 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(/|$) { + fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; + # or your custom php-handler + # fastcgi_pass php-handler + fastcgi_split_path_info ^(.+\.php)(/.*)$; + include fastcgi_params; + #include fastcgi.conf; + + + # optionally set the value of the environment variables used in the application + # fastcgi_param APP_ENV prod; + # fastcgi_param APP_SECRET ; + # 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). + 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://framadate-api.cipherbliss.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/framadate-api_error.log; + access_log /var/log/nginx/framadate-api_access.log; +} diff --git a/doc/nginx/base-symfony.conf b/doc/nginx/base-symfony.conf new file mode 100644 index 0000000..f0690e8 --- /dev/null +++ b/doc/nginx/base-symfony.conf @@ -0,0 +1,50 @@ +server { + server_name domain.tld www.domain.tld; + root /var/www/project/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(/|$) { + fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; + 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 ; + # 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). + 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://domain.tld/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; +} diff --git a/src/Entity/Owner.php b/src/Entity/Owner.php index 2af74ab..761427a 100644 --- a/src/Entity/Owner.php +++ b/src/Entity/Owner.php @@ -54,177 +54,175 @@ class Owner { */ private $createdAt; /** - * @ORM\Column(type="requested_polls_date" , options={"default"="CURRENT_TIMESTAMP"},nullable=true) + * @ORM\Column(type="datetime" , options={"default"="CURRENT_TIMESTAMP"},nullable=true) */ private $requestedPollsDate; public function __construct() { - $this->polls = new ArrayCollection(); - $this->comments = new ArrayCollection(); - $this->stackOfVotes = new ArrayCollection(); - $this->setCreatedAt( new \DateTime() ); - $this->setModifierToken( uniqid() ); - } + $this->polls = new ArrayCollection(); + $this->comments = new ArrayCollection(); + $this->stackOfVotes = new ArrayCollection(); + $this->setCreatedAt( new \DateTime() ); + $this->setModifierToken( uniqid() ); + } public function getId(): ?int { - return $this->id; - } + return $this->id; + } public function getEmail(): ?string { - return $this->email; - } + return $this->email; + } public function setEmail( string $email ): self { - $this->email = $email; - - return $this; - } + $this->email = $email; + + return $this; + } public function getPseudo(): ?string { - return $this->pseudo; - } + return $this->pseudo; + } public function setPseudo( string $pseudo ): self { - $this->pseudo = $pseudo; - - return $this; - } + $this->pseudo = $pseudo; + + return $this; + } /** * @return Collection|Poll[] */ public function getPolls(): Collection { - return $this->polls; - } + return $this->polls; + } public function addPoll( Poll $poll ): self { - if ( ! $this->polls->contains( $poll ) ) { - $this->polls[] = $poll; - $poll->setOwner( $this ); - } - - return $this; - } + if ( ! $this->polls->contains( $poll ) ) { + $this->polls[] = $poll; + $poll->setOwner( $this ); + } + + return $this; + } public function removePoll( Poll $poll ): self { - if ( $this->polls->contains( $poll ) ) { - $this->polls->removeElement( $poll ); - // set the owning side to null (unless already changed) - if ( $poll->getOwner() === $this ) { - $poll->setOwner( null ); - } - } - - return $this; - } + if ( $this->polls->contains( $poll ) ) { + $this->polls->removeElement( $poll ); + // set the owning side to null (unless already changed) + if ( $poll->getOwner() === $this ) { + $poll->setOwner( null ); + } + } + + return $this; + } /** * @return Collection|Comment[] */ public function getComments(): Collection { - return $this->comments; - } + return $this->comments; + } public function addText( Comment $text ): self { - if ( ! $this->comments->contains( $text ) ) { - $this->comments[] = $text; - $text->setOwner( $this ); - } - - return $this; - } + if ( ! $this->comments->contains( $text ) ) { + $this->comments[] = $text; + $text->setOwner( $this ); + } + + return $this; + } public function removeText( Comment $text ): self { - if ( $this->comments->contains( $text ) ) { - $this->comments->removeElement( $text ); - // set the owning side to null (unless already changed) - if ( $text->getOwner() === $this ) { - $text->setOwner( null ); - } - } - - return $this; - } + if ( $this->comments->contains( $text ) ) { + $this->comments->removeElement( $text ); + // set the owning side to null (unless already changed) + if ( $text->getOwner() === $this ) { + $text->setOwner( null ); + } + } + + return $this; + } /** * @return Collection|StackOfVotes[] */ public function getStackOfVotes(): Collection { - return $this->stackOfVotes; - } + return $this->stackOfVotes; + } public function addStackOfVote( StackOfVotes $stackOfVote ): self { - if ( ! $this->stackOfVotes->contains( $stackOfVote ) ) { - $this->stackOfVotes[] = $stackOfVote; - $stackOfVote->setOwner( $this ); - } - - return $this; - } + if ( ! $this->stackOfVotes->contains( $stackOfVote ) ) { + $this->stackOfVotes[] = $stackOfVote; + $stackOfVote->setOwner( $this ); + } + + return $this; + } public function removeStackOfVote( StackOfVotes $stackOfVote ): self { - if ( $this->stackOfVotes->contains( $stackOfVote ) ) { - $this->stackOfVotes->removeElement( $stackOfVote ); - // set the owning side to null (unless already changed) - if ( $stackOfVote->getOwner() === $this ) { - $stackOfVote->setOwner( null ); - } - } - - return $this; - } + if ( $this->stackOfVotes->contains( $stackOfVote ) ) { + $this->stackOfVotes->removeElement( $stackOfVote ); + // set the owning side to null (unless already changed) + if ( $stackOfVote->getOwner() === $this ) { + $stackOfVote->setOwner( null ); + } + } + + return $this; + } public function getModifierToken(): ?string { - return $this->modifierToken; - } + return $this->modifierToken; + } public function setModifierToken( string $modifierToken ): self { - $this->modifierToken = $modifierToken; - - return $this; - } + $this->modifierToken = $modifierToken; + + return $this; + } public function addComment( Comment $comment ): self { - if ( ! $this->comments->contains( $comment ) ) { - $this->comments[] = $comment; - $comment->setOwner( $this ); - } - - return $this; - } + if ( ! $this->comments->contains( $comment ) ) { + $this->comments[] = $comment; + $comment->setOwner( $this ); + } + + return $this; + } public function removeComment( Comment $comment ): self { - if ( $this->comments->contains( $comment ) ) { - $this->comments->removeElement( $comment ); - // set the owning side to null (unless already changed) - if ( $comment->getOwner() === $this ) { - $comment->setOwner( null ); - } - } - - return $this; - } + if ( $this->comments->contains( $comment ) ) { + $this->comments->removeElement( $comment ); + // set the owning side to null (unless already changed) + if ( $comment->getOwner() === $this ) { + $comment->setOwner( null ); + } + } + + return $this; + } public function getCreatedAt(): ?\DateTimeInterface { - return $this->createdAt; - } + return $this->createdAt; + } public function setCreatedAt( \DateTimeInterface $createdAt ): self { - $this->createdAt = $createdAt; - - return $this; - } + $this->createdAt = $createdAt; - public function getRequestedPollsDate() - { - return $this->requestedPollsDate; - } + return $this; + } - public function setRequestedPollsDate($requestedPollsDate): self - { - $this->requestedPollsDate = $requestedPollsDate; + public function getRequestedPollsDate() { + return $this->requestedPollsDate; + } - return $this; - } + public function setRequestedPollsDate( $requestedPollsDate ): self { + $this->requestedPollsDate = $requestedPollsDate; + + return $this; + } }