标签: php

如何在 Ubuntu VPS 上检查我的 PHP 和 MySQL 版本?

嗨,我要安装 MyBB,但我不确定我是否安装了正确版本的 PHP 和 MySQL。

PHP 5.1.0 或更高版本,已安装 XML 扩展

MySQL 4.0 或以上版本

如何检查?特别是 PHP XML 扩展?

有没有比<?php phpinfo() ?>解决方案更简单的方法?我期待命令行解决方案。

非常感谢!

mysql ubuntu php command-line-interface

46
推荐指数
2
解决办法
36万
查看次数

如何安装旧版本的 pecl 包

我有这个代码

    $passengerId = new \MongoId(oPassenger->getId());

    return $this->createQueryBuilder('Device')
        ->update()
        ->multiple(true)
        ->field('activated')->set(false)
        ->field('passenger')->unsetField()->equals($passengerId)
        ->field('_id')->notEqual($deviceId)
        ->getQuery()
        ->execute();
Run Code Online (Sandbox Code Playgroud)

它在我的开发服务器上运行良好,但在我的本地机器上崩溃。

pecl list在开发返回时运行

APC     3.1.13  beta
amqp    1.2.0   stable
intl    3.0.0   stable
mongo   1.3.7   stable
Run Code Online (Sandbox Code Playgroud)

和本地回报:

mongo   1.5.6   stable
xdebug  2.2.5   stable
Run Code Online (Sandbox Code Playgroud)

我机器上的崩溃消息是

"name":"MongoException","message":"Invalid object ID"},"code":500}
Run Code Online (Sandbox Code Playgroud)

我试过降级 mongo 的本地版本,但我无法用 pecl 糟糕的文档来解决这个问题。例如我试过这个:

sudo pecl upgrade -f -c channel://pecl.php.net/mongo-1.3.7
Run Code Online (Sandbox Code Playgroud)

但我一直在获取channel does not exist我所有的频道排列。

也在mongod --version本地运行返回db 版本 v2.6.0,在 dev 上返回db 版本 v2.4.3

想法?

php mac-osx pecl pear mongodb

44
推荐指数
1
解决办法
5万
查看次数

应该使用哪种 PHP(操作码)缓存,为什么?

我一直听说一些 PHP(操作码)缓存,如 APC、XCache、Memcache、eAccelerator 等。

但我无法弄清楚如何去选择一个。除了缓存系统应该提供的性能优势之外,还应该关注哪些其他因素。

比如为什么你会说X缓存系统比Y好?我不太担心相对性能提升。任何两个系统之间的微小差异都不重要。

如果对我的问题不可能有一个通用的答案,这里有一些提示。我使用带有 Mediatemple 的专用 VPS(具有 root 访问权限)。RAM 为 512 MB(物理)+ 400MB(交换)我担心 WordPress 及其表亲 WordPress-MU 和 BuddyPress。我们 90% 的代码/网站都属于 WordPress 家族。

在此先感谢您的帮助。

php performance cache wordpress memcached

43
推荐指数
4
解决办法
4万
查看次数

卷曲 POST - 需要 411 长度

我们有一个用 PHP 构建的 RestFUL API。如果我们提出请求:

curl -u api-key:api-passphrase https://api.domain.com/v1/product -X POST
Run Code Online (Sandbox Code Playgroud)

我们回来:

411 - Length Required
Run Code Online (Sandbox Code Playgroud)

虽然如果我们简单地添加-d ""到请求中,它可以工作并且没有 411 错误。有没有办法不需要在 curl 命令中添加 -d ?

我们正在使用 lighttpd 网络服务器,并且相信它的 lighttpd 不是 php 返回 411 错误。

php lighttpd curl

42
推荐指数
1
解决办法
6万
查看次数

被黑了。想了解如何

有人第二次在我帮助运行的网站上添加了一大块 javascript。这个javascript劫持了谷歌的adsense,插入自己的账号,到处贴广告。

代码总是被附加,总是在一个特定的目录中(一个由第三方广告程序使用),影响这个广告目录(20个左右)内的许多目录中的许多文件,并在一夜之间以大致相同的方式插入时间。该 Adsense 帐户属于一个中国网站(位于离我下个月要去中国的地方不到一小时路程的一个小镇。也许我应该去爆头...开玩笑,有点),顺便说一句...这里的信息网站:http : //serversiders.com/fhr.com.cn

那么,他们如何将文本附加到这些文件中呢?是否与对文件设置的权限有关(范围从 755 到 644)?对于网络服务器用户(它在 MediaTemple 上,所以它应该是安全的,是吗?)?我的意思是,如果你有一个权限设置为 777 的文件,我仍然不能随意向它添加代码......他们怎么会这样做?

这是一个实际代码示例,供您观看(正如您所看到的......没什么。真正的技巧是他们如何获得它):

<script type="text/javascript"><!--
google_ad_client = "pub-5465156513898836";
/* 728x90_as */
google_ad_slot = "4840387765";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
Run Code Online (Sandbox Code Playgroud)

由于很多人都提到过它,这里是我检查过的(检查我的意思是我环顾了文件被修改的时间是否有任何奇怪之处,并且我为 POST 语句和目录遍历查找了文件:

  • access_log(除了正常(即过多)的 msn bot 流量之外,什么都没有)
  • error_log(除了通常的文件不存在无害文件的错误)
  • ssl_log(只是通常的)
  • messages_log(这里没有 FTP 访问,除了我)

*更新:**好的,解决了。来自中国的黑客在我们的网站上放置了一个文件,允许他们执行各种管理操作(数据库访问、删除和创建文件和目录,您可以命名,他们有权访问)。我们很幸运,他们没有做更具破坏性的事情。正常的 apache 日志文件中没有任何内容,但我在 Web 服务器日志分析器中发现了一组不同的日志文件,并且证据就在那里。他们使用自己的管理员用户名和密码访问这个文件,然后在服务器上编辑他们需要的任何内容。他们的文件将“apache”设置为用户,而我们网站上的所有其他文件都有不同的用户名。现在我需要弄清楚他们是如何将这个文件物理地放到我们的系统上的。我怀疑这最终会归咎于我们的网络主机(Media Temple),

security php hacking

41
推荐指数
2
解决办法
2142
查看次数

设置 ubuntu 服务器以发送邮件()

我尝试了很多搜索,但无法找到如何实际设置 ubuntu 服务器,以便我可以使用 php 中的 mail() 函数通过 php 发送邮件。

我的服务器上安装了 apache2、mysql 和 php5。

谢谢你。

ubuntu php apache-2.2

40
推荐指数
1
解决办法
8万
查看次数

在命令行上使用 MySQL 密码的安全替代方法是什么?

我们有一个 PHP 命令行脚本来对数据库进行版本控制。每当开发人员添加新的数据库补丁时,我们都会运行此脚本。

该脚本使用 MySQL 命令行运行补丁:

system('mysql --user=xxx --password=xxx < patch.sql');
Run Code Online (Sandbox Code Playgroud)

但是,MySQL 5.6 现在发出以下警告:

警告:在命令行界面上使用密码可能不安全

这显然是正确的,但对用户来说可能是也可能不是问题。

  • 那么安全的替代方案是什么?
  • 或者,是否可以禁用此警告?

请注意,我不想依赖外部密码文件。

mysql php command-line-interface

39
推荐指数
3
解决办法
3万
查看次数

我如何告诉 Apache 使用哪个 PHP?

我在Mac OS X (10.5)上运行Apache2。我刚刚编译了PHP 5.2.8并最终开始工作(或者我认为是这样)。pdo-mysql

此终端命令:

php --version
Run Code Online (Sandbox Code Playgroud)

显示5.2.8并且我安装了正确的模块。

但是,当我执行 a 时phpinfo()Apache 会转储PHP 5.2.6(我的早期版本,没有pdo_mysql)。

我如何告诉 Apache 加载哪个 PHP?在httpd.conf有一行:

LoadModule php5_module        libexec/apache2/libphp5.so
Run Code Online (Sandbox Code Playgroud)

但是,我不知道那是什么或在哪里。

这是我必须改变的吗?

php pdo apache-2.2

38
推荐指数
1
解决办法
13万
查看次数

phpMyAdmin 错误 - 配置文件现在需要一个秘密密码

安装phpmyadmin后,我不断收到错误“配置文件现在需要一个秘密密码”。我已经设置了密码并遵循了https://serverfault.com/questions/291490/phpmyadmin-not-allowing-users-to-log-on 上提供的说明,但它似乎不起作用。我正在使用 AMI 并检查了所有者和权限。请帮助。

php amazon-ami

38
推荐指数
4
解决办法
15万
查看次数

如何卸载 PHP 的 Web 平台安装程序 (WPI) 安装?

我们已经使用 Web 平台安装程序 (WPI) 3.0.x 在 Windows Server 2008 R2 机器上安装了 PHP。

但是,我想卸载 PHP(特别是 5.3,保留 5.2 原样)。不幸的是,程序和功能中不存在卸载选项,过去我只升级了PHP 安装,而不必进行卸载。(基于我在网上找到的答案缺乏,似乎普遍情况也是如此。)

我意识到我可以将额外的安装留在那里,但为了拥有一个干净的服务器,并使正在使用的 PHP 版本变得相当明显,我想删除安装。

我想我也可以删除安装目录 - C:\Program Files (x86)\PHP\v5.3 - 但这感觉不对。

还安装了 PHP 管理器(也通过 WPI),但我认为无法删除安装,只能添加。

php web-platform-installer

37
推荐指数
2
解决办法
11万
查看次数