标签: php

VirtualHost 中的自定义 PHPINIDir 设置影响其他 VirtualHosts

其中一位客户要求为他的网站进行个人 php.ini 配置,因此我将他的 VirtualHost 设置如下:

<VirtualHost *:80>
    DocumentRoot "/home/alex/www.domain.tld"
    ServerName www.domain.tld
    AssignUserID alex alex
    PHPINIDir /home/alex/php.ini
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

客户端在 /home/alex/ 下创建了 php.ini 文件,其中仅包含以下设置:

session.save_path = "/home/alex/.php_sessions/"

完成此操作后,他开始抱怨他看到了其他客户网站生成的所有其他会话文件。

在做了一些基本的故障排除后,我意识到他的 php.ini 设置影响了 httpd-vhosts.conf 中指定的所有网站。

问题是为什么?由于PHPINIDir仅在一个特定的VirtualHost?

freebsd php apache-2.2

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

Sendmail chdir(/clientmqueue) 权限被拒绝

我的 centos 服务器可以使用 'mail' 命令发送邮件,但不能使用 php。邮件日志 说:

sendmail[18010]: NOQUEUE: SYSERR(nginx): can not chdir(/var/spool/clientmqueue/): Permission denied
Run Code Online (Sandbox Code Playgroud)

我的权限如下:

lrwxrwxrwx 1 nginx nginx 30 Oct 30 20:27 /usr/lib/sendmail -> /etc/alternatives/mta-sendmail 
lrwxrwxrwx 1 nginx nginx 21 Oct 30 20:27 /usr/sbin/sendmail -> /etc/alternatives/mta

lrwxrwxrwx 1 nginx nginx 27 Oct 30  2012 /etc/alternatives/mta -> /usr/sbin/sendmail.sendmail
lrwxrwxrwx 1 nginx nginx 26 Oct 30  2012 /etc/alternatives/mta-sendmail -> /usr/lib/sendmail.sendmail

lrwxrwxrwx 1 nginx nginx     16 Oct 30  2012 /usr/lib/sendmail.sendmail -> ../sbin/sendmail
-rwxr-xr-x 1 root  smmsp 775064 Aug 11  2011 /usr/sbin/sendmail.sendmail …
Run Code Online (Sandbox Code Playgroud)

php sendmail centos

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

PHP-ZMQ pecl 安装错误 - 无法找到 libzmq 安装

我已经按照 ZeroMQ 网站在 shell 命令下运行来安装 PHP-ZMQ:

sudo pear channel-discover pear.zero.mq
sudo pecl install pear.zero.mq/zmq-beta
Run Code Online (Sandbox Code Playgroud)

以下是安装痕迹:

downloading zmq-1.0.6.tgz ...
Starting to download zmq-1.0.6.tgz (23,880 bytes)
........done: 23,880 bytes
10 source files, building
running: phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
building in /var/tmp/pear-build-rootwCcLwT/zmq-1.0.6
running: /var/tmp/zmq/configure
checking for egrep... grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... cc
checking for C compiler default output file …
Run Code Online (Sandbox Code Playgroud)

php centos yum queue

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

如何排查 PHP、MySQL 和通用 I/O 的性能问题

我有一个在共享主机上运行的基于 WordPress 的网站。它的响应时间非常好(检索 HTML 页面大约 2 秒,加载所有资源大约 5 秒)。

我计划将它移动到一个专用的虚拟服务器(Ubuntu 12.04 LTS),理论上应该会改进一些东西并使它们更加一致,因为它没有共享。但是我观察到严重的性能下降,页面需要 10 秒才能生成。

我通过/etc/hosts在服务器上进行编辑并将域映射到127.0.0.1. 我使用Apache负载测试器ab来获取HTML,所以JS,CSS和图像都被排除在外。还是花了10秒。

我在也使用 MySQL 的服务器上安装了 Zpanel,它的页面显示速度非常快(1.5 秒),还有 phpMyAdmin。直接通过 phpMyAdmin 对 wordpress 数据库执行一些查询也会很快返回它们,查询时间在 10 到 30 毫秒范围内。

内存也足够了,可用的 1Gb 物理内存中仅使用了 800Mb,因此它似乎也不是交换问题。我也安装了APC来尝试提高PHP性能,但没有任何效果。

我还应该寻找什么?什么可能导致这种性能下降?由于我在基于云的虚拟服务器上运行,这可能是某种 I/O 问题吗?

我希望能够向我的提供者提出这个问题,但没有显示来自某些诊断的实际数据,我担心他只会责怪我的申请。

UPDATE与sar当我没有HTTP请求输出(每秒):

02:31:29        CPU     %user     %nice   %system   %iowait    %steal     %idle
02:31:30        all      0.00      0.00      0.00      0.00      0.00    100.00
02:31:31        all      2.22      0.00      2.22      0.00      0.00     95.56
02:31:32        all     41.67      0.00      6.25      0.00      2.08     50.00 …
Run Code Online (Sandbox Code Playgroud)

ubuntu php performance virtual-machines wordpress

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

CentOS“-bash:a2enmod:未找到命令”

当我配置 pnp4nagios 时,发生了以下问题。

PHP GD 扩展?PHP GD 扩展不可用

PHP zlib 扩展?PHP zlib 扩展不可用

PHP套接字扩展?PHP 套接字扩展不可用

Apache 重写模块?Apache mod_rewrite 未启用

谷歌告诉我也许我的 php 在安装过程中坏了。另外,我得到了这个页面启用-mod-rewrite-on-ubuntu

但是,我的服务器是 CentOS,我执行了命令“a2enmod rewrite”,结果是“-bash: a2enmod: command not found”……

我能做什么?谢谢。

php centos apache-2.2

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

Apache 在访问 `/` 时使用 FallbackResource 挂起 5 秒

我正在使用 PHP 5.4.21 运行 Apache 2.4.6 (Amazon) 的标准安装,对我的虚拟主机使用以下配置:

DirectoryIndex index.php
# ...
FallbackResource /index.php
Run Code Online (Sandbox Code Playgroud)

我index.php是简单的缩影:

<?php echo "Hello world";
Run Code Online (Sandbox Code Playgroud)

访问http://<server-name>/神秘地仅在五秒钟后显示完整页面!任何其他页面都有预期的响应时间(很快)。

我发现这五秒与该Keep-Alive功能的默认等待时间有关;在这种情况下,直到 Apache 在该等待时间之后切断连接后,才会发送分块响应的最后几个字节。顺便说一句,这也完全破坏了持久连接本来可以为您带来的任何收益。

这是Apache的一个已知错误还是我在这里遗漏了一些非常明显的东西?

php apache-2.2

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

Nginx 找不到子目录,也不会在默认目录下运行 index.php

我从 Apache 更改为 Nginx,现在遇到了一些问题。

  1. 当我尝试访问任何文件夹时,例如http://devserver/monitor/web我有一个 Symfony 项目,我收到 404 错误
  2. 当我尝试访问时,http://devserver我一直收到这条消息File not found.

这是我的/etc/nginx/conf.d/default.conf文件的样子:

server {
    listen       80;
    server_name  devserver;

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

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi_params;
    }
}
Run Code Online (Sandbox Code Playgroud)

有什么问题吗?

php nginx php-fpm

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

无法使用 phpMyAdmin 登录到远程 MariaDB 服务器,但可以在 shell 中运行

我最近配置了两台服务器。首先使用Apache和phpMyAdmin。在另一台服务器上,我正确配置了一个 maria-DB 服务器。

phpMyAdmin 正在读取配置文件,但我无法连接到 MariaDB 服务器并且 PMA 正在抛出

#2002 Cannot log in to the MySQL server
Run Code Online (Sandbox Code Playgroud)

phpMyAdmin 错误

使用mysql命令从Web服务器连接到数据库服务器并使用相同的用户/密码,我可以成功连接到数据库服务器。

mysql中没有错误,mysql的所有端口都在防火墙中打开,没有php错误。我没有运气找到问题。

编辑:

通过 Shell 访问服务器

[root@pw000i rafael]# mysql -h [IP ADRESS TO THE REMOTE SERVER]  -u rafael -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.36-MariaDB-log MariaDB Server

Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' …
Run Code Online (Sandbox Code Playgroud)

mysql linux php mariadb

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

在 Nginx 和 PHP 上添加“HttpOnly”和“Secure”cookie 标志

我使用 PHP 和 WordPress 运行 Nginx。Acunetix 建议设置这些标志,但它们不提供任何文档。我环顾四周,但我还没有看到任何能确切说明如何实现这一点的东西。我有这个模块:http : //wiki.nginx.org/HttpHeadersMoreModule on Nginx 如果有帮助的话。有关如何设置这些标志的任何信息?谢谢。

根据此处的要求,cookie 示例

饼干:__cfduid=d3-shortened-08;cf_use_ob=0; wordpress_logged_in_6dfda-shortened-e3e82d5; __utma=21-shortened-436.19; __utmc=21519150;__utmz=2119150.1396063475.3.2.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmct??r=(not%20provided); 测试=1;sid=a14-shortened-384; 会话测试=1;wp-settings-2=editor%3Dhtml%26wplink%3D0%26uploader%3D1%26mfold%3Do%26ed_size%3D??677%26libraryContent%3Dbrowse%26urlbutton%3Dfile; wp-settings-time-2=139745167; wordpress_test_cookie=WP+Cookie+检查;wordpress_logged_in_a9-shortened-d2a7=DrDinosaur%7C1397980-shortened-2f9

php nginx wordpress http-cookie

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

打印 PDF - 从 1Mb PDF 文件打印 50Mb ..

我有这个只有 1Mb-30 页的 PDF 文件。

因此,当我将其发送到打印机(HP 1320)时,我看到计算机向打印机发送了近 50Mb。这怎么可能?我知道 PDF 是压缩格式,但是当我尝试命令行程序 pdf2ps 时 - 我可以生成只有 2.5Mb 的 postscript 。我不认为它压缩到 50/1 会是什么.. 有什么想法吗?

该文件是由php tcpdf生成的,它与它有什么关系。PDF有什么神奇的功能吗?

php printing pdf

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