标签: php

在 Centos 7 上安装 php 扩展时出错

我很确定我知道问题是什么我只是不知道如何解决它。

我正在尝试安装 mcrypt“yum install php-mcrypt”,但出现以下错误

Error: Package: php-mcrypt-5.3.3-3.el6.x86_64 (epel)
Run Code Online (Sandbox Code Playgroud)

我可以看到 el6 是错误。我已经安装了 php el7。我怎样才能得到 el7 版本而不是 el6?

我检查了当前的 repolist,我在那里没有看到任何 el6 存储库。当前活跃的回购是

CentOS-7 - Base 
Extra Packages for Enterprise Linux 7 - x86_64     
CentOS-7 - Extras    
MySQL Connectors Community    
MySQL Tools Community - Source  
MySQL 5.6 Community Server  
CentOS-7 - Updates 
Run Code Online (Sandbox Code Playgroud)

运行 yum install php-mcrypt 时出现 Yum 错误

--> Finished Dependency Resolution
Error: Package: php-mcrypt-5.3.3-3.el6.x86_64 (epel)
   Requires: php(api) = 20090626
   Installed: php-common-5.4.16-23.el7_0.3.x86_64 (@base)
       php(api) = 20100412-64
Error: Package: php-mcrypt-5.3.3-3.el6.x86_64 (epel)
   Requires: …
Run Code Online (Sandbox Code Playgroud)

php centos yum repository

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

Centos 7 上的 Apache 故障无法启动

大家好,

我有一个问题,我一个人无法解决,所以我需要你的帮助。

当我询问服务状态(systemctl status httpd)时,我已经安装在centos 7 apache上,所以我收到了这样的错误:

  • 正在启动 Apache HTTP 服务器...
  • httpd.service 操作超时。终止 httpd.service 停止超时 (2)。杀戮
  • 无法启动 Apache HTTP 服务器
  • 单元 httpd.server 进入失败状态

我查看了我的 error_log 文件(var/log/httpd/error_log/ 并在这里找到了这个

  • 启用 SELinux 策略:httpd 作为上下文 system_u:system_r:httpd_t:s0 运行
  • 启用 suEXEC 机制(换行:/usr/sbin/suexec)
  • 摘要认证的生成秘密
  • 没有来自 mod_heartmonitor 的老虎机
  • pid 文件 /run/httpd/httpd.pid 被覆盖 -- 不干净的关闭以前的 Apache 运行?
  • Apache/2.4.6 (CentOS) PHP/5.4.16。配置——恢复正常操作
  • 命令行:'/usr/sbin/httpd - D FOREGROUND'

是的,我已经完成了这项工作并键入了此错误声明,因此我没有在 [] 中写入日期和信息。我希望解决这个问题不是那么重要。

我已经试过了:

reboot systemctl --failed(确认失败)

我没有任何想法。有人可以让我深思。启动后,我尝试安装 icingaweb2,但现在两者都无法正常工作。

非常感谢。米拉

php http httpd pid apache-2.4

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

如何查看使用 top 或 ps aux 运行的 php 脚本

是否有我可以运行的命令可以公开显示 php 进程的脚本top或ps aux

php php-fpm

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

PHP 不能在 Centos 7 上与 Apache 一起使用

我使用的是 centos 7 并且httpd从 yum 安装了服务 (2.4.6) 没有问题,我必须从不同的 repo 安装 PHP 才能安装remiphp 5.6。

PHP 在命令行上运行,httpd 服务正在运行,但没有执行所有 php,任何日志中都没有错误,并且存在以下 php.conf。

AddHandler php5-script .php
AddType text/html .php

<IfModule  mod_php5.c>
    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>
</IfModule>
Run Code Online (Sandbox Code Playgroud)

我现在一直在这个时间转圈,似乎无法看到 apache 和 php 之间的脱节在哪里,非常感谢任何帮助。

php httpd centos7

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

在几个 php5-fpm 池中包含通用配置

简而言之:如何在多个 php-fpm 池中包含相同的设置而不为每个池重复它们?

细节

在 php5-fpm 中有全局指令和每个池指令。在所有示例和文档中,每个池都有所有必需的设置,例如

[www]
user = $pool
group = $pool
listen = 127.0.0.1:9001
listen.owner = $pool
listen.group = $pool
pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 30s
chdir = /var/www/$pool

[www2]
user = $pool
group = $pool
listen = 127.0.0.1:9002
listen.owner = $pool
listen.group = $pool
pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 30s
chdir = /var/www/$pool
Run Code Online (Sandbox Code Playgroud)

如您所见,大多数配置都是相同的,所以我想知道是否有办法将该配置放在所有池都可以隐式或显式包含它们的地方。

将它们放在该[Global]部分的底部是行不通的。

谢谢你的任何建议。

php web-server php-fpm

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

PHP CLI 未加载 IMAP 扩展

当我尝试运行imap在我的浏览器中使用的脚本时,它运行良好(它是从安装了扩展程序的网络上的 Ubuntu 14.04 服务器加载的)。但是,当我尝试在所述服务器上使用 PHP CLI 时,它不会加载imap.

我写了一个简单的脚本来检查加载的扩展,使用get_loaded_extensions(),它教会了我两件事:

  • PHP CLI 有 50 个扩展,而通过我的网络浏览器运行它有 51 个。
  • 我在apache2/php.ini( imagick.so) 中手动声明的另一个扩展正在 CLI 和浏览器中加载

为什么会发生这种情况,如何在 CLI 和浏览器中加载所有 51 个扩展?

php imap php-cli

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

清理 nginx 上的 URL 和 php 扩展

我在网上查看了许多其他问题和参考资料 - 根据我的所有计算,我的设置应该有效,但事实并非如此。

我使用 php-fpm 安装了 nginx。如果我尝试访问 .php 文件,它会正确运行并得到正确的结果。我在我的配置文件中得到了这个:

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
}
Run Code Online (Sandbox Code Playgroud)

现在,我想设置我的网络应用程序,以便在仍显示在浏览器地址栏中的同时/somedir/file自动执行。所以我修改了我的配置以包含以下内容:/somdir/file.php/somdir/file

location / {
    try_files $uri $uri/ $uri.php?query_string
}
Run Code Online (Sandbox Code Playgroud)

这类型的作品,那就是服务器做访问的PHP文件。然而,它没有使用location ~ \.php$上面现有的块来执行它,而是简单地将 php 源代码作为下载到浏览器中。如果我将 .php 手动附加到请求的 URL,则执行 php。

感觉好像一旦服务器匹配try_files到$uri.php,它就不会在位置上再执行一次以查看它需要对 php 文件做什么。我尝试将 php 块放在 的上方和下方location /,但没有任何区别。

我怎样才能让php被执行?

php rewrite nginx

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

Nginx 502 错误网关错误

目前在我的 Centos 6.8 服务器上有一个 502 Bad Gateway 错误。

    2017/01/30 23:57:31 [crit] 26911#0: *1 connect() to unix:/var/run/php/php7.0-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 192.168.0.15, server: 192.168.0.$
Run Code Online (Sandbox Code Playgroud)

我检查了目录是否存在,它不存在。我能找到的最接近该文件夹的是 /var/run/php-fpm,它只包含 php-fpm.pid。

php centos php-fpm php7

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

数据库备份的 Cron 错误 getpwnam() 失败

尝试学习如何使用 php 实现 cron 作业。

cron 的格式是这样的 /etc/crontab

 * 13 * * * /usr/bin/php /var/www/path/to/file/database-bkup-test.php &>/tmp/mycroncommand.log
Run Code Online (Sandbox Code Playgroud)

所以这应该每天运行 13 小时(下午 1 点)

我查看了服务的状态

须藤 systemctl 状态 crond.service -l

发现以下错误:

(/usr/bin/php) 错误 (getpwnam() 失败)

我使用 PHP 进行了设置,脚本基本上是这样的:

$today = date('Y-m-d');
$user = 'db_user';
$password = 'db_password'; 
$host = '127.0.0.1'; //this is actually replaced with an address to another remote server
$port='3306';
$database='database_name';

exec('mysqldump --user='.$user.' --password='.$password.' --host='.$host.' --port='.$port.' '.$database.' > /db-bkup/db-'.$today.'.sql');
Run Code Online (Sandbox Code Playgroud)

最终结果将是一个数据库转储到一个文件中:

db-2017-03-24.sql

有人可以帮助我吗?

我花时间阅读并尝试实现这一点。我发现这篇文章非常有帮助

由于作业失败,整个过程甚至没有在/tmp.

更新

添加了一个简单的 cron 来 …

php cron centos7

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

$$ 和 $! 和有什么不一样?使用 /bin/bash -c 时

我试图理解@sysfault 在此评论中的“oneliner” :

/bin/sh -c 'echo $$>/tmp/my.pid && exec program args' &

我尝试了以下变化......

不同的 $$ 内外:

/bin/bash -c 'echo $$ && exec sleep 5' ; echo $$
14408
29700
Run Code Online (Sandbox Code Playgroud)

相同的pid(但在后台):

$ /bin/bash -c 'echo $$ && exec sleep 5' & echo $! 
[1] 8309
8309
$ 8309

[ 1 ]+  Done  /bin/bash -c 'echo $$ && exec sleep 5'
Run Code Online (Sandbox Code Playgroud)

$$ 和 $ 的不同 pid!:

/bin/bash -c 'echo $$ && exec sleep 5 & echo $!'                                 
6504
6503
Run Code Online (Sandbox Code Playgroud)

Kill …

php bash

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

标签 统计

php ×10

php-fpm ×3

centos ×2

centos7 ×2

httpd ×2

apache-2.4 ×1

bash ×1

cron ×1

http ×1

imap ×1

nginx ×1

php-cli ×1

php7 ×1

pid ×1

repository ×1

rewrite ×1

web-server ×1

yum ×1