Questions tagged «php»

PHP是一种通用脚本语言,特别适合于Web开发。在线手册是有关语言语法的绝佳资源,并且具有大量内置和扩展功能列表。大多数扩展都可以在PECL中找到。

8
在运行FastCGI / PHP-FPM(以“ nobody”用户身份)时,要在PHP Sessions文件夹上设置哪些权限/所有权?
我无法运行许多脚本,因为PHP-FPM无法写入我的会话文件夹: “” 2009/10/01 23:54:07 [错误] 17830#0:* 24在stderr中发送的FastCGI:“ PHP警告: 未知:打开(/ var / lib / php / session / sess_cskfq4godj4ka2a637i5lq41o5,O_RDWR) 失败:第0行上的“未知”权限被拒绝(13) PHP警告:未知:无法写入会话数据(文件)。请确认 当前session.save_path的设置是正确的 (/ var / lib / php / session)在第0行的“未知”中,同时读取上游“ 显然,这是一个权限问题;我的会话文件夹的所有者/组是Web服务器的用户NGINX。PHP-FPM就像运行一样nobody,因此将其添加到nginx组并不是一件容易的事。 暂时的解决方案是将的权限设置/var/lib/php/session为777-虽然我觉得这不是“最佳实践”。 需要为文件夹分配守护程序写访问权但运行方式为的最佳实践是nobody什么?
17 linux  security  php  centos 

1
php脚本无法访问/ tmp文件夹
我没有open_basedir,php可以访问/ etc / usr / proc / home等…,但不能访问/ tmp。 tmpfs安装在/ tmp上(/ tmp类型tmpfs(rw)),这也是我要使用/ tmp文件夹的原因。 我的文件归http所有(nginx和php的用户)所有,并且所有人均可读取。 sudo -u http cat /tmp/file 正在工作,但php脚本中的所有内容均不起作用(例如file_exist()或file())。 编辑:错误显示在日志中: PHP Warning: file(/tmp/ydlw/pid): failed to open stream: No such file or directory in /srv/http/ydlw/status.php on line 267 edit2:我以另一种方式测试了这个问题。我做了 touch("/tmp/boo"); file_exist("/tmp/boo"); 并且file_exist返回true,因此创建了文件。然后,我在/ tmp里面查看,在那里找不到“ boo”文件。那就是我所担心的,php不能“看到”安装点。为什么会这样,我该如何解决?

2
Ubuntu上同时有多个php版本
我希望能够在运行Ubuntu 12.04的开发箱上运行多个php版本。我要实现的是,当我使用本地主机作为域时,使用默认值(假设php 5.3.17)。当我使用547.localhost作为域php 5.4.7时。我看过一些使用fastcgi使其工作的教程,但是直到现在我还无法使其工作。我看了这些教程: http://dbforch.wordpress.com/2010/05/21/apache2-fastcgi-multiple-php-versions-ubuntulucid-10-04/ http://www.metod.si/multiple-php-versions-with-apache-2-fastcgi-phpfarm-on-ubuntu/ 据我所知,我已经完成了所有必要的工作。问题是php根本无法运行。当我转到http://localhost/somephpfile.php它时,仅输出php文件的源。这同样适用http://547.localhost/somephpfile.php。 我将细分我采取的步骤,希望有人能够发现我错过的内容。 首先,我使用安装了默认的灯架sudo apt-get install lamp-server^ phpmyadmin。在此之后,我有了一个运行中的开发服务器,该服务器运行php的存储库版本。 然后,我使用phpfarm创建了两个php安装,一个用于5.3.17,一个用于5.4.7。phpfarm的位置为 /etc/php/phpfarm,因此可执行文件位于/etc/php/phpfarm/inst/php-{version}/bin 然后我为apache和disabe mod_php启用suaxec和fastcgi sudo a2enmod fastcgi actions suexec && sudo a2dismod php5 接下来,我编辑/etc/apache2/mods-enabled/fastcgi.conf为: <IfModule mod_fastcgi.c> FastCgiIpcDir /var/lib/apache2/fastcgi FastCgiWrapper /usr/lib/apache2/suexec FastCgiConfig -idle-timeout 110 -killInterval 120 -pass-header HTTP_AUTHORIZATION -autoUpdate ScriptAlias /php-fcgi/ /var/www/cgi-bin/ </IfModule> 然后,在其中/var/www/创建了一个文件夹cgi-bin并在此文件夹中创建了两个文件,分别用于以下两个php版本(我只为5.3.17显示一个/var/www/php5317.fcgi): #!/bin/sh # you can …


4
如何使用Apache和PHP调查内存泄漏?
我们正在运行一个繁重的Drupal网站,以执行财务建模。考虑到apache使用的内存随着时间的增长而apache进程数保持稳定,我们似乎正在遇到某种内存泄漏: 我们知道内存问题来自apache / PHP,因为每当发出a时/etc/init.d/httpd reload,内存使用率就会下降(请参见上面的屏幕截图和下面的CLI输出): 在httpd重新加载之前 $免费 已使用的可用共享缓冲区总数 内存:49447692 45926468 3521224 0 191100 22609728 -/ +缓冲区/缓存:23125640 26322052 掉期:2097144 536552 1560592 httpd重新加载后 $免费 已使用的可用共享缓冲区总数 内存:49447692 28905752 20541940 0 191360 22598428 -/ +缓冲区/缓存:6115964 43331728 掉期:2097144 536552 1560592 每个apache线程分配了一个memory_limit512MB 的PHP ,这说明了内存使用率过高而请求量很少,而max_execution_time120秒的中断时间将终止执行时间较长的线程,因此应避免内存使用率的持续增长。看到。 问:我们如何调查导致此内存泄漏的原因? 理想情况下,我正在寻找可以在系统上执行的故障排除步骤,而无需打扰开发团队。 附加信息: OS: RHEL 5.6 PHP: 5.3 Drupal: 6.x MySQL: 5.6 …

1
安装APC RedHat
我试图在redhat上安装apc,所以我做到了: pecl install apc 我说是到: Use apxs to set compile flags (if using APC with Apache)? [yes]: 我得到这个: checking for re2c... no configure: WARNING: You will need re2c 0.9.11 or later if you want to \ regenerate PHP parsers. 和 checking whether apc needs to get compiler flags from apxs... …
16 php  redhat 

2
我应该通过FastCGI模拟PHP吗?
我正在通过FastCGI将最新版本的PHP安装到IIS 7.5上,所有说明都指出,FastCGI应该通过设置来模拟调用客户端 fastcgi.impersonate = 1 如果我的网站将具有此配置 专用应用程序池 ApplicationPoolIdentity的应用程序池标识 仅匿名身份验证(作为IUSR) 我为什么要假冒? 我来自ASP.NET背景,IUSR获得只读权限,而应用程序池标识获得任何写权限。授予对IUSR的写访问权通常会打开WebDAV漏洞的大门。因此,我犹豫让PHP作为IUSR运行。 我找不到很多人问这个问题(1 | 2),所以我想我一定很想念。有人可以帮我澄清一下吗?

12
如何通过终端实时观看日志?
这是一个基本的问题-在电影“社交网络”中,年轻的Facebook员工正在实时观看PHP / Apache服务器在其TERMINAL中的登录时,有几个场景。 我熟悉如何在RUBY / RoR环境中执行此操作-但是在标准的LAMP Apache / PHP环境中,如何实时主动地监视服务器的操作?我猜想在Terminal中有一种简单的方法可以做到这一点。

8
如何将php5 + MySQL扩展到200请求/秒以上?
我正在调整主页的性能,目前在3.14.by上它处理大约200个请求/秒,它吃掉6条SQL查询,在3.14.by/forum上它是phpBB论坛,每秒处理20个请求/秒。 奇怪的是,某些VPS和专用Atom 330服务器上的数字几乎相同。 服务器软件如下:Apache2 + mod_php prefork 4个子代(在此处尝试使用不同的数字),php5,APC,nginx,用于PHP会话存储的内存缓存。 MySQL配置为占用大约30%的可用内存(VPS上约为150Mb,专用服务器上约为700Mb) 看起来某个地方存在瓶颈,不允许我进一步发展,有什么建议吗?(即,我知道执行少于6个SQL会使它更快,但这似乎不是一个限制因素,因为由于缓存的查询,sqld的吃率最高不会超过百分之几) 有没有人测试过踢前叉apache2并只留下nginx + php快得多? 更多基准 Small 40-byte static file: 1484 r/s via nginx+apache2, 2452 if we talk to apache2 directly. Small "Hello world" php script: 458 r/s via ngin+apache2. 更新: 瓶颈似乎是MySQL对缓存数据的性能。具有单个SQL的页面显示354req / sec,其中有6个SQL-180 req / sec。您认为我可以在这里进行哪些调整?(我可以为MySQL分出100-200Mb) [client] port = 3306 socket …

3
nginx / php-fpm错误记录
我试图找出我的安装程序中的PHP错误所在。我将nginx作为PHP-FPM的反向代理运行,但没有看到我的应用程序正在生成的各种E_NOTICE或E_WARNING消息。我知道它们正在发生的唯一原因是响应失败和NewRelic捕获堆栈跟踪。 这是日志记录配置: nginx.conf proxy_intercept_errors on; fastcgi_intercept_errors on; php.ini error_reporting = E_ALL display_errors = Off display_startup_errors = Off log_errors = On log_errors_max_len = 1024 ignore_repeated_errors = Off ignore_repeated_source = Off report_memleaks = On track_errors = On error_log = syslog php-fpm.conf [global] error_log = /var/log/php-fpm/fpm-error.log [www] access.log = /var/log/php-fpm/access.log access.format = "%t …
16 php  php-fpm  php5  logging 

3
为什么yum在CentOS上安装了过时的软件包?(特别是PHP 5.1)如何解决?
我正在使用一台新的CentOS服务器,并且非常生气地发现yum不能像Ubuntu上的“ apt-get install”那样流畅而出色地工作。 安装LAMP堆栈,我运行以下命令: $ yum install php $ yum install mysql 此外: $ yum install mysql-server $ yum install mysql-devel $ yum install php-mysql 现在正在运行: $ rpm -qa | grep php ...表明我已经安装了各种php 5.1.6软件包,并且最低需要5.2。此外,即使当前版本为5.5.20,我也看到它安装了mysql 5.0.77。但希望mysql 5.0可以工作。PHP 5.1不会。 因此,真正的问题是: 如何修复PHP以使其成为最新的稳定版本(根据PHP.net,为5.3.9)?如何使我的CentOS机器更像Ubuntu,这样我不必再次处理? 非常感谢。 编辑:CentOS 5.7是由托管公司上周安装的,所以我不知道他们为什么会安装较旧版本的CentOS,而不是最新版本。我至少需要PHP 3.2,因此,我感谢有关该操作的建议。我对软件包和存储库不是很熟悉,但是似乎任何人都可以启动存储库,因此我担心从随机的存储库中安装东西可能会感染服务器。
14 mysql  php  centos  debian  yum 

2
在ubuntu上安装php扩展
我有一个Ubuntu 9.10服务器。我已经使用apt-get命令安装了apache2和php5。 一个如何安装php扩展?是否有像apt-get这样的命令来获取它们?还是我应该在php网站上手动查找文件并在php.ini中进行设置? 更具体地说,我需要mcrypt,curl和gd。 谢谢
14 apache-2.2  ubuntu  php 


3
如何通过命令行将$ _GET变量传递给PHP脚本?
我正在尝试创建一个提供PHP脚本的Web服务器。当前,它的工作方式如下: 客户端请求/index.php?test=value 服务器调用 php index.php 服务器将HTTP请求标头作为STDIN馈送到PHP进程 服务器php从STDOUT 读取输出,并将其返回给客户端 所有这些都可以正常工作,只是由于以下原因未将参数传递给PHP脚本: var_dump($_GET); 返回: 数组(0){} $_GET调用PHP二进制文件时如何将参数传递给它?
14 php  http  cgi 

5
从Remi repo安装PHP7
我从Remi repo安装了PHP7 sudo yum -y install httpd sudo yum -y install epel-release wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm sudo rpm -Uvh remi-release-6*.rpm sudo yum -y --enablerepo=remi,remi-test install php70 scl enable php70 'php -v' sudo ln -s /usr/bin/php70 /usr/bin/php 它正在通过CLI运行。现在我想使其与apache一起工作,但我找不到这样的方法作为第二个参数传递给LoadModule LoadModule php7_module unknown_path <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> 这是使PHP7与apache2配合使用的正确方法吗?
13 php  centos6 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.