标签: php

如何使用 NameVirtualHosts 在 LAMP 服务器上设置每个站点的 php.ini 文件?

我有一个LAMP服务器,使用NameVirtualHosts为许多不同的网站提供服务。

直到最近,拥有一个全局 php.ini文件还不错,但最近我们的一位开发人员要求在 php.ini 中进行一些我不想全局设置的设置。

我很确定我听说你可以在每个站点的基础上设置 php.ini 文件,但不知道如何去做。

有人可以指出我如何实现这一目标的正确方向吗?

php configuration lamp apache-2.2

10
推荐指数
2
解决办法
2万
查看次数

如何确定正在使用哪个 PHP?

如何确定正在使用哪个 PHP?

例如,如果有/usr/local/bin/phpand usr/local/bin/php5,我怎么知道我的 PHP 脚本正在使用哪个?

php

10
推荐指数
4
解决办法
4万
查看次数

用于生产用途的安全 LAMP 服务器

保护 Linux、Apache、MySQL、PHP 服务器(甚至 Perl)以供生产使用的程序是什么?

除了为 Linux 设置 MySQL 密码和 root 密码之外,还应该采取哪些其他(可能不那么明显)的步骤?

另外我可以采取哪些步骤,如果我会变得更加偏执,那通常可能没有必要?

这是用于基本的单站点使用,但必须是安全的。

mysql linux php lamp apache-2.2

10
推荐指数
1
解决办法
5138
查看次数

常见的 PHP 设置不安全?

我在大学的系统管理部门工作,偶然发现了一些可能很常见但对我来说非常震惊的事情。

所有 public_html 目录和 web 区域都存储在 afs 上,具有 web 服务器的读取权限。由于允许用户在他们的 public_html 中有 php 脚本,这意味着他们可以从 php 中访问彼此的文件(以及主要的 web 文件!)。

这不仅使任何 .htaccess 密码保护完全无用,而且还允许用户读取包含 mysql 数据库密码和类似敏感信息的 php 源文件。或者,如果他们发现其他人拥有 Web 服务器具有写访问权限的目录(例如用于个人日志或保存提交的表单数据),他们可以将文件存储在这些帐户中。

一个简单的例子:

<?
  header("Content-type: text/plain");
  print file_get_contents("/afs/example.com/home/smith/public_html/.htpasswd"); 
?>
Run Code Online (Sandbox Code Playgroud)

这是个常见的问题吗?你通常如何解决它?

更新:

感谢您的投入。不幸的是,似乎没有简单的答案。在这样的大型共享环境中,用户可能不应该有这么多选择。我能想到的最好方法是在所有“public_html”目录的主配置中设置“open_basedir”,运行 suphp 并且只允许干净的 php(没有 cgi 脚本,运行带有反引号的外部命令等)。

像这样改变政策会破坏很多事情,并且很可能让用户拿起他们的干草叉追我们......如果我们决定如何改变设置,我会与我的同事讨论并在此处更新。

security php apache-2.2

10
推荐指数
1
解决办法
680
查看次数

使用 Apache 时,PHP 中 DOCUMENT_ROOT 变量的尾部斜杠不一致

在不同的服务器环境中,PHP $_SERVER['DOCUMENT_ROOT']super global 有时尾部有斜线,有时没有。我原以为这个问题与文件中ApacheDocumentRoot的定义方式直接相关httpd.conf:

即我会认为如果不httpd.conf包含尾部斜杠:

<VirtualHost *:8880>
    DocumentRoot /var/www/live/current
    ...
Run Code Online (Sandbox Code Playgroud)

然后echo $_SERVER['DOCUMENT_ROOT']应该给/var/www/live/current

如果httpd.conf确实包含尾部斜杠:

<VirtualHost *:8880>
    DocumentRoot /var/www/live/current/
    ...
Run Code Online (Sandbox Code Playgroud)

然后echo $_SERVER['DOCUMENT_ROOT']应该给/var/www/live/current/

在 Ubuntu 10.04 上就是这种情况,但在 RHEL 5.5 上,$_SERVER['DOCUMENT_ROOT']即使在 Apache 上没有定义任何斜杠,也会添加尾部斜杠。

知道为什么会这样吗?是否有我遗漏的配置参数?


以供参考:

  • RHEL 的 PHP 5.3.3(出现问题):PHP 5.3.3 (cli)(构建时间:2010 年 7 月 23 日 16:26:53)
  • Ubuntu 的 PHP 版本(没有问题):PHP 5.3.2-1ubuntu4.2 with Suhosin-Patch (cli)(构建时间:2010 年 5 月 13 日 20:03:45)

php configuration documentroot apache-2.2

10
推荐指数
1
解决办法
8497
查看次数

如何为 Apache 服务器上的所有域创建 robots.txt 文件

我们有一个带有虚拟主机的 XAMPP Apache 开发 Web 服务器设置,并希望阻止 serps 抓取我们所有的站点。这可以通过 robots.txt 文件轻松完成。但是,我们不希望在每个虚拟主机中都包含一个 disallow robots.txt,然后当我们在另一台服务器上使用该站点时必须将其删除。

有没有办法使用 apache 配置文件将所有虚拟主机上对 robots.txt 的所有请求重写为单个 robots.txt 文件?

如果是这样,你能给我举个例子吗?我认为它会是这样的:

RewriteEngine On
RewriteRule  .*robots\.txt$         C:\xampp\vhosts\override-robots.txt [L] 
Run Code Online (Sandbox Code Playgroud)

谢谢!

php robots.txt apache-2.2

10
推荐指数
1
解决办法
2万
查看次数

centos 5.6 上的 apache 给了我权限被拒绝错误

我在centos 5.6上运行apache,每当我尝试在任何目录中加载php脚本时,除了/var/www/html(apache默认根目录),它都会给我一个权限被拒绝的错误。

但是,当我根据默认目录 (/var/www/html) 检查我的新根目录 (/var/www-dev) 的权限时,它们完全匹配。都说:root:root 755

我什至尝试将所有权更改为 apache:apache,但仍然出现相同的错误

但是当我将 apache 配置改回它的默认根目录(/var/www/html)时,一切正常。

难道我做错了什么?

这些是我正在更改的设置:

DocumentRoot "/var/www/html"

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

注意:每次更改 apache 配置和权限时,我都会重新启动 apache。

同样:我还启用了 REMI 和 EPEL

php configuration centos apache-2.2

10
推荐指数
1
解决办法
4515
查看次数

构建学生存储服务器

我在一个学区工作。我负责为学生构建存储服务器。一个让他们在学校和家里工作的地方。

我的挑战是让它在家工作。在学校,他们登录、验证并获得映射到服务器上的文件夹的驱动器 ( S:\fileserver\studentname)。

我的问题是我怎样才能让学生在家中使用它?

服务器正在运行 Windows Server 2008 R2。我让 PHP、Apache 和 MySQL 协同工作。我的想法是编写一个脚本,该脚本将“爬行”包含所有学生文件夹的目录,然后在 MySQL 数据库中创建每个文件和文件夹的实例。创建一个使用 LDAP 进行身份验证的登录页面,一旦他们从家里登录到服务器,他们就会得到一个页面,其中包含与他们的用户名相关联的文件夹。

有没有人把这样的东西放在一起??

php

10
推荐指数
3
解决办法
1082
查看次数

MediaWiki 慢速保存已编辑页面

我在以下 LAMP 平台上安装了 MediaWiki 1.16.2,对于 16 GB RAM 双处理器机器上的其他应用程序,它的性能非常好:CentOS 5.7(64 位)Apache 2.2.3 MySQL 5.0.77 PHP 5.1.6

它似乎在某种程度上取决于所使用的浏览器,但是非常频繁地保存编辑过的页面太慢了——对于一个非常简单的更改,等待 10 或 20 秒的情况并不少见。

渲染页面的工作速度非常快,但编辑后的保存正在扼杀用户体验。从运行 Opera 的客户端进行编辑时,我发现比在 Firefox(在 Fedora Linux 平台上)进行编辑时有一些改进。

关于我可以在哪里调整服务器以使其更好的任何提示?

Apache 在机器上运行的基准测试令人印象深刻,顺便说一句。

mysql linux php centos mediawiki

10
推荐指数
1
解决办法
1018
查看次数

NGINX 不执行 PHP 文件

我找不到答案。安装了 PHP5 + NGINX + PHP-FPM 并且无法执行 php 文件,它得到一个“哎呀!这个链接似乎被破坏了”。铬错误。我没有任何有价值的错误日志报告,我的根目录中有一个 index.php,尝试创建一个自定义的 phpinfo.php 文件,但都没有奏效。

我可以加载 HTML 文件,但不能加载 PHP。

这是我在 NGINX 中的本地站点配置:

server {
    listen       80;
    server_name  im;
    access_log /var/www/website/access.log;
    error_log /var/www/website/error.log;

    location / {
        root   /var/www/website;
        index  index.html index.htm index.php;
    }


    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/website$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }

}
Run Code Online (Sandbox Code Playgroud)

将所有目录的所有权更改为 www-data:www-data,在 php 文件上做了一个 777,什么都没有。重启nginx,FPM,什么都没有。

帮助?:(

php nginx

10
推荐指数
1
解决办法
5万
查看次数