Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
content:apache_phpfpm [2020/04/05 18:26] – [Tell Apache to use php-fpm] Danielcontent:apache_phpfpm [2020/04/06 08:49] – [About PHP- Modules] Daniel
Zeile 1: Zeile 1:
-====== Howto setup a LAMP-Server in 2018 ======+====== Howto setup a LAMP-Server in 2018-2020 ======
  
 This documentation is about how to set up a LAMP- Server (Linux, Apache, MySql, PhP) in the current, most stable way. The Reason for me writing this is, that default Installations of common Distruibutions are often based on an old way in Server- Configuration, which is not the way it could be done today, leading to instability and complex configuration. This documentation is about how to set up a LAMP- Server (Linux, Apache, MySql, PhP) in the current, most stable way. The Reason for me writing this is, that default Installations of common Distruibutions are often based on an old way in Server- Configuration, which is not the way it could be done today, leading to instability and complex configuration.
 +
  
 ===== Choosing Installation-Media & Install Basic System ===== ===== Choosing Installation-Media & Install Basic System =====
Zeile 108: Zeile 109:
  
 </code> </code>
 +
   * I would suggest using a newer Version of php-fpm than in the default Repositories. E.g. using the Version of Repository "Apache Modules". Check out other "Experimental Packages" in [[https://software.opensuse.org/package/php7-fpm?search_term=php+fpm|https://software.opensuse.org/package/php7-fpm?search_term=php+fpm]]   * I would suggest using a newer Version of php-fpm than in the default Repositories. E.g. using the Version of Repository "Apache Modules". Check out other "Experimental Packages" in [[https://software.opensuse.org/package/php7-fpm?search_term=php+fpm|https://software.opensuse.org/package/php7-fpm?search_term=php+fpm]]
   * Either install the new Version with 1-Click-Install there **or**  for the default Version, use   * Either install the new Version with 1-Click-Install there **or**  for the default Version, use
Zeile 115: Zeile 117:
  
 </code> </code>
 +
   * Copy the configuration-files for php-fpm:   * Copy the configuration-files for php-fpm:
  
Zeile 124: Zeile 127:
   * Than go to /etc/php7/fpm and briefly check if php-fpm.conf is ok for you   * Than go to /etc/php7/fpm and briefly check if php-fpm.conf is ok for you
   * Explanation: In php-fpm.d directory you need to set up at least one pool. This is one Instance for Apache to speak to.   * Explanation: In php-fpm.d directory you need to set up at least one pool. This is one Instance for Apache to speak to.
-  * This here is new for the setup: in "/etc/php7/fpm/php-fpm.d/www.conf" i do recommend setting "listen" to socket-file and not to ip. eg: listen = /var/run/php-fpm.sock - as long as your php and webserver resides on the same machine. Linux Sockets are much more faster. 
-  * If using sockets, make sure the path exists and is writeable by the apache- user (an that this mathces the user in www.conf for php-fpm) 
  
 The "pm"-setting in www.conf controls how much memory will be used at the end. Start with: The "pm"-setting in www.conf controls how much memory will be used at the end. Start with:
Zeile 134: Zeile 135:
   * pm.min_spare_servers = 6   * pm.min_spare_servers = 6
   * pm.max_spare_servers = 18   * pm.max_spare_servers = 18
 +
 +==== Using Sockets ====
 +
 +Whenever you can - you should use unix sockets instead of TCP/IP, because of less overhead. If you are on the same machine (apache and php-fpm), than you can.
 +
 +So this here is new for the setup: in "/etc/php7/fpm/php-fpm.d/www.conf" set
 +
 +<code>
 +listen = /var/run/php-fpm.sock
 +listen.owner = wwwrun
 +listen.group = www
 +listen.mode = 0660
 +
 +</code>
 +
 +You need to make the file be created by systemd, so create a file /usr/lib/tmpfiles.d/php-fpm.conf and paste this line there:
 +
 +<code>
 +d /run/php-fpm 0700 wwwrun root -
 +
 +</code>
  
  
Zeile 160: Zeile 182:
 Which can be found in the Repo: [[https://build.opensuse.org/project/show/devel:languages:php|https://build.opensuse.org/project/show/devel:languages:php]] Which can be found in the Repo: [[https://build.opensuse.org/project/show/devel:languages:php|https://build.opensuse.org/project/show/devel:languages:php]]
  
-After that, modules can be installed by e.g. "pecl install imagick". They also need to be loaded in php.conf. I would make an new config named /etc/php7/conf.d/pear_pecl.conf and include they modules there. E.g. "extension=imagick.so"+After that, modules can be installed by e.g. "pecl install imagick". They also need to be loaded in php.conf. I would make an new config named /etc/php7/conf.d/pear_pecl.ini and include they modules there. E.g. "extension=imagick.so"
  
 Restart php-fpm for the changes and check the log of php-fpm (usually in /var/log/php-fpm.log) for errors when loading modules. Restart php-fpm for the changes and check the log of php-fpm (usually in /var/log/php-fpm.log) for errors when loading modules.
Zeile 208: Zeile 230:
  
 Now you can start and enable apache2 Now you can start and enable apache2
-<code> 
  
 +<code>
 sudo systemctl start apache2 sudo systemctl start apache2
-sudo systemctl enable php-fpm+sudo systemctl enable apache2
  
 </code> </code>
Zeile 217: Zeile 239:
 check if the modules have beend loaded: check if the modules have beend loaded:
  
 +<code>
 apache2ctl -M apache2ctl -M
 +
 +</code>
  
 This should include proxy_fcgi_module now. This should include proxy_fcgi_module now.
 +
 +
 +==== Create a PHP- Test- File ====
 +
 +Create the File /srv/www/htdocs/phpinfo.php (with read-permissions for user wwwrun) and paste this into it:
 +
 +<code>
 +<?php
 +
 +// Show all information, defaults to INFO_ALL
 +phpinfo();
 +
 +?>
 +
 +</code>
 +
 +Now open your Web- Browser and go to: [[http://localhost/phpinfo.php|http://localhost/phpinfo.php]]
 +
 +This should give you the complete Info of your php-configuration. If something fails, check if the above services are started an/or the logfiles.
  
 You are done. Now its up to you to fill Apache with content. Have fun! You are done. Now its up to you to fill Apache with content. Have fun!
  
  
  • content/apache_phpfpm.txt
  • Zuletzt geändert: 2023/10/01 10:24
  • von Daniel