我已经用自定义OpenSSL版本编译了Apache 2 2.4.57,然后安装了php8.2。这是我在localhost:8080上本地使用的一个测试Web服务器。服务器使用Apache的测试页面。
Apache 2安装在/usr/local/apache 2下
我使用sudo a2 enmod php8.2来启用PHP。
我创建了一个test.php页面,并将其复制到htdocs下:
<?php
phpinfo();
?>
测试PHP安装,但它不工作。当我在Chrome中输入localhost:8080/test.php时,它只显示页面的代码。
我根本不是一个网络开发者。我遵循了以下教程https://computingforgeeks.com/how-to-install-php-8-2-on-ubuntu/
在httpd.conf中还有什么可以做的来启用PHP吗?运行sudo a2 enmod php8.2后,httpd.conf没有修改,这正常吗?
我也试过使用php8.2-fpm,但它也不工作。我只是计划使用我的自定义版本的OpenSSL使用https将一个简单的视频流传输到视频播放器(ffplay)。
我认为Apache+php安装起来很简单,但似乎不可能配置:-(
有人能帮忙吗?谢谢
2条答案
按热度按时间ki1q1bka1#
a2enmod
是Debian / Ubuntu专门为支持apache2
软件包而编写的命令工具。它不是一个支持自定义编译Apache 2的工具。要使用PHP,您需要根据Apache 2的编译副本从源代码手动编译PHP。不建议这样做,因为您必须手动修补和更新Apache,以避免旧版本的漏洞被利用。
如果您没有PHP版本的偏好,您应该尝试以以下两种方式之一安装PHP:
第一种方法应该更直接:
如果你需要在Ubuntu服务器上安装PHP 8.2,但仍然想使用Apache软件包,那么你应该安装PHP 8.2和PPA:
P.S. PHP-FPM是非常灵活的,如果你需要并行运行多个PHP版本。但那会让你对你所做的事情有更多的理解。
2vuwiymt2#
谢谢杨
我听从了你的建议,成功地用我的Apache版本编译了php8.2。
我遵循以下信息:https://gist.github.com/z2z/3bf4c60b7f0c0171d410d54bad088e6e
然而,我发现一旦编译了PHP,就有一些不同之处。出于我的目的,我不需要任何数据库,所以我删除了数据库依赖项。
Apache安装在这里:/usr/local/apache 2/我有一个自定义版本的openssl:/usr/local/bin/openssl**
Apache编译的配置方式如下:
php8.5编译配置如下:
两者都是使用以下工具编译和安装的:
安装需要运行(我不知道为什么...):
编译后php8.2创建模块:php_module for apache2.可以使用以下方法进行验证:
它还在modules下创建了库libphp.so。
为了激活php,我在httdp.conf中添加了以下内容
然后我在htdocs中创建了一个php文件:
验证PHP是否有效!
幸运的是,只有在您需要使用PHP和Apache 2的自定义编译时,才需要所有这些!