标签: php

想要一个非常简单的 Ubuntu SMTP 服务器

我正在寻找一个非常简单、轻量级的 SMTP 服务器来在 Ubuntu 9.04 VPS 上运行。

我需要的唯一功能是支持 PHP 邮件命令;

<?php
mail('caffeinated@example.com', 'My Subject', 'My message');
?>
Run Code Online (Sandbox Code Playgroud)

这就是它需要做的全部。对于入站邮件,我不需要日志记录、POP3、IMAP 或其他任何东西 - 只是简单的纯文本 SMTP。电子邮件将没有文件附件。

任何建议都非常感谢。

ubuntu php smtp

7
推荐指数
3
解决办法
8224
查看次数

在 Ubuntu 12.10 上使用 LDAP 支持编译 PHP

我正在尝试在支持 LDAP 的 Ubuntu 12.10 上编译 PHP。我跑了:

apt-get install libldap2-dev
Run Code Online (Sandbox Code Playgroud)

这会将头文件安装到/usr/include.

但是,在尝试编译时无法找到头文件。我也尝试过--with-ldap=/usr/include,但仍然失败:

configure: error: Cannot find ldap.h
Run Code Online (Sandbox Code Playgroud)

我还尝试使用以下符号链接,但仍然出现相同的错误:

ln -s /usr/lib/ldap* /usr/lib/
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助。

ubuntu php ldap

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

确认没有安装mysqli扩展

最近我发现我的服务器Centos 2.6 版中没有安装 mysqli 扩展。我确认这是因为我将数据库连接的驱动程序从 更改mysqli为mysql并且现在工作正常。那么,是否有另一种方法/日志来确定这个问题?因为 apache error_log 没有说明任何事情。

这确实不是问题,但将来可能会更复杂。为什么?因为使用 mysqli 驱动程序,网站死了,空白页没有错误/警告来帮助我排除故障。我不喜欢发现魔术艺术或每行测试线的问题的想法。应该是一些帮助我调试它的日志文件。

为了提供信息来帮助解决这个问题,我做了:

 cat /proc/version 
 Linux version 2.6.18-308.el5.028stab099.3 (root@rhel5-build-x64) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46))
Run Code Online (Sandbox Code Playgroud)

mysql php logging php5

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

NAT后保留源IP

直到今天,我使用了一个便宜的路由器,这样我就可以在使用 NAT 的同时共享我的互联网连接并保持网络服务器在线。用户 IP ($_SERVER['REMOTE_ADDR']) 很好,我看到的是用户的 A 类 IP。

但是随着流量每天都在增长,我不得不安装一个 Linux 服务器 (Debian) 来共享我的 Internet 连接,因为我的旧路由器无法再保持流量了。我使用 NAT 通过 IPTABLES 共享互联网,但是现在,在将端口 80 转发到我的网络服务器后,现在我看到的不是真正的用户 IP,而是将我的网关 IP(Linux 内部 IP)视为任何用户 IP 地址。

如何解决这个问题?


我编辑了我的帖子,所以我可以粘贴我当前使用的规则。

#!/bin/sh
#I made a script to set the rules

#I flush everything here.
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
iptables -F
iptables -X


# I drop everything as a general rule, but this is disabled under testing
# iptables -P INPUT DROP
# iptables …
Run Code Online (Sandbox Code Playgroud)

linux php debian iptables linux-networking

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

如何在 PHP 5.4.9-4 上安装 php-xml 和 php-mbstring?

我已将 PHP5 添加到 UBUNTU 12.04

sudo add-apt-repository ppa:ondrej/php5 -y
Run Code Online (Sandbox Code Playgroud)

并安装了 PHP5

php5 php5-common php5-mysql php5-xmlrpc php5-cgi php5-curl php5-gd php5-cli php5-fpm php-apc php-pear php5-dev php5-imap php5-mcrypt 
Run Code Online (Sandbox Code Playgroud)

但是我找不到两个包

php-xml and php-mbstring
Run Code Online (Sandbox Code Playgroud)

知道他们现在如何称呼吗?

非常感谢,

ubuntu php php5

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

“服务器关闭连接,没有发送任何数据”

  1. 服务器设置
  2. 问题
  3. 诊断信息
  4. 我试过的
  5. 需要特定帮助

1.我有以下服务器设置:

(在使用 Hyper-V 的 VM 中运行)

Debian 挤压

Linux 2.6.32-5-amd64

Apache2-mpm-prefork 2.2.16-6+squeeze10

PHP 5.3.3-7+squeeze14

此服务器受 Suhosin 补丁 0.9.9.1 保护

每个孩子的最大请求数:0 - 保持活动状态:开启 - 每个连接的最大请求数:100

超时连接:300 - Keep-Alive:15

加载的模块核心 mod_log_config mod_logio prefork http_core mod_so mod_alias mod_auth_basic mod_auth_digest mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_cgi mod_deflate mod_dir mod_env mod_mime_phpre

Wordpress 3.4.2(即将升级到 3.5 :)


2.问题

当我重新启动服务器(sudo shutdown -r now)时,转到任何网站页面都会导致 Web 浏览器出现以下错误(在本例中为 Google Chrome,但其他浏览器也显示相同的错误)。这个错误也可能发生一个小时左右,毕竟工作正常,似乎是随机的,这是我最担心的,因为这意味着我的服务器不可靠:

未收到数据 无法加载网页,因为服务器未发送数据。以下是一些建议: 稍后重新加载此网页。错误 324 (net::ERR_EMPTY_RESPONSE):服务器关闭了连接但没有发送任何数据。


3. 诊断信息 apache 错误日志包含以下条目:

[Fri Dec 14 22:23:27 2012] [notice] child …

php debian wordpress apache-2.2

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

.htaccess 将所有扩展名重定向到 php

我最近更新了我的.htaccess文件以隐藏网址的.php 扩展名。效果很好,当我尝试访问domain.com/index 时,它会显示 php 文件。

当我输入domain.com/index.php 时,它会将我重定向到domain.com/index url 并显示 .php 文件。

出于安全原因,我想将所有其他扩展名重定向到无扩展名 url 以显示 .php 文件。我的问题是,我无法将.htaccess配置为重定向众所周知的扩展名,如.html .asp。aspx .shtml 等到非扩展 url,并获取 .php 文件显示为内容。

我的 .htaccess 文件如下所示:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# php extension to no extension url
RewriteCond %{THE_REQUEST} ^[A-Z]+\s.+\.php\sHTTP/.+
RewriteRule ^(.+)\.php $1 [R=301,L]


# no extension to the .php file
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]

# this is for the …
Run Code Online (Sandbox Code Playgroud)

php http .htaccess redirect apache-2.2

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

phpinfo.php 没有显示额外的 PHP 配置文件的额外文件夹

我的 phpinfo.php 没有显示额外的 PHP 配置文件的额外文件夹。我在 CentOS v6.3 32 位上运行 Apache v2.4.4(使用 PHP DSO)和 PHP v5.4.14。Apache 和 PHP 安装是从源代码编译的。

我没有使用--with-config-file-scan-dir=PATHPHP的配置选项。(并且不会使用,因为我将需要多个文件夹)。

环境变量PHPRC和 Apache 指令PHPIniDir与主要的 PHP 文件相关,这让我可以使用环境变量PHP_INI_SCAN_DIR。以下是我所做的步骤:

第 1 步,共 2 步 - PHP 设置

PHP_INI_SCAN_DIR作为操作系统环境变量需要在 Apache 启动之前设置。所以我将以下条目添加到我的/etc/profile.d/php.sh文件中。

PHP_INI_SCAN_DIR="/usr/local/lib/php/custom"
导出 PHP_INI_SCAN_DIR

然后重新启动了系统。

现在命令env | grep PHP,php -i | grep INI并php --ini给我以下输出。

=> # env | grep PHP

PHP_INI_SCAN_DIR=/usr/local/lib/php/custom

=> # php -i | grep INI

PHP_INI_SCAN_DIR …

php configuration apache-2.2

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

Apache mod deflate 不压缩 php 输出

我已经启动并运行了 mod_deflate。我可以在我的 apache 服务器中放入一个 something.txt 文件并使用 curl 来检查它。

curl --compressed -I /somefile.txt 给了我以下很好的压缩信息:

Vary: Accept-Encoding
Content-Encoding: gzip
Run Code Online (Sandbox Code Playgroud)

但是如果我使用 /some.php 我会回来:

Accept-Ranges: bytes
X-Powered-By: PHP/5.4.4-14+deb7u5
Run Code Online (Sandbox Code Playgroud)

但没有内容编码:gzip,我使用的 .htaccess 有多个选项:

SetOutPutFilter DEFLATE
Run Code Online (Sandbox Code Playgroud)

或者

AddOutputFilterByType DEFLATE application/json
Run Code Online (Sandbox Code Playgroud)

我还检查了 php.ini 中的 zlib 压缩是否关闭,并尝试将输出缓冲区设置为关闭。但无论我尝试什么,我都无法让 php 输出被 apache 压缩。从 apache 到 zip 的开销比我使用 php zlib 时少。

我看到了足够多的帖子,比如Apache 输出压缩适用于 CSS/JS 而不是 PHP,但可以从 php 压缩。我想要 apache 来处理它。

我一定在这里遗漏了一些愚蠢的东西。

更新:我解决了所有问题,也是因为给出的答案。最后它仍然没有100%起作用。这是由于安装了错误的软件包。使用了 apache2filter,这让我走错了路。

php mod-deflate apache-2.2

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

使用 php-fpm 的 nginx 下载 php 文件而不是在 mac os x(本地环境)上执行它们

我无法在本地开发机器上执行 PHP 文件。我似乎已经成功安装了nginx并且php-fpm似乎也已正确安装,并且正在运行,但无法弄清楚为什么 PHP 文件被下载而不是被执行。

在经历了很多很多小时的挫折之后,我认为最好问问以前可能做过这件事的人!我已尽力提供所有信息,但如果有任何可能有用或我遗漏的信息,请随时在评论中提问。

请注意:请仔细阅读我遇到的问题。我之所以这么说是因为我已经通读了几乎所有与 Google 可以提供给我的与此问题相关的文章,并尝试了几种不同的方法、修复、建议、重新安装、配置等。但每个人都无法提供帮助修复甚至调试我遇到的问题。换句话说,这绝对不是一个重复的问题。我花了几个小时阅读以确保!

我已经成功安装了nginx和php-fpm使用https://github.com/josegonzalez/homebrew-php. 好的 ol' trustybrew doctor确认一切都是最新的,我已经安装了所有必要的东西(XQuartz、Xcode 命令行工具等)。

以下是一些在尝试理解我的设置时可能有用的文件摘录:

php-fpm 日志

tail -f /usr/local/var/log/php-fpm.log

[24-Dec-2013 00:05:59] NOTICE: [pool www] 'user' directive is ignored when FPM is not running as root
[24-Dec-2013 00:05:59] NOTICE: [pool www] 'group' directive is ignored when FPM is not running as root
[24-Dec-2013 00:05:59] NOTICE: fpm is running, pid 31745 …
Run Code Online (Sandbox Code Playgroud)

php nginx mac-osx php-fpm

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