我有一个LAMP服务器,使用NameVirtualHosts为许多不同的网站提供服务。
直到最近,拥有一个全局 php.ini文件还不错,但最近我们的一位开发人员要求在 php.ini 中进行一些我不想全局设置的设置。
我很确定我听说你可以在每个站点的基础上设置 php.ini 文件,但不知道如何去做。
有人可以指出我如何实现这一目标的正确方向吗?
如何确定正在使用哪个 PHP?
例如,如果有/usr/local/bin/phpand usr/local/bin/php5,我怎么知道我的 PHP 脚本正在使用哪个?
保护 Linux、Apache、MySQL、PHP 服务器(甚至 Perl)以供生产使用的程序是什么?
除了为 Linux 设置 MySQL 密码和 root 密码之外,还应该采取哪些其他(可能不那么明显)的步骤?
另外我可以采取哪些步骤,如果我会变得更加偏执,那通常可能没有必要?
这是用于基本的单站点使用,但必须是安全的。
我在大学的系统管理部门工作,偶然发现了一些可能很常见但对我来说非常震惊的事情。
所有 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 脚本,运行带有反引号的外部命令等)。
像这样改变政策会破坏很多事情,并且很可能让用户拿起他们的干草叉追我们......如果我们决定如何改变设置,我会与我的同事讨论并在此处更新。
在不同的服务器环境中,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 上没有定义任何斜杠,也会添加尾部斜杠。
知道为什么会这样吗?是否有我遗漏的配置参数?
以供参考:
我们有一个带有虚拟主机的 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)
谢谢!
我在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
我在一个学区工作。我负责为学生构建存储服务器。一个让他们在学校和家里工作的地方。
我的挑战是让它在家工作。在学校,他们登录、验证并获得映射到服务器上的文件夹的驱动器 ( S:\fileserver\studentname)。
我的问题是我怎样才能让学生在家中使用它?
服务器正在运行 Windows Server 2008 R2。我让 PHP、Apache 和 MySQL 协同工作。我的想法是编写一个脚本,该脚本将“爬行”包含所有学生文件夹的目录,然后在 MySQL 数据库中创建每个文件和文件夹的实例。创建一个使用 LDAP 进行身份验证的登录页面,一旦他们从家里登录到服务器,他们就会得到一个页面,其中包含与他们的用户名相关联的文件夹。
有没有人把这样的东西放在一起??
我在以下 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 在机器上运行的基准测试令人印象深刻,顺便说一句。
我找不到答案。安装了 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 ×10
apache-2.2 ×6
centos ×2
lamp ×2
linux ×2
mysql ×2
documentroot ×1
mediawiki ×1
nginx ×1
robots.txt ×1
security ×1