标签: php

PHP+MYSQL站点性能

我必须管理一个不是我开发的网站。它在 PHP 中使用位于 Web 服务器中的 mysql 数据库。该网站有时(当访问者增加太多时)停止响应,或响应太慢。

我用 PHP 开发了一些网站,但从来没有照顾过管理,所以真的不知道从哪里开始。服务器(硬盘)似乎很好,当网络停止响应时,CPU 的使用率约为 55%,并且有大量内存。

我不是要求某人解决这个问题。我真的很希望有人能给我一些关于在哪里可以找到日志以及我应该如何阅读和解释它们的提示。所以,这样我就可以知道它是净流量、数据库(哪些查询)或什么。

谢谢!

更新:忘了说:它是 Windows Server 2003。

注意:我已经使用 Jet Profiler 记录了大约一天。我并不真正理解它提供的所有信息,但有一个查询被标记为非常慢。这是有道理的,因为它是一个带有 where 子句的选择,其中有三个类似的条件。最初我没有在我的问题中包含这个,因为当我从 MySQL 查询浏览器运行查询时,它不会花很长时间。不到 0.01 秒。

mysql windows-server-2003 php website performance

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

如何启用字节范围请求?

如何启用字节范围请求?在 iTunes 上进行播客时,它会给出错误消息“您的提要存在问题。您的剧集托管在不支持字节范围请求的服务器上。启用字节范围请求并再次尝试提交。”。
请给我一个启用字节范围请求的方法

php podcast php5 itunes apache-2.2

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

PHP - 扩展 - no-debug-non-zts-xxxxxxxx

我正在编译 php 扩展(memcached 和 xdebug),当我运行 make install 时,它们会继续安装到 /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626 中。所以有几个问题:

  1. no-debug-non-zts-20090626 甚至是什么意思,为什么它是默认值?

  2. 编辑 php.ini 文件并将 extension_dir 指令设置为上述目录是一种好习惯吗?或者我应该用 PREFIX=/usr/local/php/extensions 编译每个模块?因此,当我进行安装时,它们会被放入自定义扩展目录中,然后我可以将 extension=/usr/local/php/extensions/memcached.so 行添加到我的 .ini 文件中。

  3. 编译新模块时是否存在风险,它会进入与问题 #1 中的目录不同的目录?

php php.ini

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

nginx 另一个重写或内部重定向循环

又一个重定向循环,是的。

看过其他问题,但似乎无法让它发挥作用。

server {
    listen          80;
    server_name     localhost;

    charset         utf-8;

    access_log      /srv/http/localhost/log/access.log;
    error_log       /srv/http/localhost/log/error.log;

    location / {
        root        /srv/http/localhost/www;
        index       index.html index.php;
    }

    # prevent access to hidden files
    location ~ /\. {
        access_log      off;
        log_not_found   off;
        deny            all;
    }

    # do not log assets
    location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
        access_log      off;
        log_not_found   off;
        expires         360d;
    }

    # pass the PHP scripts to PHP-FPM socket
    location ~* \.php$ {
        try_files       $uri /index.php;
        fastcgi_pass    unix:/var/run/php-fpm/php-fpm.sock;
        include         fastcgi_params;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我server{}的主要主机的完整块,结果是: …

php nginx php-fpm

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

将所有收到的邮件重定向到脚本中

我不知道邮件传递。

但我需要将所有传入的电子邮件 (*@mydomain.com) 重定向到一个 php 脚本。

我正在使用 debian

是否存在一个简单的邮件服务器来做到这一点?(没有exim,postfix等)

我只需要重定向所有邮件请求。

如果没有 exim、postfix 等就无法做到这一点,我该怎么做?

谢谢!

email php debian redirect pipe

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

工人 MPM 和 PHP

我读了很多帖子说我不应该使用worker MPMwithPHP。

我的问题是这是否仍然有效,还是worker MPM不建议使用 。

我问这个的原因是因为我看到工作 MPM 确实支持 PHP,我认为甚至有一个为此目的的包 php-zts

php mpm-worker apache-2.2

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

成功永久禁止用户访问网站?

我有一个社交网站,我想禁止某个用户访问该网站。我已将他的 IP 地址添加到.htacess文件中的禁止列表和 php 级别以禁止该用户,但他不断返回不同的 IP。

无论用户多么努力地尝试重新进入网站,我如何永久禁止用户?

networking scripting php website .htaccess

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

如何在 nginx vhost 中添加 open_basedir 路径

在 php.ini 我已经设置

open_basedir = /home/user/web/
Run Code Online (Sandbox Code Playgroud)

现在我想在需要包含来自 /usr/share/phppgadmin 的文件的子域上运行 phppgadmin。
因此,我在此主机的 nginx-config 中添加了以下行:

fastcgi_param PHP_VALUE open_basedir="/home/user/web/:/usr/share/phppgadmin/";
Run Code Online (Sandbox Code Playgroud)

并重新启动nginx。但是,由于以下错误,我无法访问该站点:

[错误] 31440#0: *1 FastCGI 发送到 stderr: "PHP 警告: include_once(): open_basedir 限制生效。文件(/usr/share/phppgadmin/libraries/lib.inc.php) 不在允许的路径内(s): (/home/user/web/)在 /usr/share/phppgadmin/info.php 第 10 行

此处未列出第二条路径的原因可能是什么?将 open_basedir 添加到虚拟主机还需要什么?我只使用了 /sites-available 中的默认文件。

编辑总是想到重新启动fpm ...

service php5-fpm restart
Run Code Online (Sandbox Code Playgroud)

php nginx fastcgi open-basedir

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

在 Amazon EC2 上安装 Image Magick

好吧,我是一名 PHP 开发人员,他知道很少的 linux 命令来完成我的工作。

我需要在 Amazon EC2 上启动一个 symfony 1.4 网站。除了IMagick,一切都很好。我也通过以下命令安装了magick:

sudo yum install ImageMagick
Run Code Online (Sandbox Code Playgroud)

它的 php 库没有安装/配置,如果上面的命令没有发生这种情况。在 PHP 中,我使用 IMagick,但脚本在 IMagick 上失败。我知道问题出在 PHP IMagic 扩展上,但不知道如何解决。在开发盒上,就像在 WAMP 上打开它一样简单。

有人可以建议我应该在哪里确认IMagick PHP扩展是否安装和配置正确?

php amazon-ec2 imagemagick

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

当存储库跟不上版本时如何在 LAMP 服务器上保持 PCI 合规性

我们运行 Ubuntu Lucid 10.0.4 作为我们 LAMP 环境的基础。我们正在努力成为 PCI 兼容,以便我们可以通过我们的服务器传递 CC 信息。我们在我们的服务器上运行了一些第三方扫描以开始认证过程,并且遇到了有关 PHP 5 版本和 Apache 版本的错误。我们官方 lucid 存储库中托管的最新 PHP 版本比 PCI 合规性要求低约 10 个版本。

我们如何升级以与 PCI 合规性要求保持同步?

我们需要从 php 5.3.2 到 php 5.3.15

以及高达 apache 2.2.23

我已经四处寻找答案,但还没有想出一个现实的答案。有些人建议手动编译——这听起来像是一场噩梦,而另一些人则建议使用 PPA——这听起来不安全。我们应该做什么?

php lamp pci-dss repository

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