标签: php

使 Apache 能够在 PHP 作为 DSO 运行的情况下写入 PHP 文件?

我有 PHP 作为 DSO 运行。因此,我的安装程序脚本(写入配置文件)无法进行任何写入。

我如何给 apache(用户:nobody)写入文件的能力?

php chmod dso apache-2.2

6
推荐指数
1
解决办法
3353
查看次数

如何使用 Apache 和 FastCGI 作为另一个用户运行 PHP 文件?

根据较旧的问题,例如使用 mod_fcgid 而不是 mod_php和PHP 作为 CGI 或 Apache 模块?(和切向一些其它 问题),我来到了一个了解,运行PHP的CGI或FastCGI的将使我的PHP文件跑出作为所有者,而不是Apache的用户(即运行Apache的用户)。

该phpinfo();函数指出Server API = CGI/FastCGI

但是,当我测试正在运行的用户时,它仍然是apache ie。<?php echo exec('whoami'); ?>返回apache。

我还尝试了Jeremy Bouse在我提到的一个问题中建议的内容,但 PHPwhoami仍然返回apache。


phpinfo 的“服务器 API”等于“CGI/FastCGI”这一事实是否足以让普通用户以所有者身份运行 php 文件?

(它甚至表明 PHP 没有与 mod_php 一起运行吗?)

或者是否还有一些管理任务需要完成或可能配置错误?

php fastcgi apache-2.2

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

从带有 start-stop-daemon 的 LSB init 脚本启动 PHP 守护进程

我正在编写一个 lsb init 脚本(不可否认,我从未从头开始做过)它启动了一个守护进程的 php 脚本。php 脚本是这样开始的:

#!/usr/bin/env php
<?php
/* do some stuff */
Run Code Online (Sandbox Code Playgroud)

然后在 init 脚本中像这样启动:

# first line is args to start-stop-daemon, second line is args to php-script
start-stop-daemon --start --exec /path/to/executable/php-script.php \
  -- --daemon --pid-file=$PIDFILE --other-php-script-args
Run Code Online (Sandbox Code Playgroud)

该--daemon标志导致 php 脚本分离并作为守护程序本身运行,而不是依赖于start-stop-daemon分离它。

这就是它(试图)在 init 脚本中停止它的方式:

start-stop-daemon --stop --oknodo --exec /path/to/executable/php-script.php \
  --pidfile $PIDFILE
Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试通过 init 脚本停止时,它给了我这个:

$ sudo /etc/init.d/my-lsb-init-script stop
 * Stopping My Project
No /path/to/executable/php-script.php found running; none killed.
   ...done.
Run Code Online (Sandbox Code Playgroud)

快速浏览一下ps告诉我,尽管 php …

php bash daemon lsb init.d

6
推荐指数
1
解决办法
9646
查看次数

初学者安全问题

我对 Web 开发还是很陌生,并且对安全性有疑问。

每天在我的CPanel中查看“最新访客”,今天出现了一些奇怪的条目(下面粘贴了一个)。

不知道有什么更好的,在我看来,由于某种原因,有一些网站将用户推荐给我的网站。有人可以解释一下这些到底是什么,是否需要担心?谢谢!

Host: 77.68.38.175

/?p=http://teen-37.net/myid.jpg?
    Http Code: 404  Date: Feb 17 08:13:58   Http Version: HTTP/1.1  Size in Bytes: -
    Referer: -
    Agent: libwww-perl/5.805   *  

/?p=../../../../../../../../../../../../../../../proc/self/environ%00
    Http Code: 404  Date: Feb 17 08:13:59   Http Version: HTTP/1.1  Size in Bytes: -
    Referer: -
    Agent: libwww-perl/5.805
Run Code Online (Sandbox Code Playgroud)

security php

6
推荐指数
2
解决办法
466
查看次数

禁用 PHP 弃用警告和通知

我一直在使用和配置PHP,但现在我遇到了一个奇怪的问题,所以我要向你们寻求帮助。

我不想在生产服务器中看到弃用警告和通知,但是我想看到其他错误消息,例如语法错误。

我在 Ubuntu 10.10 上使用 Suhosin-Patch 运行 PHP 5.3.3-1ubuntu9.3

在我的/etc/php5/apache2/php.ini我有以下几行:

error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE
Run Code Online (Sandbox Code Playgroud)

我已经重新启动了网络服务器。在虚拟主机配置中,没有 php_admin_value 与此配置混淆,文件夹中没有任何 .htaccess 文件。

尽管如此,仍会显示弃用警告和通知。

linux php php.ini apache-2.2

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

访问子文件夹中的 PHP 脚本时,“在 &lt;fastCGI&gt; 应用程序配置中找不到 &lt;handler&gt; scriptProcessor”

可能重复:
访问子文件夹中的 PHP 脚本时,“在 <fastCGI> 应用程序配置中找不到 <handler> scriptProcessor”

我在 IIS 7.5 上的 php 配置有问题。

它实际上是在 Win7 上使用 MS Web PI 进行的全新安装。

我创建了一个简单的php testpage。它在 root 级别http://localhost/test.php和第一个 sub-level 中工作http://localhost/site/test.php,但在http://localhost/site/subfolder/test.php,我收到 HTTP 500 错误:
<handler> scriptProcessor could not be found in <fastCGI> application configuration

一切似乎都按照http://www.iis.net/ConfigReference/system.webServer/fastCgi/application 中的规定进行配置

是否有某种过滤器可以禁用特定文件夹级别的处理/或仅在前 2 个级别启用它?

我应该检查什么?

iis php fastcgi

6
推荐指数
1
解决办法
3万
查看次数

如何在 Ubuntu 10.04 和 PHP 5.3.2 中安装 mysql PDO 驱动程序

我尝试使用以下命令安装 mysql PDO 驱动程序:

$ sudo pecl install pdo_mysql
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

WARNING: "pecl/PDO_MYSQL" is deprecated in favor of "channel://http://svn.php.net/viewvc/php/php-src/trunk/ext/pdo_mysql//ext/pdo_mysql"
WARNING: "pecl/PDO" is deprecated in favor of "channel://http://svn.php.net/viewvc/php/php-src/trunk/ext/pdo//ext/PDO"
downloading PDO_MYSQL-1.0.2.tgz ...
Starting to download PDO_MYSQL-1.0.2.tgz (14,778 bytes)
.....done: 14,778 bytes
downloading PDO-1.0.3.tgz ...
Starting to download PDO-1.0.3.tgz (52,613 bytes)
...done: 52,613 bytes
12 source files, building
running: phpize
sh: phpize: not found
ERROR: `phpize' failed
7 source files, building
running: phpize
sh: phpize: not found
ERROR: `phpize' failed
Run Code Online (Sandbox Code Playgroud)

有人知道如何在 Ubuntu 10.04 中安装 …

php pdo

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

内存缓存滞后

让我先说这是本主题的后续问题。

通过将 memcached 服务器从 Solaris (SmartOS) 切换到 Ubuntu 来“解决”这个问题。现在我们已经将负载增加了大约 5 倍,并且再次遇到问题。

我们正在运行一个大约每分钟处理 1000 个请求的站点,每个请求以大约 3 次读取和 1 次写入命中 Memcached。所以负载大约是每秒 65 个请求。缓存中的数据总量约为 37M,每个键包含的数据量非常小(JSON 编码的整数数组,小于 1K)。

我们在这些页面上设置了一个基准测试脚本,并将数据输入 StatsD 进行记录。问题在于,Memcached 需要很长时间才能响应的峰值。这些似乎与流量高峰无关。

来自 StatsD 的执行时间

什么可能导致这些尖峰?为什么 memcached 会占用一秒钟的时间来回复?我们刚刚启动了第二台服务器以放入池中,它在峰值的频率或严重性方面没有任何明显的差异。

这是服务器上 getStats() 的输出:

Array
(
    [-----------] => Array
        (
            [pid] => 1364
            [uptime] => 3715684
            [threads] => 4
            [time] => 1336596719
            [pointer_size] => 64
            [rusage_user_seconds] => 7924
            [rusage_user_microseconds] => 170000
            [rusage_system_seconds] => 187214
            [rusage_system_microseconds] => 190000
            [curr_items] => 12578
            [total_items] => 53516300
            [limit_maxbytes] => 943718400
            [curr_connections] => …
Run Code Online (Sandbox Code Playgroud)

ubuntu php scalability memcached memcache

6
推荐指数
1
解决办法
554
查看次数

Nginx 中的不同 PHP 配置

我有一个 web 服务器运行多个服务器(虚拟主机),使用 nginx 和 fastcgi 传递给 unix-socket。

我想要完成的是使用 beta.example.com 和 live.example.com 进行设置,其中实时站点的 error_reporting 已关闭(但仍记录到文件),而 beta 站点的 error_reporting 已打开。

因此,对于 Apache,我会在以下方面做一些事情:

<VirtualHost *:80>
    ServerName beta.example.com

    [...]

    php_flag display_errors on
    php_flag display_startup_errors on
    php_value error_reporting -1

    [...]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

在谷歌搜索时,我没有找到任何可以使用 fastcgi 将此类参数传递给 PHP 的地方。有谁知道如何做到这一点?

现在的配置是(简化):

server {
    server_name beta.example.com;
    [...]
    fastcgi_pass unix:/var/run/nginx/php-fastcgi.sock;
    fastcgi_index index.php;
}
Run Code Online (Sandbox Code Playgroud)

php nginx fastcgi php.ini

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

en_US.utf8 和 en_US.UTF-8 之间有区别吗?

服务器信息(删除了 DNS 和 IP):

cat /proc/version && uname -a && java -version

Linux version 2.6.16.33-xenU (*************) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #2 SMP Wed Aug 15 17:27:36 SAST 2007
Linux ************* *************-xenU #2 SMP Wed Aug 15 17:27:36 SAST 2007 x86_64 x86_64 x86_64 GNU/Linux
java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) 64-Bit Server VM (build 14.0-b16, mixed mode)
Run Code Online (Sandbox Code Playgroud)

我有一些 PHP 代码正在读取 Excel 文件并进行字符串比较。由于似乎是语言环境问题,它在服务器上失败。然而,在我的本地机器(OSX 10.8.5 Mountain Lion)上,它可以工作!

在我的本地机器上,语言环境是 en_US.UTF-8。在服务器上,语言环境是 POSIX,但我将其更改为 en_US.utf8,因为当我查看locale -a时没有 en_US.UTF-8 …

php localization charset utf-8 encoding

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