我正在尝试增加WordPress多站点安装的最大文件大小(目前为1MB).我尝试过很多东西都无济于事.我试过的东西:
将这些添加到我的主机php.ini文件:
memory_limit = 300M
post_max_size = 32M
upload_max_filesize = 32M
Run Code Online (Sandbox Code Playgroud)
将这些添加到主题中的functions.php文件中:
@ini_set('upload_max_size' , '32M');
@ini_set('post_max_size', '32M');
@ini_set('max_execution_time', '300');
Run Code Online (Sandbox Code Playgroud)
将这些添加到.htaccess文件中:
php_value upload_max_filesize 32M
php_value post_max_size 32M
Run Code Online (Sandbox Code Playgroud)
我甚至尝试检查wp-includes/default-constants.php.
有趣的是,我在同一台服务器上有另一个WordPress安装(不是多站点)似乎工作正常(最大上传有32MB).任何想法接下来要尝试什么?
谢谢.
我打开了一些像mysqli.ini,mysql.ini, pdo_mysql.ini这样的ini文件.在这些文件中,为这些文件添加了.so扩展名.我想知道这些.so文件的存储位置.
在mysqli.ini文件里面
; configuration for php MySQL module
; priority=20
extension=mysqli.so
Run Code Online (Sandbox Code Playgroud)
在mysql.ini文件里面
; configuration for php MySQL module
; priority=20
extension=mysql.so
Run Code Online (Sandbox Code Playgroud)
在pdo_mysql.ini文件中
; configuration for php MySQL module
; priority=20
extension=pdo_mysql.so
Run Code Online (Sandbox Code Playgroud) 在我项目的一个配置设置中,我观察到文件开头的两行:
@ini_set('memory_limit', '-1');
@set_time_limit(0);
Run Code Online (Sandbox Code Playgroud)
我怀疑上面两行代码和下面的代码行有什么区别?
ini_set('memory_limit', '-1');
set_time_limit(0);
Run Code Online (Sandbox Code Playgroud)
在PHP中为@符号添加前缀的意图是什么?
请详细说明并回答问题.
提前致谢.
这一直困扰着我多年,在搜索了大量答案并尝试了建议之后,我无法在我的本地主机设置或相关的 phpMyAdmin 最大文件大小上更改 php_info() 值。
所以我找到了 phpinfo 声明正在加载的 php 文件。我改变了三个参数:
上传最大文件大小
post_max_size
内存限制
保存文件,重新启动 apache 和 MySQL...重新加载 phpinfo() 页面...没有变化。
我还尝试将 .htaccess 文件放在 Web 根文件夹中,并更改这些参数。这反映在本地值的phpinfo中(主值仍然表示最大上传大小为2M),然后当我去phpmyadmin时最大上传大小仍然是2M ...
我在 c://windows 中寻找了一个 php.ini 文件,因为这是 phpinfo() 声明主值的来源。但那里没有 php.ini 文件。所以我用我想要的价值观创造了一个……没有成功!
有任何想法吗?!这真的让我很烦!!
谢谢,
吉姆
我的服务器是Windows 2008服务器.PHP V7.2.7已安装并正在运行.Sql Server 11(64位)已安装并正在运行(有几个asp.net应用程序在运行且已经在使用该数据库)
我从Microsofts网站下载了PHP Sql Server驱动程序,并将.dll文件放在PHP ext目录中.
在我的PHP.ini中,我添加了:extension=php_pdo_sqlsrv_7_nts_x64
在我的.php文件中,我用来测试我的数据库连接:
$SqlServer = "THISSERVER\SQLEXPRESS";
$SqlServerCon = new PDO("sqlsrv:server=$SqlServer;Database=TheDatabase", "DbUName", "DbPassword");
if (!$SqlServerCon) {die('Unable To Connect to Sql Server');}
else
{echo "Connection Successful";}
Run Code Online (Sandbox Code Playgroud)
我得到:(
PHP Fatal error: Uncaught PDOException: could not find driver in D:\Inetpub\wwwroot\TechStory2\DBtest.php:7第7行是$ SqlServerCon行).
我做错了什么?以及如何建立与Sql Server的连接需要做什么?
ini_set('memory_limit', '128M'); // Returns false; memory_limit unchanged
Run Code Online (Sandbox Code Playgroud)
我无法找到可能导致此问题的列表.到目前为止我检查过:
我的想法用完了!ini_set与其他参数(例如"display_errors")一起正常工作
我刚买了一台新电脑,而且我一直在设置PHP/MySQL /数据库等......我想我就在那里,除了抛出这个曲线球.我的登录脚本工作正常,但现在它吐出了以下警告(这会混淆JSON).
警告:date()[function.date]:依赖系统的时区设置是不安全的.您 需要使用date.timezone设置或date_default_timezone_set()函数.如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符.我们在第47行 选择'EST/10.0/no DST'中的'Antarctica/Macquarie'而不是.../php/login.php
我的代码显然使用date()并在现场版本和旧机器上工作.我得到以下两行代码的两个警告:
$date = date("ymd");
$this_year = date("y");
Run Code Online (Sandbox Code Playgroud)
我的研究(见这里)表明这些函数的行为取决于php.ini.
那么我应该在新机器上更改php.ini,还是我使用某种不推荐的方法,我应该date()完全抛弃?
谢谢.
我在使用PHP扩展时遇到了麻烦。我正在尝试运行脚本,但没有任何反应,然后检查了错误日志,这是我得到的结果:
PHP Startup: Unable to load dynamic library 'C:\Program Files (x86)\PHP\ext\php_oci8.dll' - The specified module could not be found. in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)
以下文件也是如此:
php_oci8_11g.dll
php_pdo_oci.dll
php_sybase_ct.dll
php_com_dotnet.dll
Run Code Online (Sandbox Code Playgroud)
除php_com_dotnet.dll以外的所有文件均通过PHP安装进行安装,所有文件均在php.ini配置中启用。在线研究之后,我看到有人说必须将其复制到system32或sysWOW64文件夹,但我没有成功。然后我尝试在cmd中使用regsvr32注册它们,并且每个文件都出现错误:
"The module name_of_the_module.dll failed to load"
Run Code Online (Sandbox Code Playgroud)
我不明白我在做什么错。
服务器配置为Windows 2008 R2 64位,IIS7,PHP 5.3.27
我正在为修复html字符串编写一些代码.我读了一些很好的解决方案,它们与Tidy PHP类一起工作,但我遇到了一些麻烦.这篇文章写的是我想要的,但我需要安装/加载PHP Tidy类. 从截断的HTML字符串中关闭标记
我正在努力PHP 5.5.4.我尝试按照一些教程安装整洁但没有任何附加内容.当我调用整洁的类时$tidi = new \tidy();,NetBeans会向我推荐该类并单击它(Ctrl +单击)我看到它但刷新页面我得到了错误Class 'tidy' not found in ... /myfile.php line ...
我以相同的方式使用了类,$myVar = new \DomDocument();但它完美地运行.
检查Tidy扩展是否像下面一样加载,我得到"NOT LOADED".
echo extension_loaded('tidy') ? "LOADED" : "NOT LOADED";
Run Code Online (Sandbox Code Playgroud)
请问有人可以解释一下Tidy的工作原理以及如何设置它?我的Ubuntu的版本是13.10.
我正在努力用我的自定义php.ini覆盖php cli配置
我的自定义php.ini
max_execution_time = 90
memory_limit = 256M
safe_mode = Off
Run Code Online (Sandbox Code Playgroud)
运行php cli
php -c /home/env/php.ini -r 'phpinfo();' | grep 'memory_limit'
Run Code Online (Sandbox Code Playgroud)
输出
memory_limit => 256M => 256M
Run Code Online (Sandbox Code Playgroud)
但是自定义php.ini似乎不会覆盖max_execution_time和safe_mode,因为它输出0和On而不是90和Off.
运行这个简单的脚本
#!/usr/bin/php -c /home/env/php.ini
<?php echo 'memory_limit: ' . ini_get('memory_limit');
Run Code Online (Sandbox Code Playgroud)
输出默认的cli配置(128M)而不是预期的256M.
运行这个简单的脚本
#!/usr/bin/php -d max_execution_time=90
<?php echo 'max_execution_time: ' . ini_get('max_execution_time');
Run Code Online (Sandbox Code Playgroud)
按预期输出90.
到目前为止,我已经设法在运行时只覆盖一个单一的配置指令,所以任何帮助都非常赞赏如何覆盖多个配置指令.
编辑:
php -a
php > parse_ini_file('/home/env/php.ini');
Run Code Online (Sandbox Code Playgroud)
输出没有错误,所以我想我的自定义php.ini是好的.我只是发现执行
#!/usr/bin/php -c /home/env/php.ini
<?php echo 'memory_limit: ' . ini_get('memory_limit'); phpinfo();
Run Code Online (Sandbox Code Playgroud)
说加载配置文件=>(无).这似乎是个问题.PHP CLI似乎没有加载我的自定义php.ini文件,即使路径是正确的,语法似乎也很好.
解:
似乎不可能在运行时使用shebang覆盖多个配置指令,至少对我而言.但删除shebang并执行以下命令为我解决了这个问题.
php -d max_execution_time=90 -d memory_limit=256M -d safe_mode=Off …Run Code Online (Sandbox Code Playgroud)