现在,我正在使用apache2 PHP安装或新建 new服务器,因为旧的new服务器是与mod_php一起运行的。
我在网上找到了不同的教程,不太可能大多数是1-2岁。其中大多数使用:
libapache2-mod-fastcgi与Apache和PHP相结合。
在Ubuntu18.04仓库,这个包是不可用的,只有这个包:
libapache2-mod-fcgid
我现在能用哪一个?或者两者之间有什么区别?不幸的是,我在网上找不到一个很好的解释。
此外,我经常读到
mod_proxy_fcgi
这是不是意味着我不需要这个……包裹还在吗?
现在,我安装了像这样的所有东西,它可以工作,但我不确定这是否是正确的方法:
a2enmod actions fastcgi alias proxy_fcgi
apt install php-7.2 php7.2-fpm php7.2-gd php7.2-mysql php7.2-curl php7.2-xml php7.2-zip php7.2-intl php7.2-mbstring php7.2-bz2 php7.2-json php7.2-apcu php7.2-imagick
a2enmod actions fastcgi alias proxy_fcgivHost:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/"
</FilesMatch>
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>PHP正在运行(参见info.php的图片):PHP工作
在以下几个方面有什么区别:
FastCgiExternalServer和ProxyPassMatch ^/(..php(/.)?)$ fcgi://127.0.0.1:9000/path/to/your/documentroot/$1 SetHandler
我有一种感觉,每一个教程都告诉我一些不同的东西,我不知道2018年Ubuntu2018的最佳实践是什么。
发布于 2021-01-23 16:28:17
我知道这是一个老问题,但我想给出一个最新的答复。截至php5.3.3 (2010年)发布时,情况发生了很大变化。一些很棒的信息可以在Apache HTTP Server Wiki上找到。
关于如何只在Ubuntu apache2服务器上安装PHP,简短的回答(注:用已安装的版本替换php7.2 )是:
# Install php-fpm:
apt install php-fpm
# Disable mod_php (Apache Handler API):
a2dismod php*
# Enable Apache Modules/Configs required by fpm:
a2enmod proxy_fcgi setenvif
a2enconf php7.2-fpm.conf
# Restart the services:
systemctl restart php7.2-fpm.service systemctl restart apache2.service如果要运行PHP,还需要从使用预叉作为多处理模块(MPM)进行更改。这里有一些使用说明。
详细说明:基本上可以安装3种不同的Server : Apache、FPM或CGI。查看不同的配置文件可以帮助您了解您可能在系统上安装了什么。目前,在使用php7.x的Ubuntu18.x上创建了以下php.ini文件,具体取决于您安装了什么:
/etc/php/7.2/cli/php.ini
这是用于在命令行上运行php的php程序。每当您安装FPM、CGI或Apache时,都会包含此内容。您可以通过以下方式直接安装它:
apt install php-cli要查找用于PHP的所有配置文件,可以运行:
php --ini/etc/php/7.2/apache2/php.ini
这是Apache使用的PHP插件。如果您没有安装PHP或PHP,可以在/etc/apache2/mods-available/php7.2中找到它,那么这就是包含您的PHP服务器设置的文件。要查找所有配置文件,您需要在网站根目录中的创建phpinfo()文件。
要安装,还必须从Apache内部启用mod_php。
apt install libapache2-mod-php
a2enmod php7.2/etc/php/7.2/fpm/php.ini
这是FastCGI流程管理器。它是PHP处理的包装器,在系统上作为独立进程运行(与Apache插件不同)。只有在安装了PHP之后,您才会拥有这个目录。在这种情况下,它将是对and服务器进行配置更改的地方,并取代apache2/php.ini文件。要查找所有配置文件,您需要在网站根目录中的创建phpinfo()文件。使用PHP作为fastCGI进程服务器运行需要使用apache模块mods-enabled/mod_proxy_fcgi,它与php一起启用。安装php还将使用conf-enabled/php7.2-fpm.conf配置apache,将FPM设置为unix域套接字。
apt install php-fpm
a2enmod mod_proxy_fcgi/etc/php/7.2/cgi/php.ini
这是可以安装PHP的第三种方式。这是运行基于PHP的应用程序的遗留方式,而不是新的PHP。mod_fcgid是mod_cgi或mod_cgid的高性能替代品,它也将在Apache或PHP中取代php.ini。要查找所有配置文件,您需要在网站根目录中的创建phpinfo()文件。同样,它还附带了自己的apache模块和配置:mods-enabled/fcgid.conf mods-enabled/fcgid
apt install libapache2-mod-fcgid
a2enmod fcgid发布于 2018-10-30 15:22:39
下面是我的vhost,用于使用mod_proxy_fcgi连接到FPM (显然是推荐的设置,但不要向我询问细节!):
<VirtualHost *:80>
ServerName awesome.scot
ServerAlias localhost
DocumentRoot /var/www/html/public
<Directory "/var/www/html">
DirectoryIndex index.php
FallbackResource /index.php
Options -Indexes +FollowSymLinks
AllowOverride FileInfo All
Require all granted
</Directory>
ProxyPassMatch ^/(.*\.php)$ fcgi://php:9000/var/www/html/public/$1
</VirtualHost>在大厅里,我还戴着这些:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so如果您使用XDebug,您将需要将它的端口更改为9001,因为现在使用的是9000。
如果您需要查看更多配置,请查看我的码头灯堆栈配置( https://github.com/delboy1978uk/lamp )
https://stackoverflow.com/questions/53066973
复制相似问题