Articles of PHP的

在Linux中检查一个进程是否使用PHP运行

我正在使用kannel通过PHP发送短信。 我想知道如何检查一个特定的进程是否正在运行。 要运行bearerbox ,名为bearerbox的进程应该始终运行。 我想检查这个过程是否正在运行。 因为如果进程没有运行,那么邮件会发送给我通知我。

如何检查端口465和587是否用PHP打开?

我试图使用PHPMailer发送电子邮件与SMTP和Gmail。 确切的脚本正在使用其他服务器,但它不是在这个特定的托pipe公司的服务器上工作。 我已经检查了phpinfo() ,它告诉我, allow_url_fopen已on ,并没有像fopen列出的disabled_functions 。 脚本失败,它告诉我: SMTP -> ERROR: Failed to connect to server: Connection timed out (110) 要不然 SMTP Error: Could not authenticate. 我假设这是因为它无法连接,因为再次在其他服务器上的这项工作和身份validation凭证是正确的。 所以我更一般地问,有没有一种方法可以使用PHP或jailshell ssh来检查端口是否实际打开?

debugging长时间运行的PHP脚本

我有php脚本运行作为一个cron工作,广泛使用第三方代码。 脚本本身有几千LOC。 基本上它是数据导入/处理脚本。 (JSON到MySQL,但它也使得很多的HTTP调用和一些SOAP)。 现在,业绩随着时间而下降。 当用几条logging(大约100条)进行testing时,性能是好的,在10-20分钟内完成。 运行整个import(约1600条logging)时,一条logging平均import时间稳定增长,整个工作时间超过24小时,至less比预期长5倍。 内存似乎不是一个问题,使用量增长应该没有意外的高峰。 所以,我需要debugging才能find瓶颈。 这可能是脚本,底层代码库,PHP本身,数据库,操作系统或networking部分的一些问题。 现在我怀疑某种地方的caching行为不好,几乎有100%的错过率。 我不能使用XDebug,configuration文件增长得太快,无法处理。 所以问题是: 我怎样才能debugging这种脚本? PHP版本:5.4.41操作系统:Debian 7.8如果需要,我可以拥有root权限,并安装这些工具。 但它是生产服务器,理想的debugging不应该太扰乱。

AJAX Progress:从Shell读取输出

目标 :build立一个进度条,让用户可以检查我的服务器已经下载了多less文件。 场景 :我有一个PHP脚本通过popen执行python脚本。 我做了这样的事情: $handle = popen('python last', 'r'); $read = fread($handle, 4096); pclose($handle); 这个python脚本输出到shell如下所示: [last] ZVZX-W3vo9I: Downloading video webpage [last] ZVZX-W3vo9I: Extracting video information [download] Destination: myvideo.flv [download] 9.9% of 10.09M at 3.30M/s ETA 00:02 问题 :当我读入由shell输出生成的文件时,除了最后一行,我得到了所有的shell输出! 为什么? 只需添加一下,当我通过shell运行命令时,shell光标出现在该行的末尾,并等待脚本完成。 谢谢大家

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 […]