Articles of PHP的

C ++应用程序在几个小时后崩溃

我有一个用C ++编写的应用程序,使用opencv 2.0,curl和opensurf库。 首先,PHP脚本(cron.php)调用proc_open并调用C ++应用程序(称为icomparer)。 处理完成后,N个图像返回说明哪些图像相同的组,然后脚本使用: shell_exec('php cron.php > /dev/null 2>&1 &'); die; 并重新开始。 那么,经过800或900迭代我的icomparer开始打破。 系统不会让我创build更多的文件,在icomparer和PHP脚本。 proc_open(): unable to create pipe Too many open files (2) shell_exec(): Unable to execute 'php cron.php > /dev/null 2>&1 &' curl也失败: couldn't resolve host name (6) 一切都崩溃了。 我认为我做错了什么,例如,我不知道是否从PHP进程释放资源启动另一个PHP进程。 在“icomparer”我closures所有打开的文件。 也许不释放mutex_destroy所有的互斥体…但在每个迭代器的c + +应用程序是封闭的,我认为所有的东西被释放的权利? 我必须注意什么? 我试图用stof监视打开的文件。 Php 5.2 Centos 5.X 1 […]

限制访问我的网站上的图像,除非通过我自己的htmls

在我的网站上,我以一种简单的方式存储用户图片,如:“image / user_1.jpg”。 我不希望访问者只能通过尝试user_ids来查看服务器上的图像。 (例如:www.mydomain.com/images/user_2.jpg,www.mydomain.com/images/user_3.jpg,等等…) 到目前为止,我有三个解决scheme: 我试图使用.htaccess密码保护“图像”文件夹。 这帮了我一些意见,但一些图像开始popup一个用户名和密码请求我的htmls(而令人惊讶的是一些图像没有),所以这似乎是一个不可预知的方法。 我可以开始转换我的user_id的一些盐的md5哈希。 图像将被命名为:/image/user_e4d909c290d0fb1ca068ffaddf22cbd0.jpg。 我不喜欢这个解决scheme。 这使得文件系统的方式变得复杂。 或者我可以使用PHP的readfile()函数或Perl或Python中类似的东西。 例如,我可以使用md5string传递密码来validation访问者是否具有访问该图像的login用户。 我倾向于选项3,但与Perl或Python的angular度(假设他们会比PHP更快)。 不过,我想看看关于这个问题的其他想法。 也许有一个简单的.htaccess技巧呢? 基本上所有我想确定的是,没有人可以从我的网站查看图像,除非图像是从我的网站托pipe的htmls内直接调用。 非常感谢, Haluk

在后台运行的命令行脚本处于停止状态

我有一个简短的PHP实用程序脚本,我只是用cli来运行它: php myscript.php 脚本始终在运行,定期执行一些任务(与问题无关)。 它不需要用户的任何input。 运行后,我通常按CTRL + Z ,然后运行bg将进程置于后台,一切正常。 如果我运行它: php myscript.php & 脚本在启动时放在后台,但也处于停止状态。 例: [1] 11513 [1]+ Stopped php myscript.php 即使运行bg在这一点上没有帮助,我必须运行fg ,然后CTRL + Z和bg再次使其工作。 这是PHP脚本: <? while(true){ echo 'hi '.time()."\n"; sleep(30); } ?> 我的问题是,我不能直接在后台运行它,因为系统停止它,我不明白为什么。 我怎样才能解决这个问题? 更新: 我做了一个bash版本的同一个脚本,它可以运行,并放在后台(运行,而不是停止 ),只要启动它在&最后( script.sh & ) script.sh: #!/bin/bash while true; do echo `date` sleep 30 done 为什么php脚本在后台启动后会停止,而bash脚本不会呢? 什么可能导致这种不同的行为?

Jplayeraudio不能在Linux chrome中工作

我正在使用jplayer.js在我的网站播放歌曲。 在Windows中,它在所有浏览器中都能正常工作。 但在Linux系统中,歌曲不能在Chrome浏览器中播放。任何人都可以帮我理清这个问题。 我已经configuration了jplayer显示在下面的细节.. swfPath : "js", supplied : "mp3", wmode : "window"

修改编译的Inno Setup安装程序中的configuration文件(每个下载的可执行文件的自定义configuration文件)

我正在处理一个项目,需要一个独特的操作方法,它需要一个windows安装程序exe(使用Inno Setup打包)更新为不同的configuration文件,每个下载包含一个唯一的标识号。 该项目本身是一个基于Web的,我在Apache和Linux上使用PHP。 安装程序包含一个Windows二进制可执行文件和config.ini文件。 每次准备下载文件时,我只需要编辑config.ini文件。 更新只是递增计数器。 我没有find一个方向,因为我正在编辑在Windows中创build的Inno Setup打包文件,以便在Linux服务器中进行编辑。 任何人都可以指向我的一些想法,以实现这一点,请。 谢谢, SK

APC文件caching不工作,但用户caching是好的

简介:我将PHP(5.3.8)安装为Apache模块,并通过PECL安装APC。 用户caching工作正常,但文件caching不工作(我有apc.cache_by_default设置为1,所以这不是问题) 细节:我刚刚得到一个VPS(与cPanel / WHM)来testing我可以在我的应用程序中使用apc文件caching和用户caching获得什么收益。 所以我得到了作为DSO(apache模块)编译的PHP 5.3。 然后通过SSH通过PECL安装APC。 (首先我尝试了使用WHM模块安装程序,它也有同样的问题,所以我通过SSH尝试) 一切似乎都很好,phpinfo显示APC加载和启用。 然后我检查了apc.php。 一切似乎确定 但是当我开始testing我的php应用程序时,文件caching信息apc中的状态为: Cached Files 0 ( 0.0 Bytes) Hits 1 Misses 0 Request Rate (hits, misses) 0.00 cache requests/second Hit Rate 0.00 cache requests/second Miss Rate 0.00 cache requests/second Insert Rate 0.00 cache requests/second Cache full count 0 这意味着没有PHP文件被caching,即使我已经浏览了10多个包含多个PHP文件。 所以一定有一些caching文件。 但用户caching运行良好。 User Cache Information […]

最佳/更好/最佳的方式来设置登台/开发服务器

我最近推出了一项服务,意味着我不能再直接在网站上工作,否则我会冒这个风险。 我一直没有find任何“标准”或“最好”的方式来制作一个开发服务器。 我看到的两件事是 a)使用GIT或SVN来托pipe数据(这并不能解决我的问题,我需要能够在某个地方开发,最好不是我的家用电脑) b)Capistrano(对于Rails,有没有PHP的东西?) 目前我正在看的解决scheme是在“development.domain.com”上放置一个完整的服务器副本,然后允许我处理所有事情,并且可以简单地将这些文件复制到主要部分。 这是一个可行的解决scheme? 什么是最佳解决scheme? (单独的服务器,专用工具等) 编辑这个系统由许多开发者开发。 服务器设置已经做了相当大的调整,以实现系统的全部function和安全性。 在我自己的计算机上进行开发不是一个可行的解决scheme,也不是一个Intranettypes的系统,因为我们的程序员都不在同一个位置。 我正在寻找一个服务器上的解决scheme。

在生产服务器上使用subversion生成文件的最佳方式是什么?

目前我有颠覆设置,所以当我在Eclipse PDT进行更改,我可以提交更改,他们将被保存在/ home /pipe理员/ 项目文件 。 这个文件有subversion推荐的/ branches / tags和/ trunk目录。 我没有问题正确上传文件到版本库,但是我必须“mv”Linux中的文件到/ var / www为了让他们住在服务器上? 有没有一个自动过程来做到这一点,我失踪了? 我假设我们不想让/ var / www目录(这是在机器上)存储库,但我不知道。

Magento扩展404错误

我难倒了! 我有一个自定义的扩展,在Mac Leopard上本地工作的很好,但是在推送到主机(Centos Linux)后,当我尝试调用前端路由器时,出现Magento 404错误。 例如,这个URL:[domain] /shop/index.php/bbyd_sync/index/导致实时404,但本地返回“完成”。 这是我的config.xml: <config> <modules> <Bbyd_Sync> <version>0.1.0</version> </Bbyd_Sync> </modules> <crontab> <jobs> <bbyd_sync> <schedule> <cron_expr>*/5 * * * *</cron_expr> </schedule> <run> <model>sync/run::runAll</model> </run> </bbyd_sync> </jobs> </crontab> <frontend> <routers> <sync> <use>standard</use> <args> <module>Bbyd_Sync</module> <frontName>bbyd_sync</frontName> </args> </sync> </routers> </frontend> <admin> <routers> <wrapper> <use>admin</use> <args> <module>Bbyd_Sync</module> <frontName>syncadmin</frontName> </args> </wrapper> </routers> </admin> <adminhtml> <acl> <resources> […]

dynamic安排提醒电子邮件的最佳方式? 比cron更好的吗?

问候,我正在开发一个Web应用程序。 其中的一部分将允许用户安排“提醒”电子邮件发送给他们在一天的特定时间。 什么是完成这个最好的方法? 基本上,当我想要的是一个“中断”模式时,我所提出的所有解决scheme都以“轮询”模式进行操作。 以下是我提出的一些可能的解决scheme: 每分钟都有一个cronjob火灾。 启动的脚本检查数据库以查看是否有任何电子邮件发送,如果有,则发送它们,否则它会重新进入睡眠状态。 缺点是每分钟都会有一些开销。 此外,这可能不是一个可扩展的系统,特别是当用户数量过大,发送所有电子邮件可能花费一分钟。 与#1相同,但工作每15分钟才会启动。 这样更容易pipe理,但并不完美,因为它限制了用户在15分钟的时间内提醒,并且在没有电子邮件发送时仍然会产生一些开销。 不错,但也不完美。 让PHP exec()有一些代码可以dynamic地改变crontab或者在底层的linux中调度“at”作业。 这会给我灵活性和“中断”型的模型,所以我会很渴望,但是会让PHP执行exec()linux代码的时候会出现一个巨大的安全漏洞。 所以,我要继续前进,把这个排除在外。 那么,比我想出来的更好吗? 也许没有使用cron安排电子邮件的方式? 我很好奇,看看你们有什么要说的:)。