标签: php

如何为 PHP CLI 启用 OpenSSL?

php.ini位于/etc/php5/apache2/php.ini和 的文件没有重大区别/etc/php5/cli/php.ini。但是, <?php phpinfo(); ?>当从浏览器访问时,显示OpenSSL 支持已启用,而php -info | grep openssl在终端中执行则给出 OpenSSL support => disabled (install ext/openssl).

我有最新版本libssl-devopenssl安装了。如何为 cli 版本启用 OpenSSL?

php command-line openssl php-cli

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

在 Ubuntu 14.04 上使用 php-fpm + nginx 时无法获取错误堆栈跟踪或错误日志

我在 Ubuntu 14.04 机器上使用 php-fpm 5.5.9 和 nginx 1.4.6。我已经使用 apt-get 包管理器安装了它们。我无法获取我的 index.php 脚本在错误日志中以及浏览器上遇到的错误的堆栈跟踪。我从 stackoverflow 和其他文章中搜索并实现了几个解决方案,但没有一个对我有用。这是我的 nginx conf 和 php-fpm conf 文件。如果我犯了任何愚蠢的错误,请帮助我。

Nginx 配置:

location ~ \.php$ {
        # With php5-fpm:
                #try_files $uri =404;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_intercept_errors on;
        fastcgi_read_timeout 600;
        fastcgi_send_timeout 600;
        proxy_connect_timeout  600;
        proxy_send_timeout  600s;
        proxy_read_timeout  600s;
        fastcgi_pass 127.0.0.1:7777;
        fastcgi_index index.php;
    }
Run Code Online (Sandbox Code Playgroud)

PHP-FPM 配置:

error_log = /tmp/php5-fpm.log
Run Code Online (Sandbox Code Playgroud)

PHP-FPM池配置:

catch_workers_output = yes 
slowlog = /var/log/php-fpm/$pool.log.slow
listen = 127.0.0.1:7777

php_flag[display_errors] = On 
php_admin_value[error_log] = /tmp/fpm-php.www.log 
php_admin_flag[log_errors] = On
Run Code Online (Sandbox Code Playgroud)

提前致谢。

php nginx 14.04 php-fpm

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

如何禁用特定虚拟主机的 mpm-itk?

我在服务器上有一个主站点,需要运行sudo我通过白名单列出的命令visudo。在我安装之前一切正常apache-mpm-itk,然后我开始收到以下错误:

sudo: PERM_ROOT: setresuid(0, -1, -1): Operation not permitted
Run Code Online (Sandbox Code Playgroud)

我想禁用mpm-itk此特定站点,同时为服务器上的所有其他站点启用它。有没有办法通过 VirtualHost 中的站点配置来做到这一点?或者,如果我需要 1 个站点来执行sudo命令,那么我就不走运了mpm-itk

php security sudo apache2

5
推荐指数
0
解决办法
772
查看次数

php5 和 phpmyadmin 未安装

我已经安装了 mysql、mysql-server、apache2 等等。可能是我安装了一些错误的 PPA 或程序导致了这个问题。基本上,我需要运行本地服务器(例如,对于 WordPress)。所以我需要 localhost/phpmyadmin。不知怎的,本地主机正在工作(它显示它的默认页面),但本地主机/phpmyadmin不工作。

当我尝试时sudo apt-get install phpmyadmin,它给出以下输出

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:

phpmyadmin : …
Run Code Online (Sandbox Code Playgroud)

php package-management apache2 phpmyadmin software-installation

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

Cron 已执行但脚本不起作用

我知道有很多类似的问题,我已经尝试了很多东西,但仍然无法使其发挥作用。

我有计划运行 10 分钟的 cronjob。我可以看到/var/log/syslog它运行正常

Oct 21 07:30:01 stan CRON[7604]: (stan) CMD (stan /home/stan/update.sh)
Oct 21 07:40:01 stan CRON[8304]: (stan) CMD (stan /home/stan/update.sh)
Oct 21 07:50:01 stan CRON[8751]: (stan) CMD (stan /home/stan/update.sh)
Oct 21 08:00:01 stan CRON[9347]: (stan) CMD (stan /home/stan/update.sh)
Oct 21 08:10:01 stan CRON[9789]: (stan) CMD (stan /home/stan/update.sh)
Run Code Online (Sandbox Code Playgroud)

update.sh调用php更新数据库的脚本。当我直接从终端运行时,shell 脚本数据库已更新并且工作正常

./update.sh
Run Code Online (Sandbox Code Playgroud)

但 cronjob 不会更新数据库。我的克罗恩

*/10 * * * * stan /home/stan/update.sh
Run Code Online (Sandbox Code Playgroud)

shell 脚本生成的命令是

/usr/bin/php /var/www/html/site/update.php
Run Code Online (Sandbox Code Playgroud)

两个文件的权限

-rwxrwxr-x  1 stan stan    123 Oct 20 …
Run Code Online (Sandbox Code Playgroud)

php scripts cron

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

如何使已安装的 python 模块可供其他用户使用?

我正在使用 php 运行一个 bash 脚本,该脚本又会运行一个 python 脚本,但我收到了很多错误,因为它似乎www-data无法使用我为自己的用户安装的 python 包。那么我怎样才能使特定的包可用,这样www-data做安全吗?www-data设置为 的特定子树的所有者是否安全/var/www/html

这是我运行以下命令时收到的错误:

sudo -u www-data ./bash_script_that_calls_runs_the_pythonscript.sh

Traceback (most recent call last):
  File "./file.py", line 5, in <module>
    from bs4 import BeautifulSoup
ImportError: No module named 'bs4'
Run Code Online (Sandbox Code Playgroud)

但如果我跑:

./bash_script_that_calls_runs_the_pythonscript.sh
Run Code Online (Sandbox Code Playgroud)

一切都会顺利。

并且:

~/.local/lib/python3.5/site-packages$ ll | grep bs4
drwxrwxr-x  5 me www-data  4096 Dec  2 15:37 bs4/
drwxrwxr-x  2 me www-data  4096 Dec  2 15:38 bs4-0.0.1.dist-info/
Run Code Online (Sandbox Code Playgroud)

请注意,我已递归设置组:

$ ll /home/me/.local/lib/python3.5/site-packages/bs4/
total 180
drwxrwxr-x  5 me www-data …
Run Code Online (Sandbox Code Playgroud)

php permissions python bash

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

无法在 Ubuntu 18.04 和 PHP 7.2 上启用 php-curl

所以现在,我正在尝试在 Ubuntu 18.04 上的 apache2 服务器中启用 php-curl,以允许 iframe 显示外部站点页面。我一直在使用方法来尝试这个,我发现在几个地方都有记录:

StackOverflow:如何使用 PHP 7 安装 ext-curl 扩展?

StackOverflow:在 php 7 (ubuntu14.04) 中安装 cURL

LinuxConfig.org:如何在 Ubuntu Linux 上使用 Apache 启用和禁用 PHP curl 模块

无论我似乎做什么,我都无法在 php 中使用任何与 curl 相关的命令,这非常令人沮丧。我确保我已经使用sudo apt-get install curl php7.2-curl了没有问题的安装,然后使用sudo service apache2 restart. 我尝试在 php.ini 中使用extension=php_curl.dll, 和启用扩展,但extension=curl没有成功。如果我尝试使用 linuxconfig.org 上给出的代码来检查 curl 模块状态,它会说它已禁用。

如果我尝试运行我的 php 代码,我会在我的日志中找到:

PHP 致命错误:未捕获的错误:调用 /var/www/html/inc.redirect.php:4 中未定义的函数 curl_init()\n堆栈跟踪:\n#0 {main}\n 抛出在 /var/www/html /inc.redirect.php 第 4 行

我的“inc.redirect.php”文件中的代码如下:

<?php
if (isset($_GET['url'])) {
    $url = …
Run Code Online (Sandbox Code Playgroud)

php apache2 curl 18.04

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

E: 无法定位 php5.6 包

我正在尝试在我们的 Ubuntu 14.04.1 LTS 服务器上安装 php 5.6,我已经添加了ppa:ondrej/php存储库并执行了:

apt-get update
Run Code Online (Sandbox Code Playgroud)

我跑了apt-get install php5.6,得到了这个结果:

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package php5.6
E: Couldn't find any package by regex 'php5.6'
Run Code Online (Sandbox Code Playgroud)

这是否意味着 php 5.6 不再可用?有没有其他方法可以安装 php 5.6?

提前致谢!

php package-management apt dpkg

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

cat 和 tee 和有什么不一样?

我在玩 Apachephp.ini并得到了它,所以当我发送带有 PHP 文件的电子邮件时,该文件具有mail()将电子邮件保存在我的计算机上的功能,这对测试和 Web 开发人员都有好处。这是我添加的代码行php.ini

sendmail_path = "cat > /home/cam/Documents/TestEmails/`date '+%Y-%m-%d - %H-%M-%S'`.eml"
Run Code Online (Sandbox Code Playgroud)

这行代码也有效:

sendmail_path = "tee > /home/cam/Documents/TestEmails/`date '+%Y-%m-%d - %H-%M-%S'`.eml"
Run Code Online (Sandbox Code Playgroud)

cattee命令有什么区别?

php email command-line apache2

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

sudo dpkg --configure -a 永远

我正在尝试使用sudo apt-get install php-fpm. 当我执行该命令时,它给出了错误:E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.

当我输入时,sudo dpkg --configure -a它显示: Setting up mariadb-server-10.1 (1:10.1.44-0ubuntu0.18.04.1) ...,并且需要永远。我尝试过重新启动,但这并没有多大作用。

我需要安装 php-fpm (和其他),所以我不太确定要做什么。

我读过这些帖子:并按照他们所说的做了,但无济于事

sudo dpkg --configure -a

sudo dpkg --configure -a 需要永远

sudo dpkg --configure -a 错误

php apt php-fpm

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