Articles of PHP的

长时间运行的PHP脚本在通过exec()调用时停止,但在通过CLI调用时结束

我有一堆需要很长时间才能完成的脚本。 其中一些可能需要长达20分钟。 有一个执行这些PHP脚本的Bash脚本。 当我以root的身份通过CLI调用这个Bash脚本时,所有的PHP脚本都没有任何问题。 但是当我用PHP的exec()函数通过浏览器调用Bash脚本时,脚本在7/8分钟后突然停止,而不会引发任何错误。 对于通过Apache / PHP执行的进程或脚本可以运行的时间是否有一定的限制? 我试过了: set_time_limit(0) exec('nohup /path/to/bashscript') exec('/path/to/bashscript | at now') 最后两个尝试过的解决scheme已经被长期运行脚本有问题的其他人推荐,但是它根本没有帮助我。 注意:执行PHP脚本的Bash脚本是CakePHP的控制台应用程序。 我必须通过这个Bash脚本执行PHP脚本来利用CakePHP的所有function(模型,shell方法等)。 我需要能够通过浏览器调用Bash脚本,并让它在后台运行。 服务器是VPS,并安装了WHM / cPanel。

如何将OCI8安装到现有的PHP?

根据这个 (从PECL安装OCI8,自动化),我所要做的就是inputpecl oci8 install 。 但是,这只会让我重复以下的错误。 No releases available for package pecl.php.net/oci8 。 另一个网站build议我试试pear install pecl/oci8 。 同样的错误发生。 我该如何解决这个问题?

404未find,请求的url<< url name >>在这个服务器上找不到wordpress

我最近安装了wordpress,当我尝试更改永久链接格式时,我遇到了问题, 当我从默认更改永久链接到date和时间 Default http://127.0.0.1/?p=123 Day and name http://127.0.0.1/2015/03/16/sample-post/ 生成的链接不工作,它始终给出相同的error 404 , The requested URL /2015/03/16/post-5-problem/ was not found on this server. 但是,当永久链接types默认情况下,这是完美的。 我find了一些解决scheme sudo a2enmod rewrite Module rewrite already enabled 另一个解决scheme是将.htaccess文件的模式权限更改为666(给予.htaccess文件wordpress的写入权限),然后将永久链接从默认更改为其他types, sudo chmod 666 /address_of_.htaccess 我检查了.htaccess文件 # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d […]

php shell_exec多个命令在后台一次

我在php / linux有一个问题,如下所述: 我必须通过shell_exec(plesk cli命令subscription webspace-off)执行一个linux命令。 问题是,当我这样做从PHP的工作,但重新启动Apache,导致一个空白页面,而Apache重新启动。 为了摆脱这个问题,我必须在后台调用shell_exec,延迟(预期结果:网页加载,4秒后运行linux脚本)。 我做了一些尝试,如: shell_exec("sleep 4 && /var/www/vhosts/site.com/httpdocs/wrapper2 3 –webspace-off ".$domain_name." &"); 但PHP会等待响应。 不知何故,我需要睡眠一个Linux命令的执行,所有这一切都必须运行在BG,并不等待响应。 谢谢

mcrypt性能

我正在对一些数据进行encryption,并在系统之间的srcipt运行时间中获得大不相同的结果。 在win7机器上运行我的algorithm,encryption完成3-8千分之一秒。 Linux上的相同代码(ubuntu11和debian6盒)需要7到35秒。 这是不能接受我的需要,并想知道如果任何一个人可以摆脱任何光。 相关代码如下: <?php class MyEncryption { public function __construct( $keyData ) { $this->_encryptInit( $keyData ); } private function _encryptInit( $keyData ) { $this->ch = mcrypt_module_open('rijndael-256', '', MCRYPT_MODE_ECB , ''); $vector = mcrypt_create_iv (mcrypt_enc_get_iv_size( $this->ch ), MCRYPT_DEV_RANDOM ); $keySize = mcrypt_enc_get_key_size( $this->ch ); $key = substr( hash('SHA512', $keyData . $keySize ), 0, $keySize […]

如何在Apache Fedora上启用PHP?

标题几乎总结了它。 我运行Fedora 18 64位 ,通过“httpd”安装Apache。 我有我的Apache运行得很好,但我的PHP似乎并没有工作。 我相当肯定我有我的机器上安装(新的Linux)。 我在包含代码的/var/www/html/目录下创build了一个'test.php'文件: <?php phpinfo(); ?> 但是它并没有显示出应该的样子,只是将文本打印到我的浏览器中。 所以我的想法是,PHP没有在我的Apacheconfiguration或什么东西。 有人可以对此有所了解,并对如何使这个工作有一些build议吗? 提前致谢! 编辑,这是我的httpd.config文件: ServerRoot "/etc/httpd" Listen 80 Include conf.modules.d/*.conf User apache Group apache ServerAdmin root@localhost <Directory /> AllowOverride none Require all denied </Directory> DocumentRoot "/var/www/html" <Directory "/var/www"> AllowOverride None Require all granted </Directory> <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None Require all […]

Laravel:调用未定义的函数Symfony \ Component \ Console \ mb_convert_variables()?

我正在运行一个香草亚马逊EC2服务器。 我自己安装了PHP 5.5.21。 我的Web应用程序build立在Laravel上。 几个星期以来,一切工作都完美无瑕。 但是,现在运行Laravel命令来更新数据库模式时: PHP的工匠迁移 我得到以下错误: PHP致命错误:调用未定义的函数Symfony \ Component \ Console \ mb_convert_variables()在/var/www/mysite/vendor/symfony/console/Symfony/Component/Console/Application.php上线1154 奇怪的是,我没有做任何更新或安装任何包之间的工作时间,当它停止工作。 (至less我认为,我确认了我的历史。) 我不认为Laravel本身就是一个问题。 我的研究表明,mb_convert_variables应该是一个内置的PHP函数。 这里是错误的Application.php的1154行: mb_convert_variables($encoding, 'utf8', $lines); 这是在更大的背景下。 有趣的是mb_convert_encoding(…)似乎工作正常: private function splitStringByWidth($string, $width) { // str_split is not suitable for multi-byte characters, we should use preg_split to get char array properly. // additionally, array_slice() is not enough as some […]

用UCLIBC交叉编译PHP

这是一个REPOST,以前的岗位GOTclosures,搬到SERVERFAULT和再次closures。 我认为这个post是一个有效的stackoverflow问题,因为我认为它是由一些automake /编译/链接错误引起的。 这是一个编程问题,而不是服务器pipe理员问题。 交叉编译PHP https://serverfault.com/questions/418521/cross-compile-php 开始发布 我已经下载了PHP 5.4.0源代码,将其解压缩并移入源文件夹。 我做了一个configuration: ./configure –build=x86_64-unknown-linux-gnu –host=arm-linux-uclibcgnueabi –prefix=/usr/arm/www CC="arm-linux-uclibcgnueabi-gcc –sysroot=/toolchains/gnu_cortex-a9_tools/" –disable-libxml –disable-dom –without-iconv –without-openssl –disable-simplexml –disable-xml –disable-xmlreader –disable-xmlwriter –without-pear –without-sqlite3 –disable-pdo –without-pdo-sqlite –disable-phar –with-config-file-path=/etc/ 其次是 make 没有错误,一切运行良好。 接下来我做一个make install。 make install 再次,一切运行良好。 我将它移动到目标平台并运行 /usr/arm/www/bin/php -v PHP 5.4.0 (cli) (built: Aug 15 2012 16:07:41) Copyright (c) 1997-2012 The PHP Group […]

如何让PHP在CLI和Web上调用时使用相同的APCcaching?

我正在使用APC来caching用户variables(使用apc_store / apc_fetch命令)。 我也启用了APC的CLI选项“apc.enable_cli = 1”。 但是,PHP的CLI版本似乎是从Apache使用的版本访问不同的APCcaching。 是否可以将APCconfiguration为同时使用CLI和Web调用的caching?

php5和php5-dev有什么不同?

当我在ubuntu上安装php时,有人使用 sudo apt-get install php5 有人使用 sudo apt-get安装php5-dev 他们之间有什么不同?