Articles of PHP的

使用POST数据和命令行标题调用CURL

我正在使用RESTAPI与django服务器通信php客户端。 我发布了json数据。 PHP代码是 $arr=array("username"=>"dtthtdas45", "password"=>"123456", "email"=>"ramg@ram.com", "is_active"=>"1", "is_staff"=>"1", "is_superuser"=>"1", "promo_code"=>"1212121", "gender"=>"m", "birth_year"=>"1991", "zip"=>"77707", "first_name"=>"john", "last_name"=>"doe", "current_state"=>"1" ); echo $data_string= json_encode($arr); $ch = curl_init('http://localhost:8000/api/ecp/user/?format=json'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string)) ); $result = curl_exec($ch); 我怎样才能使用命令行调用相同的URL? 我试过了 curl -H 'Content-Type: application/json' -X POST -d '{"username": […]

使用来自PHP / CGI不良做法的shell命令?

shell命令是否被认为是合法的编程接口? 特别是,从PHP页面或CGI文件在linux应用程序服务器上执行bash shell命令有什么问题吗? 这是否会引入效率或安全问题? 谢谢

64位的Linux / Ubuntu和OpenSSL的问题(无法读取符号:值不好)

通常我会search很多东西并阅读很多东西来解决我的问题,但是对于这个特殊的问题,这是非常不利的。 我正在运行一个64位的Ubuntu Linux服务器,我安装了LAMP堆栈,并且libcurl没有SSL支持,而OS二进制文件有SSL支持。 PHP不能读取它。 当我search解决scheme,并尝试执行以下操作以在安装PHP时启用SSL支持,我得到了问题.. ./configure …. –with-openssl … …. /usr/bin/ld: ext/standard/.libs/info.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC ext/standard/.libs/info.o: could not read symbols: Bad value collect2: error: ld returned 1 exit status make: *** [libphp5.la] Error 1 所以,它突然停了下来。 我试着做–enable-shared –without-pic的参数无济于事。

通过PHP执行.sh脚本

我有几个游戏服务器,我需要运行shell脚本进行frequality。 我想弄清楚如何通过同一台服务器上的网页来运行这些脚本。 这是一个Ubuntu专用服务器。 网站文件通过/var/www/… 。我需要手动运行的.sh文件位于/home/amservers/…/start.sh 。 我看了其他答案,我仍然无法弄清楚。 如何find文件并存储它,然后运行exec()?

任何想法,为什么我可以从命令行执行命令,但不是从PHP exec()

好, 我做了一些有创意的search,有点打路障。 我正在尝试使用Linux程序“sox”。 我正试图从我的PHP脚本中调用它。 如果我使用命令行,脚本可以工作。 但是,当我使用PHP的exec,它不起作用。 例: sox file1.mp3 file2.mp3 tempfile.mp3 -V3 (“V3”指定了详细的输出) 在命令行中以“用户X”或root身份执行时,可以创build新文件。 但是,当我执行命令为: <?php exec('sox file1.mp3 file2.mp3 tempfile.mp3 -V3', $output); foreach($output as $line){ print $line; } 它不会生成新的文件。 而且,应该返回该命令的结果的数组是空白的。 我已经做了一个简单的文字 exec(ls,$output); 我得到根目录的内容。 我使用了PHP命令get_current_user() ,它返回了作为网站根目录的所有者。 但是,当我使用linux命令whoami我发现它将当前的人视为“apache”。 我需要给apache使用该程序的权利吗? 我将继续在网上search,做试验和错误,试图弄清楚我做错了什么。 任何帮助表示赞赏。 澄清 我不是在安全模式(我检查了phpinfo()页面)

未知:未能打开需要'0ff'(include_path ='。:/ tmp:/ usr / lib / php:/ usr / local / lib / php')

今天我得到了以下错误。我没有任何更改我的PHP程序。 警告:未知:未能打开stream:没有这样的文件或目录在第0行的未知 警告:未知:未能打开stream:没有这样的文件或目录在第0行的未知 致命错误:未知:无法打开需要'0ff'(include_path ='。:/ tmp:/ usr / lib / php:/ usr / local / lib / php') ….几个小时后…服务器pipe理员说在他的观点是“没有问题”! 多好的解决scheme:)) 现在,几个小时后,错误更改为以下消息 致命错误:未知:失败打开需要'0ff ; As of 4.0b4, PHP always outputs a character encoding by default in ; the Content-type: header. To disable sending of the charset, simply ; set it to be empty. ; ; PHP's […]

无法杀死PHP脚本

我在一个Namecheap共享服务器上开发一些PHP脚本。 我不小心做了一个似乎无限期(或很长一段时间)的循环,所以现在我试图用SSH来杀死它。 我查看了一个正在运行的进程列表,find了错误的PHP脚本,并试图杀死它。 但是,当我用这个命令杀死它之后,当我尝试使用ps ,它仍然在运行! ps的结果: PID TTY STAT TIME COMMAND 819520 ? S 0:00 /usr/bin/php /my/php/file.php 我已经试过一遍又一遍的杀死这个进程,但是它不会死的! SSH是有限的,所以我不能使用像killall命令。 我该怎么办??!

在Debian 6上安装Gearman PHP扩展

我正在拼命想让Gearman PHP扩展工作在Debian 6上。 我有所有的二进制文件和来源 root@debian:/tmp/pear/install# aptitude search gearman i gearman – A distributed job queue i A gearman-job-server – Job server for the Gearman i gearman-tools – Tools for the Gearman i libgearman-dev – Development files for the i libgearman4 – Library providing Gearman …但是,当PHP扩展confing有一些错误,不让我安装它 # /usr/local/pear/bin/pecl install gearman downloading gearman-1.1.0.tgz … Starting to download […]

pcntl_fork()中超过300秒的最大执行时间

我有一些代理运行,经过几个星期的正常模式,突然我们得到: Maximum execution time of 300 seconds exceeded 在一条线上 $this->pids[$next_child] = pcntl_fork(); 我们也有: [root@a ~]# ulimit -u 385913 [root@a ~]# ps ax | wc -l 400 [root@a ~]# cat /proc/sys/kernel/pid_max 4194303 strace shows poll([{fd=4, events=POLLIN|POLLPRI|POLLHUP}], 1, 1000) = 0 (Timeout) 我们在php5.4的centos,它可能是一个PHP的错误? 或者可能是错的?

APC不caching文件,但caching用户数据

Apc不caching文件,它只caching用户数据 。 当我在本地主机上testing时,APCcaching了我使用的所有文件。 但是这对我的共享主机不起作用。 这是一个configuration问题? 这些是我apc.php(APC 3.0.19)的统计数据: 在上图中,APC不使用任何内存。 这是phpinfo()给我的: 在本地主机上,我只访问http://localhost/test.php 。 Apc将立即cachinglocalhost / test.php(types文件)。 但在共享主机上,我没有看到它的caching文件(它可以cachingvariables,如果我存储,但不与文件); apc_add('APC TEST', '123'); echo apc_fetch('APC TEST'); //– it work with this code 我想apccachingtest.php如果我访问test.php。 有没有configuration让APC无法caching文件types,或者是共享主机的限制?