Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Configure apache MPM in Beanstalk for a php/symfony site

I'm using AWS beanstalk to host a php/symphony application. I would like to properly configure apache regarding the machine size, currently t2.small, ie. 1 core, 2 GB RAM, which is pretty small.

apachectl -V gives me this :

Server version: Apache/2.4.16 (Amazon)
Server built:   Aug 13 2015 23:52:13
Server's Module Magic Number: 20120211:47
Server loaded:  APR 1.5.0, APR-UTIL 1.4.1
Compiled using: APR 1.5.0, APR-UTIL 1.4.1
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
  forked:     yes (variable process count)

From this doc, I need to at least configure the MaxRequestWorkers in MPM/prefork, in relation to the available RAM.

What's the proper way to configure this in beanstalk ? I guess it's through .ebextensions ? How ?

like image 978
mathieu Avatar asked Mar 13 '23 13:03

mathieu


1 Answers

I'm using .ebextensions for it.

This is part of my .ebextensions/apache.config setup, Adjust accordingly to your instance capacity and project demands

files:
  "/etc/httpd/conf.modules.d/00-mpm.conf":
      mode: "000644"
      owner: root
      group: root
      content: |
        LoadModule mpm_worker_module modules/mod_mpm_worker.so
        ServerLimit         512
        StartServers        100
        MaxRequestWorkers   256
        MinSpareThreads     100
        MaxSpareThreads     300
        ThreadsPerChild     25

This is part of my .ebextensions/php.config optimizations/setup, Adjust accordingly to your instance capacity

files:
  "/etc/php.d/52-fscache.ini":
      mode: "000755"
      owner: root
      group: root
      content: |
        [PHP]
        realpath_cache_size = 128M
        realpath_cache_ttl = 120

  "/etc/php-5.6.d/10-opcache.ini":
      mode: "00644"
      content: |
        zend_extension=opcache.so
        opcache.enable=1
        opcache.memory_consumption=256
        opcache.interned_strings_buffer=32
        opcache.max_accelerated_files=100000
        ;opcache.max_wasted_percentage=5
        opcache.use_cwd=0
        opcache.revalidate_freq=0
        opcache.revalidate_path=0
        opcache.blacklist_filename=/etc/php-5.6.d/opcache*.blacklist
        opcache.consistency_checks=0


  "/etc/php.d/51-upload.ini":
      mode: "000644"
      content: |
        post_max_size = 100M
        upload_max_filesize = 10M

  "/etc/php-fpm-5.6.d/www.conf":
      mode: "000644"
      content: |
        [www]
        user = webapp
        group = webapp
        listen = 127.0.0.1:9000
        listen.allowed_clients = 127.0.0.1
        ;process.priority = -15
        pm = static
        pm.max_children = 30
        pm.max_requests = 500
        php_admin_value[error_log] = /var/log/php-fpm/5.6/www-error.log
like image 102
albert Avatar answered Mar 16 '23 03:03

albert