标签: php

扩展 LAMP 堆栈

一旦每月的点击量超过 10 万次,这个社区的人们会说最大的障碍是什么?

我的情况:大量静态媒体(音频/视频/图像)由 S3/CDN 提供,但作为备份存储在本地(但未提供)。所有可以缓存的东西都会被缓存,大约 8 GB 内存可扩展到 32 GB。

目前,我们正在毫无问题地处理大约 10 万次点击,并且很想知道其他人遇到了哪些问题:负载平衡?内存问题?磁盘输入/输出?

感谢您的任何提示。我浏览了相关问题,他们回答得很好,但只是想得到更多反馈。

php optimization performance memory lamp

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

如何在我的系统上重新安装 PHP?

我做了 sudo aptitude --purge remove php5,它已成功删除,但 php5 仍然安装在我的系统上。如何卸载并重新安装 php5?

更新

感谢您的回答,我已经安装了这些软件包:

tony@bandop $ aptitude search php|grep "^i"
i A libapache2-mod-php5             - server-side, HTML-embedded scripting langu
i   php-pear                        - PEAR - PHP Extension and Application Repos
i   php5-cli                        - command-line interpreter for the php5 scri
i A php5-common                     - Common files for packages built from the p
i   php5-dev                        - Files for PHP5 module development         
i   php5-mysql                      - MySQL module for php5 
Run Code Online (Sandbox Code Playgroud)

我想配置 PHP 以使用我构建的外部 PCRE 库。你知道我必须重新配置哪个包吗?有没有办法在使用 aptitude 安装软件包时指定配置选项?

php uninstall

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

PHP 致命错误:调用未定义的函数 mysql_pconnect()

我已将我的 php 版本从 php 5.0 更新到 5.3,它开始向我显示此错误

PHP Fatal error:  Call to undefined function mysql_pconnect() in
Run Code Online (Sandbox Code Playgroud)

我需要你的帮助,请建议我该怎么做。

我还在extension=mysql.so我的 php ini 文件中取消注释

php.ini
Run Code Online (Sandbox Code Playgroud)

我正在使用Linux

mysql linux php

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

Strace Apache 进程输出显示 24 秒等待?原因是什么?

对其中一个 apache 子进程执行 strace,它显示两次系统调用之间的时间间隔为 24 秒。我如何确定导致此行为的原因。看起来两个子进程花费的时间几乎相同(24.7 和 23.92)秒。

我们使用 apache prefork 与 php5 和 mysql 5

/var/lib/php5/ 是 php 会话文件夹

带有 processid -20539 的 apache Children1 的 strace 输出

ps -u www-数据 | grep apache2 | awk '{print"-p " $1}' | xargs strace -o /strace/strace.log -ff -s4096 -r

20539 0.000064 关闭(13) = 0

20539 0.000060 打开(“/var/lib/php5/sess_9t2cvnvdoruh666rjpm515idm0”,O_RDWR|O_CREAT,0600)= 13

20539 0.000065 羊群(13, LOCK_EX) = 0

20539 24.711888 fcntl(13, F_SETFD, FD_CLOEXEC) = 0

20539 0.000056 fstat(13, {st_mode=S_IFREG|0600, st_size=211, ...}) = 0

20539 0.000080 …

php max-file-descriptors strace apache-2.2

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

允许 PHP 写入文件而不需要 777

我正在我的大学提供的网络空间上建立一个简单的网站。我没有数据库访问权限,因此我将所有数据存储在一个平面文件中。我遇到的问题与文件权限有关。我需要 PHP 能够读取和写入数据文件,但我真的不想将该文件设置为 777,因为系统上的其他任何人都可以修改它,他们已经拥有对每个人的 Web 目录的读取访问权限。有谁对如何实现这一目标有任何想法?

提前致谢

linux php permissions chmod

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

MediaWiki“open_basedir 限制生效”

我安装了本地 MediaWiki 并授予其访问以下目录的权限php.ini:

open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/mediawiki
Run Code Online (Sandbox Code Playgroud)

为什么我仍然收到以下消息?这对我来说没有意义:

<b>Warning</b>:  is_file(): open_basedir restriction in effect. File(/usr/share/webapps/mediawiki/images/lock_yBgMBwiR) is not within the allowed path(s): (/srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/mediawiki) in <b>/usr/share/webapps/mediawiki/includes/GlobalFunctions.php</b> on line <b>1196</b><br />
Run Code Online (Sandbox Code Playgroud)

怎能/usr/share/webapps/mediawiki/images/lock_yBgMBwiR不在之内/usr/share/webapps/mediawiki?

我在 httpd.conf 中没有进一步的限制(我在官方 php 文档中读到文件 open_basedir 语句也可以如此)。

php mediawiki open-basedir

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

让 PHP-FPM 监听“IPAddress:Port”而不是“/var/run/php5-fpm.sock;”

当我今天对我的网站进行负载测试时(使用blitz.io);尽管有大量 RAM(超过 50%)和 CPU 能力(超过 70%)可用,但结果显示我的网站在每秒达到一定数量的并发用户时开始超时。

我的网站的 Nginx 错误日志 (/var/log/nginx/example.com.error.log) 显示如下内容:

2013/02/12 19:03:57 [错误] 13749#0: *3175 connect() 到 unix:/var/run/php5-fpm.sock 在连接到上游时失败(11:资源暂时不可用),客户端: 54.123.456.46,服务器:example.com,请求:“GET / HTTP/1.1”,上游:“fastcgi://unix:/var/run/php5-fpm.sock:”,主机:“example.com”

谷歌搜索错误让我找到了这个答案,它指出使用 TCP\IP 连接而不是 unix 套接字作为问题的解决方案;因为unix套接字的“高负载情况下的问题是众所周知的”。

因此,正如答案所建议的:

  • 我在 /etc/php5/fpm/pool.d/www.conf 中替换listen = /var/run/php5-fpm.sock为listen 127.0.0.1:9000

  • 由于我的发行版(Debian Wheezy)上没有/etc/nginx/php_location,所以我没有采取任何措施。

  • fastcgi_pass unix:/var/run/php5-fpm.sock;由于我在站点的 Nginx 配置文件中使用,即 /etc/nginx/sites-available/example.com,因此我将其替换为fastcgi_pass 127.0.0.1:9000;

现在的问题是,当我502 Bad Gateway访问我的网站时出现错误。是的,我做了reloadNginx 和 PHP-FPM。我究竟做错了什么?(这里完全是新手,尽我最大努力边做边学。)

如果这是相关的,当我这样做时sudo service php5-fpm restart,我会收到此错误:

[FAIL] Restarting PHP5 FastCGI Process Manager: php5-fpm failed!
Run Code Online (Sandbox Code Playgroud)

这只是在我做出上述更改后才发生的。我怎样才能解决这个问题? …

php nginx fastcgi php-fpm debian-wheezy

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

Apache 使用错误版本的 PHP

我正在尝试将 PHP 从 5.5 降级到 5.3(不是自愿的)。

我以为我通过输入以下内容卸载了 php 5.5sudo apt-get remove "php*"

然后我按照这些说明安装了 php 5.3

然而,当我phpinfo()在脚本内部调用并运行它时,我仍然得到 PHP Version 5.5.9-1ubuntu4.19

但是当我php -v从命令行调用时我得到PHP 5.3.29 (cli) (built: Sep 2 2016 10:56:16)

当我 cd 到根目录并键入时,locate libphp5.so只找到 1 个路径,而这就是 Apache 已在使用的路径。

我如何告诉 Apache 使用 5.3?

ubuntu php web-server apache-2.4

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

Nginx 说 404 not found,没有错误日志

我在 nginx 页面上找不到 404,我在 nginx 错误日志文件中也没有收到任何错误。

server {
    listen 6269;
    server_name  (domain);
    root  /home/temp;
    index /_h5ai/public/index.php;
    location / {
        try_files $uri $uri/ =404;
        autoindex  on;
        autoindex_exact_size off;
        autoindex_localtime on;
     }

    location ~* \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass  unix:/var/run/php-fpm/www.sock;
    } 
}
Run Code Online (Sandbox Code Playgroud)
  • 错误日志为空
  • 访问.log有:

X.0.X.190 - - [17/Nov/2018:21:50:57 +0000] "GET / HTTP/1.1" 404 571 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36" "-"

  • 操作系统:Fedora 29

php nginx fedora php-fpm

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

为什么 Debian 的 PHP sessionclean 脚本首先接触所有打开的文件?

我现在正在学习/usr/lib/php/sessionclean。有一件事我不完全明白。在清理之前触摸所有打开的会话文件的目的是什么?我知道这会阻止删除当前打开但尚未写入的过期会话。但这不是竞争条件吗?如果 PHP 进程在 touch 和 delete 命令之间打开一个过期的会话文件怎么办?

php debian

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