我刚刚启动了一个 Ubuntu 11.10 盒子,然后跑去apt-get install apache2 php5在盒子上安装 apache2 和 PHP 5。现在它作为一个“网络服务器”运行并加载“It Works!” 页。现在我正在努力加强安全性,我对 linux web 服务器有以下问题:
www-data?对于以用户身份运行的 apache/php?我在检查默认设置时做了以下事情:
当我cd /和做ls -al的内容列表,我看到/var:
drwxr-xr-x 13 root root 4096 2012-02-04 20:47 var/
Run Code Online (Sandbox Code Playgroud)
如果我cd进入var并且确实ls -al看到:
drwxr-xr-x 2 root root 4096 2012-02-04 20:47 www/
Run Code Online (Sandbox Code Playgroud)
最后,在里面/var/www我看到:
drwxr-xr-x 2 root root 4096 2012-02-04 20:47 ./
drwxr-xr-x 13 root root …Run Code Online (Sandbox Code Playgroud) 如何在不显示状态的情况下静默提取文件?
我正在尝试构建一个 bash 脚本来安装 Source Guardian PHP 扩展,但是每个后续版本的 Ubuntu 上的目标目录都不同。
在 Ubuntu 14.04 上安装 PHP5 会导致扩展存储在 /usr/lib/php5/20121212+lfs/ 中,在 Ubuntu 15.04 中此目录发生变化,例如 /usr/lib/20131226/
我检查了 /etc/php5/fpm/php.ini 和 /etc/php5/fpm/php-fpm.conf 但这些文件都没有提到 20121212+lfs 或 20131226。
如果我将 Source Guardian 扩展放在其他任何地方,它不会加载。
有没有办法以编程方式确定扩展文件夹?
我正在使用 Linux 服务器开发一个 php 应用程序。我的问题是执行shell_exec()调用某些 exe 文件不起作用(实际上不是 exe,它是一种 linux 可执行文件)
echo shell_exec("whoami");
Run Code Online (Sandbox Code Playgroud)
我有守护进程
echo shell_exec("ls")
Run Code Online (Sandbox Code Playgroud)
我有一些文件名但是
echo shell_exec("php -v")
Run Code Online (Sandbox Code Playgroud)
我什么都没有,一个空白页
echo shell_exec("php ....bla bla bla")
Run Code Online (Sandbox Code Playgroud)
也是空白页。
如果我在终端(用户 hu)上输入,所有这些命令都将起作用。我已经在谷歌上搜索了几个小时,人们说这是因为许可。我没有在 Linux 上的经验。我必须做什么才能在 php 中执行我的程序?
我正在salt用来配置我的服务器,我只是尝试升级到 php 7,尽管一切都安装正确,但任何时候我运行php -v或运行任何 php 任何东西它都会在任何输出的头部抛出:Cannot load Zend OPcache - it was already loaded. 如果我看到这个就卸载了Failed loading /usr/lib64/php/modules/opcache.so: /usr/lib64/php/modules/opcache.so: cannot open shared object file: No such file or directory
这是安装php-v和未php-opcache安装的完整输出。
Cannot load Zend OPcache - it was already loaded
PHP 7.0.1 (cli) (built: Dec 16 2015 15:31:55) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright …Run Code Online (Sandbox Code Playgroud) 我只想获取 CentOS 上安装的 php 版本。
输出 php -v
PHP 7.1.16 (cli) (built: Mar 28 2018 13:19:29) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
Run Code Online (Sandbox Code Playgroud)
我尝试了以下操作:
php -v | grep PHP | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)
但我得到的输出是:
7.1.16
(c)
Run Code Online (Sandbox Code Playgroud)
我怎样才能只得到 7.1.16?
更新更清晰:
根据http://expressionengine.com/user_guide/installation/installation.html,它说:
对于大多数 Unix 主机,以下是典型的,但您可以检查您的主机,看看是否可以使用更严格的权限来允许 PHP 写入文件 (666) 和文件夹 (777)。在 Windows 服务器上,以下内容不适用,但您需要确保 ExpressionEngine 可写入文件和文件夹。为此,您可能需要联系您的房东。
不确定这是什么意思。我可以将特定文件和文件夹分别更改为 666 和 777,在我是 chown'er 的地方,但上面的内容听起来好像我也需要允许 PHP 执行此操作?
原问题:
我需要确保 PHP 可以写入特定文件 (666) 和文件夹 (777)。
我该怎么做呢?
我需要在灯服务器上安装与旧服务器上安装的完全相同的 php 扩展,如何确切知道安装了哪些扩展以便在新服务器上安装相同的扩展?
初始情况如下所示:
所需的情况如下所示:
问题:
我已经做了一些研究,但不幸的是没有找到任何适合生产环境的东西。CIOPFS看起来不错,但明确表示不能在生产系统上使用。你认为mod_spellingApache 会是一个选择吗?对我来说尚未解决的问题是,PHP 是否在该模块的帮助下或直接访问文件(这将使其无用)。
我们是否应该吞下苦果并仔细阅读所有代码?我们希望避免这种情况,因为我们将用新的构建内容(长期)逐步替换当前的软件环境。