Apache 在 Ubuntu 16.04 升级后将 PHP 文件呈现为文本。
Apache 已安装并正在运行。PHP7 正在运行。当我执行以下命令时,我得到了正确的输出:
php -r 'echo "\n\nYour PHP installation is working fine.\n\n\n";'
Run Code Online (Sandbox Code Playgroud)
但是,当我访问http://localhost/info.php或任何其他 php 文件时,我得到的是文件内容而不是页面。
大多数在线帮助都是针对旧版本的 Ubuntu 和 PHP,所以我不确定它们是否可靠。
更新:安装 libapache2-mod-php7.0 并启用 php7.0 后,Apache 无法启动。见输出:
douglas@douglas-acer:~$ sudo service apache2 restart
douglas@douglas-acer:~$ sudo apt-get install libapache2-mod-php
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
libapache2-mod-php
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/2.960 …Run Code Online (Sandbox Code Playgroud) 我从 14.04LTS 升级到 16.04LTS;php5 到 php7.0;MySQL 到 5.7。Apache 和 PHP 正在运行,但在尝试访问 MySQL 数据库时,我得到以下信息:
fatal error: could not find driver
Run Code Online (Sandbox Code Playgroud)
phpinfo() 在 PDO Drivers Enabled 下显示“no value”。试图php.ini与 PHP5进行比较,但看不到任何明显的东西。我从这里去哪里?
我有一个关于我的 Ubuntu 服务器上的 PHP 更新的查询。
我注意到https://launchpad.net/~ondrej/+archive/ubuntu/php 的php 版本似乎比官方 ubuntu PHP 包的更新速度快得多。
我的主要用例是在这些 Ubuntu 服务器上运行 PHP 生产环境,虽然使用官方的 Ubuntu 存储库通常是最好的选择,但实际上使用“ondrej ppa”会更安全,因为它们得到了错误修复和 CVE 补丁考虑到我的主要用例是 PHP 服务器,速度要快得多?
理想情况下,我想在 PHP 核心团队发布后立即更新http://us3.php.net/ChangeLog-7.php#7.0.14这样的东西,而不是等x 个月让 ubuntu 打包. 根据我收集的信息,建议的 PPA 的软件包维护者似乎也是为 Debian 制作官方软件包的人。
在这个用例中在生产中使用非官方的东西有什么实际的缺点?你不推荐吗?
基于评论中的答案和选定的解决方案。Canonical 将安全补丁应用于当前打包的 PHP 版本。因此,带有 Ubuntu 的官方软件包同样安全 - 但不会包含 PHP Core 团队添加的任何额外功能 - 这意味着它不会引入对许多用户来说很重要的错误/回归。
的/〜的Ondrej PPA可以被认为在这种情况下值得信赖; 许多用户依赖 PPA,频繁更新,并且维护者是 Debian 软件包的核心维护者之一。
在我的例子中,我选择使用这个 PPA。因为它允许我利用 PHP 7.1 附带的功能
感谢你的帮助。
我添加了 ondrej PPA。并尝试安装 php 7.2,但看起来 PPA 尚未更新。我的解决方法是什么?
当我运行任何 php 脚本时,我在第 0 行的 Unknown 中收到一个错误 sodium_init()。
使用 Ubuntu 18.04、PHP 7.2.10
例子:
admin@server:~$ php -v
PHP Fatal error: sodium_init() in Unknown on line 0
PHP 7.2.10-0ubuntu0.18.04.1 (cli) (built: Sep 13 2018 13:45:02) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.10-0ubuntu0.18.04.1, Copyright (c) 1999-2018, by Zend Technologies
Run Code Online (Sandbox Code Playgroud)
或作曲家:
admin@server:~$ php composer.phar
PHP Fatal error: sodium_init() in Unknown on line 0
______
/ ____/___ ____ ___ ____ ____ …Run Code Online (Sandbox Code Playgroud) 我在/etc/php/7.0/mods-available. 我怎样才能启用它。我试过了php5enmod, and php7enmod。没有一个对我有用。
谢谢你。
我正在将 Ubuntu 18.04 LTS 服务器升级到 PHP 7.4,因为不再支持 PHP 7.2。
\n其他公共问题指示我添加sudo add-apt-repository ppa:ondrej/php,例如如何安全更新/升级 PHP 7.2 到最新版本?
当我运行时add-apt-repository ppa:ondrej/php,会向我显示以下信息(出于此问题的目的引用相关部分):
\n\n注意事项:
\n\n
\n- 如果您使用的是 php-gearman,则需要添加 ppa:ondrej/pkg-gearman
\n- 如果您使用的是apache2,建议添加ppa:ondrej/apache2
\n- 如果使用nginx,建议添加 ppa:ondrej/nginx-mainline\n\xc2\xa0\xc2\xa0\xc2\xa0 或 ppa:ondrej/nginx
\n
add-apt-repository ppa:ondrej/apache2如果我在这台服务器上运行 apache2,我也应该这样做吗?
我得到了错误
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_intl.dll' - /usr/lib/php/20151012/php_intl.dll: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_soap.dll' - /usr/lib/php/20151012/php_soap.dll: cannot open shared object file: No such file or directory in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)
正如@Parto所说
我跑 php -i | grep ".ini"
并得到了结果:-
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_intl.dll' - /usr/lib/php/20151012/php_intl.dll: cannot open shared object file: …Run Code Online (Sandbox Code Playgroud) 我想尝试 php 7 并让我的网站在 php 7 上工作,同时让其他网站在 php 5 上工作以防万一。这样我就可以从域虚拟主机配置中决定要运行哪个 php。
我查看了 php 版本管理,发现可以运行两个版本,尽管我发现的版本似乎适用于 apache。我正在寻找有关如何在 nginx 下执行此操作的更明确说明。我也运行 hhvm 以防万一。