我需要重新加载我的 php.ini 并且帮助对话框中没有关于重新启动它的任何内容。
我最近编译了一个PHP 5.2.9二进制文件,并尝试用它执行一些 PHP 脚本。我可以毫无问题地执行一些脚本,但其中一个脚本在中途停止执行,退出时没有错误或警告。进程返回的状态码为255。
我在手册中读到这种状态是“保留”的。问题是:为了什么?
我相信这与 PHP 可执行文件中缺少依赖项有关,但我不能确定。
有人知道退出代码 255 是什么意思吗?
PS PHP 脚本中没有错误,它们在其他机器上运行正常。
我正在尝试在我的 Ubuntu 服务器上安装 imagick pecl 扩展,但出现以下错误。我已经使用 aptitude 安装了 ImageMagick rpm,pecl 扩展名是 2.3.0 版。我在网上环顾四周,但找不到任何指向正确方向的东西。我还尝试寻找任何看起来像是错误提到的 Wand-config 或 MagickWand-config 程序但找不到的任何东西。
steven@server:/var/www$ sudo pecl install imagick
downloading imagick-2.3.0.tgz ...
Starting to download imagick-2.3.0.tgz (86,976 bytes)
.....................done: 86,976 bytes
12 source files, building
running: phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
Please provide the prefix of Imagemagick installation [autodetect] :
building in /var/tmp/pear-build-root/imagick-2.3.0
running: /tmp/pear/temp/imagick/configure --with-imagick
*** ... snip ... ***
checking ImageMagick MagickWand API …Run Code Online (Sandbox Code Playgroud) 我在一台 RHEL5 服务器上的 PHP 5.2.10 下运行了 nginx 0.7x + PHP-FPM,但试图在第二台服务器上的 PHP 5.3.3 中的捆绑 PHP-FPM 下复制该设置,我有每次有 GET 时都会遇到权限错误的问题。
FPM启动了,确认fastcgi在9000上监听,但是每次做GET的时候,在nginx日志中看到这个错误:
2010/08/12 23:38:53 [crit] 5019#0: *5 stat() "/home/noisepages/www/" failed (13: Permission denied), client: 24.215.173.141, server: dev.noisepages.com, request: "GET / HTTP/1.1", host: "dev.noisepages.com"
Run Code Online (Sandbox Code Playgroud)
Barebones nginx.conf.default 至少可以工作。这是我的 nginx.conf
server {
listen 80;
server_name dev.noisepages.com;
root /home/noisepages/www;
index index.html index.htm index.php;
access_log logs/dev.access.log;
error_log logs/dev.error.log;
location / {
if (-f $request_filename) {
expires 30d;
break;
}
# this sends all non-existing file or directory requests to …Run Code Online (Sandbox Code Playgroud) 我试图找出 PHP 错误在我的设置中的位置。我正在运行 nginx 作为 PHP-FPM 的反向代理,但我没有看到我的应用程序生成的各种E_NOTICE或E_WARNING消息。我知道它们正在发生的唯一原因是响应失败和 NewRelic 捕获堆栈跟踪。
这是日志配置:
配置文件
proxy_intercept_errors on;
fastcgi_intercept_errors on;
Run Code Online (Sandbox Code Playgroud)
配置文件
error_reporting = E_ALL
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = On
error_log = syslog
Run Code Online (Sandbox Code Playgroud)
php-fpm.conf
[global]
error_log = /var/log/php-fpm/fpm-error.log
[www]
access.log = /var/log/php-fpm/access.log
access.format = "%t \"%m %r%Q%q\" %s %{mili}dms %{kilo}Mkb %C%%"
catch_workers_output = yes
php_flag[display_errors] = on
php_admin_flag[log_errors] = true
Run Code Online (Sandbox Code Playgroud)
配置文件
:syslogtag, contains, …Run Code Online (Sandbox Code Playgroud) 我正在尝试安装一个叫成语网的程序。我运行了 ./configure 命令并遇到了这个错误:
configure: error: Cannot find php-config. Please use --with-php-config=PATH
Run Code Online (Sandbox Code Playgroud)
我使用的是 Ubuntu 10.04、Apache 2、PHP5 和 Mysql 5
有谁知道我在哪里可以找到php-config?我找不到那个文件....
我正在 RHEL 5.5 上进行系统范围的 yum 更新,而 IUS EPEL 存储库抛出了一个缺少依赖项错误:
php53-mcrypt-5.3.3-4.ius.el5.x86_64 from installed has depsolving problems
--> Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt- 5.3.3-4.ius.el5.x86_64 (installed)
Error: Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt-5.3.3-4.ius.el5.x86_64 (installed)
Run Code Online (Sandbox Code Playgroud)
有没有办法针对所有其他存储库运行 YUM 更新而忽略 IUS EPEL 存储库以跳过此依赖项问题?
澄清
我正在尝试仅从 Redhat Network 安装更新。我找不到存储库名称,因此我无法执行类似操作,sudo yum --disablerepo=* --enablerepo=rhel update因为我使用的 yum 版本不支持 .yum 之后列出的多个存储库--disablerepo。
更新
我的临时解决方法是运行sudo yum --exclude=php53* update. 我相信有更好的方法。这个更好的方法包括修复实际问题,所以我也向IUS 社区项目提交了一个错误。
更新 #2
看起来我发现了依赖 …
我在 5 个 Web 服务器上运行了 memcache,所有这些服务器都在 php 的主机列表中,并且在前端进行了负载平衡。因此,既然 memcached 应该是分布式的,那么 php 客户端将决定将键/值对写入哪个节点并保留记录以供以后从同一节点检索,对吗?
或者是 php 客户端代码不够聪明,无法做到这一点,而是将数据写入所有服务器,然后从池中随机抽取一张图片进行读取?
但如果它这样做了;写入主机列表/池中的所有实例;那么像http://repcached.sourceforge.net/这样的工具的目的是什么,它复制数据以实现冗余。
我问的原因是因为所有负载平衡的服务器都在运行它,如果它确实写入池中的所有服务器,那么它似乎违背了分发它的目的,所以我应该强制 php 从主机中提取在 localhost 的主机列表中。
在我的开发机器上,我运行 Ubuntu 10.04.1 LTS。按照官方文档,我使用以下命令一口气安装了Apache、MySQL和PHP:
sudo tasksel install lamp-server
Run Code Online (Sandbox Code Playgroud)
现在我正在测试我的 PHP 脚本,我想启用“开发人员模式”(如果有的话)来启用错误报告和日志记录。我已经阅读了对文件的引用php.ini-production,php.ini-development这显然是某些版本的 PHP 5 附带的,但不是我安装的那个。
我所拥有的只是/etc/php5/apache2/php.ini. 此配置不会回显错误或警告,这使我的脚本难以调试。我想我可以手动编辑配置,但如果可能的话,我宁愿能够替换。
所以我正在寻找一种在 PHP 的开发和生产环境之间切换的简单方法!
我的编译配置:
./configure \
--with-fpm \
--with-libevent=shared,/usr/lib \
--with-mcrypt \
--with-zlib \
--with-curl \
--enable-mbstring \
--with-openssl \
--with-mysql \
--with-mysql-sock \
--with-gd \
--with-jpeg-dir=/usr/lib \
--enable-gd-native-ttf \
--without-sqlite
Run Code Online (Sandbox Code Playgroud)
phpinfo 页面输出如下所示
Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File: none
Run Code Online (Sandbox Code Playgroud)
并且 /usr/local/lib 中没有 php.ini。
我的环境:Ubuntu 9.10 64bit,nginx 0.8.32