Questions tagged «php»

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

1
为什么仙人掌会继续等待无效的轮询程序?
我目前正在设置新的Debian(6.0.5)服务器。昨天我在上面放了仙人掌(0.8.7克),从那以后一直在努力。 创刊号 我观察到的最初问题是图表没有更新。因此,我检查了我的内容cacti.log,发现了以下与该消息有关的信息: POLLER: Poller[0] Maximum runtime of 298 seconds exceeded. Exiting. 那不是很好,对吧?因此,我去检查并开始poller.php自己(通过sudo -u www-data php poller.php --force)。它将弹出很多消息(看起来都与我期望的一样),然后挂起一分钟。1分钟后,它将循环显示以下消息: Waiting on 1 of 1 pollers. 此过程将持续4分钟,直到该过程因运行时间超过298秒而被强制终止。 到现在为止还挺好 我花了一个小时的时间来尝试确定可能仍在运行的轮询器,直到得出结论就是根本没有正在运行的轮询器。 调试 我检查poller.php了该警告的发出方式以及原因。在第368行,Cacti将从数据库中检索完成的进程数,并使用该值来计算仍在运行的进程数。所以,让我们看看这个价值! 我将以下调试代码添加到poller.php: $finished_processes = db_fetch_cell("SELECT count(*) FROM cacti.poller_time WHERE poller_id=0 AND end_time>'0000-00-00 00:00:00'"); print "Finished: " . $finished_processes . " - Started: …

1
使用控制台参数设置php error_reporting值
为了测试我的PHP项目是否有错误,我通常使用以下命令: find ./ -type f -name \*.php -exec php -l '{}' \; | grep -v "No syntax errors detected" 我想php -l '{}' \;用一些参数扩展该部分,以便它将使用自定义的error_reporting级别,而不是php.ini中定义的级别。这可能吗? (我知道这个问题在某种程度上与编码有关。另一方面,它更多地是关于shell命令的。如果您认为在stackoverflow上应该更好,那么请随意移动它。我不确定这个问题在哪里更合适。)

5
基于主机名的动态Nginx域根路径?
我正在尝试使用基本的master / catch-all vhost配置来设置我的开发nginx / PHP服务器,以便可以根据需要创建无限的___.framework.loc域。 server { listen 80; index index.html index.htm index.php; # Test 1 server_name ~^(.+)\.frameworks\.loc$; set $file_path $1; root /var/www/frameworks/$file_path/public; include /etc/nginx/php.conf; } 但是,对于此设置,nginx会返回404错误。我知道nginx和PHP可以正常工作并具有权限,因为localhost我使用的配置工作正常。 server { listen 80 default; server_name localhost; root /var/www/localhost; index index.html index.htm index.php; include /etc/nginx/php.conf; } 我应该检查什么才能发现问题?这是它们都正在加载的php.conf的副本。 location / { try_files $uri …
11 php  nginx  virtualhost 

4
如何检查服务器令牌已关闭?
我们从渗透测试报告中获得了反馈,说我们应该关闭服务器令牌。这使人们无法看到我们正在使用哪个版本的PHP,并限制了他们针对特定PHP版本的能力。 我在http块下将以下内容添加到nginx.conf中: server_tokens off; 但是我可以使用哪些工具来检查此更改是否生效?
11 nginx  php 

5
Roundcube和Postfix SMTP:SSL例程:SSL3_READ_BYTES:tlsv1警报未知ca:s3_pkt.c
我有一个Postfix / Dovecot / Roundcube设置,我可以个人使用,也可以提供给其他用户。我试图将整个设置转移到一个新盒子,但是遇到一些问题。 邮件接收正常(仅在内部进行测试,域尚未传输。)以及使用TLS / SSL的外部IMAP和SMTP都运行良好(例如,Thunderbird) 问题出在我的roundcube设置上,它可以使用IMAP到127.0.0.1,并且可以很好地显示用户的电子邮件,但是无法发送电子邮件,仅声明: "SMTP Error (220): Authentication failed." 奇怪的是,使用与我在当前服务器上使用的相同的Postfix / Dovecot配置,Roundcube将无法再在新服务器上访问它。这是相关的roundcube配置: $config['smtp_server'] = 'tls://localhost'; // Log SMTP conversation to <log_dir>/smtp or to syslog $config['smtp_debug'] = true; // SMTP port (default is 25; use 587 for STARTTLS or 465 for the // deprecated SSL over …

1
使RHSCL PHP在全球范围内可用的最佳方法
我已经使用以下网址安装了RHSCL 2: https://access.redhat.com/documentation/zh-CN/Red_Hat_Software_Collections/2/html/2.0_Release_Notes/chap-Installation.html 使用RedHat订阅管理器。 然后我跑yum remove php*了yum install rh-php56 一切进行得很顺利,除了现在找不到任何地方的PHP。然后find / -name php,我运行并rh-php56在以下目录中找到: /var/opt/rh/rh-php56/lib/php /opt/rh/rh-php56/register.content/var/opt/rh/rh-php56/lib/php /opt/rh/rh-php56/root/usr/bin/php /opt/rh/rh-php56/root/usr/lib64/php /opt/rh/rh-php56/root/usr/share/php 将这些二进制文件放入/usr/bin通常对于所有用户全局可用的任何其他目录的最佳方法是什么? 安装软件包时是否错过了一步,这就是为什么它在全球范围内不可用的原因?还是使用RHSCL时会发生什么? 我已经测试了这些文件夹中的二进制文件,并且它们在我运行php -v时可以正常工作,因此工作正常。 我的第一个想法是cp进入/bin,/usr/bin但也许有一种正式的方式可以完成我要问的事情? 编辑 无法发表评论,没有回复...从我发布的链接的第3章开始,它说软件收集包必须像这样运行: scl enable rh-php56 'php -v' 哪个有效...但是,如何像$ php -v不使用其他命令一样让它为所有用户运行。我需要全球可用的php二进制文件,以便Web服务器可以使用它并使用普通shell来ssh用户。

2
nginx,别名,php-fpm =找不到文件
我正在尝试使用DAViCal设置nginx。但是,我在日志中收到一个“找不到文件”和“在stderr中发送了一个FastCGI:“主脚本未知”。我的别名似乎有问题,但我确定无法解决。 我的虚拟主机: server { listen 80; ## listen for ipv4; this line is default and implied listen [::]:80 default_server ipv6only=on; ## listen for ipv6 root /var/www-data; index index.html index.htm index.shtml index.php; # Make site accessible from http://localhost/ server_name just.a.server; location / { # First attempt to serve request as file, …
10 php  nginx  php-fpm  fastcgi  alias 

6
我如何找出为什么我的php5-fpm无法启动?
当我尝试到达服务器时,我收到504网关超时,一小笔支票未在php5-fpm日志中找到任何日志,但是只是为了确保,我尝试重新启动它。当我尝试重新启动它时: sudo service php5-fpm restart 我得到[fail] 但是当我做 sudo service php5-fpm stop sudo service php5-fpm start 我没有错。 如果没有日志,我该如何调查?我能做什么?
10 linux  php  php-fpm 

2
如何从Nginx向PHP传递自定义参数?
我与通行证Nginx 1.2.4结合使用PHP-FPM 5.4.8,fastcgi并尝试将自定义参数传递给PHP。这是我到目前为止找到的选项: 使用env指令在中设置环境变量nginx并通过getenv()或$_ENV从中获取环境变量PHP。问题是env仅在main上下文中运行,而我需要在上下文中设置参数server。 fastcgi_param为此使用指令。 我尝试使用更改某些参数的值,fastcgi_param但未成功: nginx: fastcgi_param PATH_INFO "/var/tmp"; PHP: 我检查了所有可以找到的预定义数组: echo '<pre>'; echo "\n".'$GLOBALS'."\n"; var_dump($GLOBALS); echo "\n".'$_SERVER'."\n"; var_dump($_SERVER); echo "\n".'$_GET'."\n"; var_dump($_GET); echo "\n".'$_POST'."\n"; var_dump($_POST); echo "\n".'$_FILES'."\n"; var_dump($_FILES); echo "\n".'$_REQUEST'."\n"; var_dump($_REQUEST); echo "\n".'$_SESSION'."\n"; var_dump($_SESSION); echo "\n".'$_ENV'."\n"; var_dump($_ENV); echo "\n".'$_COOKIE'."\n"; var_dump($_COOKIE); echo "\n".'$php_errormsg'."\n"; var_dump($php_errormsg); echo "\n".'$HTTP_RAW_POST_DATA'."\n"; var_dump($HTTP_RAW_POST_DATA); echo "\n".'$http_response_header'."\n"; var_dump($http_response_header); …
10 php  nginx  fastcgi  php-fpm 

4
在Linux上安装PHP扩展
请多多包涵; 我是开发人员,而不是服务器管理员。我的公司想探索使用Magento。他们将安装了apache和PHP的预配置Linux服务器交给我,但是当我尝试运行Magento安装程序时,它告诉我有一些PHP扩展需要加载。我可以编辑php.ini文件,但不知道从何处获得扩展或如何安装它们,这里也没有人知道。 有人可以帮我吗?我需要PDO_MySQL,mcrypt和GD扩展。我搜索并找到了一些有关从终端进行下载和编译代码的站点,但是这些问题全都困扰着我。是否有捷径可寻?
10 php  linux 

5
无法登录phpPgAdmin
我正在尝试在测试机上设置phpPgAdmin,以便可以与PostgreSQL进行交互,而不必始终使用psqlCLI。我通过RPM信息库安装了PostgreSQL 9.1,而我则“手动”安装了phpPgAdmin 5.0.4(通过从phpPgAdmin网站提取档案)。作为记录,我的主机操作系统是CentOS 6.2。 我已经进行了以下配置更改: PostgreSQL的 在内部pg_hba.conf,我将所有METHODs 更改为md5。 我给了postgres帐户一个密码 我用密码添加了一个名为webuser的新帐户(请注意,我对该帐户没有做任何其他事情,因此我不能确切地说我知道它拥有什么权限以及所有权限)。 phpPgAdmin config.inc.php 将行更改$conf['servers'][0]['host'] = '';为$conf['servers'][0]['host'] = '127.0.0.1';(我也尝试使用localhost作为那里的值)。 设置$conf['extra_login_security']到false。 每当我尝试登录phpPgAdmin时,即使使用成功的凭据(可使用的凭据),也会出现“登录失败”的提示psql。我试图通过FAQ中问题3中提到的一些步骤进行操作,但到目前为止,效果并不理想。这可能是没有帮助的,因为这是我使用PostgreSQL的第一天。我对MySQL非常熟悉,但是我必须对正在使用的项目使用PostgreSQL。 谁能为在CentOS 6.2上设置phpPgAdmin提供一些帮助吗?如果到目前为止,我在配置中所做的事情都非常错误,那么吹牛什么/什么都没什么大不了的,因为这还不像我在其中存储任何数据一样! 感谢您提供的任何见解!

4
如何检查PHP是否使用Win32 API的UNICODE版本编译?
这与此堆栈溢出帖子有关: glob()在Windows上找不到多字节字符的文件名? 我在Windows上使用PHP和具有多字节字符的文件时遇到问题。这是我的测试用例: print_r(scandir('./uploads/')); print_r(glob('./uploads/*')); 远程UNIX服务器上的正确输出: Array ( [0] => . [1] => .. [2] => filename-äöü.jpg [3] => filename.jpg [4] => test이test.jpg [5] => имя файла.jpg [6] => פילענאַמע.jpg [7] => 文件名.jpg ) Array ( [0] => ./uploads/filename-äöü.jpg [1] => ./uploads/filename.jpg [2] => ./uploads/test이test.jpg [3] => ./uploads/имя файла.jpg [4] …

2
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基准非常出色。
10 php  mysql  linux  centos  mediawiki 

8
构建学生存储服务器
我在学区工作。我一直负责为学生构建存储服务器。他们可以在学校和家中工作的地方。 我的挑战是要在家中工作。在学校,他们登录,认证并获得映射的驱动器到服务器上的文件夹(S:\fileserver\studentname)。 我的问题是我该如何让学生在家中使用它? 该服务器正在运行Windows Server 2008 R2。我有PHP,Apache和MySQL一起工作。我的想法是编写一个脚本,该脚本将“爬网”包含所有学生文件夹的目录,然后在MySQL DB中创建每个文件和文件夹的实例。创建一个将使用LDAP进行身份验证的登录页面,一旦他们从家里登录到服务器,他们将获得一个页面,其中包含与用户名相关联的文件。 有没有人把这样的东西放在一起?
10 php 

1
centos 5.6上的apache给我权限被拒绝的错误
我在centos 5.6上运行apache,每当我尝试在除/ var / www / html(apache默认根目录)之外的任何目录中加载php脚本时,它都会给我一个权限被拒绝的错误。 但是,当我对照默认目录(/ 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> 注意:每次更改apache配置和权限时,我都会重新启动apache。 以及:我也启用了REMI和EPEL

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.