我可以在我的代码中设置max_input_vars PHP.ini指令吗?我将它设置为默认值1000,但是我有一个脚本,其中包含许多复选框和文本字段,可能并且很可能会超过1000限制.
我正在使用PHP 5.3.10,我没有收到任何错误.此外,我找不到任何说明我不能这样做的文件.
ini_set('max_input_vars', 3000);
Run Code Online (Sandbox Code Playgroud)
谢谢.
当我从命令行运行php脚本时,如下所示
php test.php
Run Code Online (Sandbox Code Playgroud)
我得到以下输出
PHP Warning: Module 'memcache' already loaded in Unknown on line 0
PHP Warning: Module 'apc' already loaded in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)
我该如何修复或删除这些模块警告?我检查了php.ini
etc/php.ini
Run Code Online (Sandbox Code Playgroud)
输出
php -i | grep php.ini
PHP Warning: Module 'memcache' already loaded in Unknown on line 0
PHP Warning: Module 'apc' already loaded in Unknown on line 0
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
Run Code Online (Sandbox Code Playgroud)
我没有看到任何加载或任何对这两个模块的引用......
请帮忙
我正试图用Nginx和PHP7在Docker上设置Magento2.
我已经按照PHP7 Docker镜像的建议添加了一个自定义的php.ini文件.我可以从phpinfo.php看到它正在加载我的php.ini文件,但我的更新都没有.

它应该是:
memory_limit = 2G
max_execution_time = 800
Run Code Online (Sandbox Code Playgroud)
我检查了PHP容器,我可以看到php.ini文件中有正确的设置,或者我认为?
$ docker exec -it mymagento2docker_php_1 /bin/bash
# cat /usr/local/etc/php/php.ini
; This file is created automatically by the docker build
memory_limit = 2G
max_execution_time = 800
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?以下是一些更多细节,提前感谢!
.
??? docker-compose.yml
??? index.php
??? magento2
? ??? [DIRECTORIES & FILES OMMITED]
?
??? nginx
? ??? Dockerfile
? ??? default.conf
? ??? nginx.conf
??? output.txt
??? php
??? Dockerfile
??? config
??? php.ini
Run Code Online (Sandbox Code Playgroud)
nginx:
build: ./nginx/
ports: …Run Code Online (Sandbox Code Playgroud) 我刚刚继承了一个带有PHP脚本的站点,该脚本一直耗尽117 MB的内存.即使我将PHP的memory_limit变量增加到312 MB也是如此,我正在通过php.ini进行此操作.
由于pcguru提供了很好的线索,现在解决了这个问题.从下面的答案开始:我终于找到了答案
ini_get('memory_limit')返回php.ini中设置的值,所以我确定Apache在更改值后重新启动了.我正在使用memory_get_usage(true)返回脚本在整个过程中的各个点消耗的内存.当它达到117 MB时,它始终失败.
是否存在一些内部PHP限制我不知道它是否从未为单个脚本分配超过117MB?
服务器有1GB的RAM并运行CentOS.我有root shell访问权限.PHP是版本5.3.18.MySQL是版本5.1.66-cll.
此脚本位于用户名/密码后面,我无法提供对它的公共访问权限.
编辑添加:
1)感谢大家的帮助.您可以在下面的各种答案中找到我对特定用户评论的回复中的更多信息.
2)绝对没有安装Suhosin.我检查了多个地方,包括运行脚本并检查常量和运行php -v
3)apache日志没有我收到的具体错误消息的记录.在php.ini中打开日志记录.我通过grep搜索整个日志.
4)在这种情况下是否可能报告错误的错误?
我有index.php几个级联包含的文件,就像这样.
index.php -> controller.php -> model.php -> view.php
Run Code Online (Sandbox Code Playgroud)
在model.php我有一个功能使用ini_set('memory_limit', '-1');
ini_set()设置的更改何时到期?
执行后index.php?还是view.php?还是功能在model.php?
我想在服务器中增加memory_limit,max_input_time,max_execution_timeWAMP.
有3个php.ini文件.
1. C:\wamp\bin\apache\Apache2.4.4\bin\php.ini<br>
2. C:\wamp\bin\php\php5.4.12\php.ini<br>
3. C:\wamp\bin\php\php5.4.12\phpForApache.ini<br>
Run Code Online (Sandbox Code Playgroud)
那么php.ini应该在WAMP服务器中编辑哪个文件?
简单的问题:Mac OSX El Capitan中正确的PHP.INI位置在哪里?
我试图更新/ etc文件夹中的那个,但没有任何改变.
我最近安装xdebug在我的服务器上,但限制它用于我们的测试站点,该站点使用它自己的php.ini文件.
例如,测试站点php.ini位于:
/home/test_site/public_html/subdomain_name/php.ini
Run Code Online (Sandbox Code Playgroud)
在这个php.ini文件里面我有以下xdebug:
[XDebug]
zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = /home/test_site/xdebug
xdebug.profiler_output_name = "cachegrind.out.%s-%u.%h_%r"
Run Code Online (Sandbox Code Playgroud)
现在,事情是,xdebug 工作正常,没有问题.
但是,在我们的主站点上,它也有自己的php.ini文件,例如位于:
/home/main_site/public_html/php.ini
Run Code Online (Sandbox Code Playgroud)
在这个文件里面,我什么都没有xdebug.
现在,我最近在cpanel中设置了一个cron,用于main site:
php -f /home/main_site/public_html/cron_jobs/main_cron.php > /home/main_site/public_html/logs/main_cron.log 2>&1
Run Code Online (Sandbox Code Playgroud)
现在,在检查日志文件中的cron输出后,我得到输出:
Failed loading xdebug.so: xdebug.so: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
当主站点甚至不能加载xdebug时,为什么会出现此错误?
我已经在我的php.ini文件中设置了这个,并重新启动了php5-fpm进程
date.timezone = "UTC"
Run Code Online (Sandbox Code Playgroud)
但是phpinfo()脚本仍然显示:
date.timezone America/New_York America/New_York
Run Code Online (Sandbox Code Playgroud)
phpinfo() 还显示正在使用正确的ini文件.
我重新启动了 - 但问题仍然存在.然后我做了:
sudo service nginx stop
sudo service apache2 start
Run Code Online (Sandbox Code Playgroud)
当使用mod-php(apache2)而不是在nginx中使用php的fcgi时,date.timezone是正确的.
如何使用.htaccess的php.ini文件在服务器上将PHP版本更改为5.2?