Articles of PHP

如何获取上次使用的./configure参数?

我正在升级客户服务器上的LAMP堆栈,并且需要使用./configure mysql和apache来确定上次编译的最后一个设置。 我在哪里得到这些? PHPconfigurationstring可以通过php -i获取。 那么别人呢?

如何在CentOS 5.7 64位上安装mcrypt for PHP 5.3.3?

我安装了PHP 5.3和一些模块使用 yum install php53-{module-name} 但是mcrypt没有工作。 我像这样search: yum list php* | grep mcry 唯一包装出来了 php-mcrypt.x86-64 5.1.6-15.e15.centos.1 extras 我有与mhash完全相同的问题。 php的结果更令人困惑。 我知道这可能是一个愚蠢的问题,但任何帮助将不胜感激。 我习惯了Ubuntu的简单“apt-get install”,一切正常。 CentOS似乎更加注重细节。 谢谢。 编辑:这是我试过的: yum install php53-mcrypt 结果: No package php53-mcrypt available 试试这个: yum install php-mcrypt 结果是: Error: php53-common conflicts with php-common 因为php-mcrypt试图获得php-common作为依赖(?),我正在尝试在CentOS 5.7上使用php 5.3而不是默认的php 5.1。

将来自www-data的Postfix中的默认地址更改为其他内容

在Ubuntu服务器上设置Postfix和Apache / PHP。 邮件现在出去确定正确的域名,但本地部分显示名称始终是“万维网数据”,因为我假设Postfix默认使用用户的名称。 在php.ini文件中,我能够将sendmail_path更改为sendmail_path = "/usr/sbin/sendmail -t -i -f [email protected]"但电子邮件显示名仍然显示为www-data。 我试图用几种不同的方式指定显示名称,但是被忽略,邮件仍然以www数据的forms出现。 我希望能够做的是默认情况下,有任何邮件丢失,返回path等头作为"Example Support" <[email protected]>出去,但我不知道如果这是可能的。

在Apache中启用gzip压缩时,不会发送Content-Length?

我真的很感谢一些帮助理解这个Apache的行为。 我正在通过application / json中的iPhone Objective-C应用程序与PHP进行通信。 Gzip压缩在服务器上启用,并由客户端请求。 从我的.htaccess: AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php application/json 对于小的请求,Apache正在设置“Content-Length”标题。 例如(这些值是从头中的Objective-C中输出的): Connection = "Keep-Alive"; "Content-Encoding" = gzip; "Content-Length" = 185; <————- "Content-Type" = "application/json"; Date = "Wed, 22 Sep 2010 12:20:27 GMT"; "Keep-Alive" = "timeout=3, max=149"; Server = Apache; Vary = "Accept-Encoding"; "X-Powered-By" = "PHP/5.2.13"; "X-Uncompressed-Content-Length" = 217; X-Uncompressed-Content-Length是我添加的一个头文件,设置为未压缩的JSONstring的大小。 正如你所看到的,这个请求非常小(217字节)。 […]

Apache .htaccess <ifModule不允许在这里

在Ubuntu精确运行Apache,使用PHP 5.5 试图访问我的var/www/给我一个500。 /var/log/apache2/error.log 说明: / var/www/web/.htaccess: <IfModule not allowed here 我的.htacess是: DirectoryIndex app.php <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ RewriteRule ^(.*) – [E=BASE:%1] RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L] RewriteCond %{REQUEST_FILENAME} -f RewriteRule .? – [L] RewriteRule .? %{ENV:BASE}/app.php [L] </IfModule> <IfModule !mod_rewrite.c> <IfModule mod_alias.c> RedirectMatch 302 ^/$ /app.php/ </IfModule> </IfModule> 进入我的apache.conf我补充说: […]

如何在PHP中安装GD库?

当我试图在PHP中使用imagefromjpeg()函数时,它会引发错误。因此,我尝试使用以下命令来安装GD库: sudo apt-get install php5-gd 但是我得到了以下错误。 php5-gd : Depends: php5-common (= 5.5.9+dfsg-1ubuntu4) but 5.5.10+dfsg-1+deb.sury.org~saucy+1 is to be installed E: Unable to correct problems, you have held broken packages. 我正在使用Ubuntu 14.04LTS。 我最近从Ubuntu 13.10升级我的操作系统。 如何克服这个错误? dpkg -l|grep php的输出是: ii cakephp 1.3.15-1 all MVC rapid application development framework for PHP ii cakephp-scripts 1.3.15-1 all MVC rapid application development […]

改善我们的部署策略

我们有一个在我们公司开发的电子商务应用程序。 它是一个合理的标准的LAMP应用程序,我们已经开发了大约3年。 我们在testing领域开发应用程序,在这里我们添加新的function和修复错误等。我们的错误跟踪和function开发全部在托pipe的颠覆解决scheme(unfuddle.com)内进行pipe理。 当错误被报告时,我们在testing域上做了这些修复,然后当我们很高兴错误已经修复时,将修改提交给svn。 我们按照相同的程序添加新的function。 值得指出的是我们的服务器系统和应用程序的总体架构。 每次开发新function时,我们都会使用我们的应用程序(始终是我们控制的服务器)将此更新推出到所有站点。 使用我们的系统的每个站点实际上使用95%的代码库完全相同的文件。 我们在每个站点内有几个文件夹,其中包含定制到该站点的文件–css文件/图像等。除此之外,每个站点之间的差异由每个站点数据库中的各种configuration设置定义。 这将开始实际部署本身。 当我们准备推出某种更新时,我们会在testing站点所在的服务器上运行一个命令。 这将执行复制命令(cp -fru / testsite / / othersite /),并通过每个基于修改date更新文件的vhost force。 我们托pipe的每个附加服务器都有一个虚拟主机,用于同步生产代码库,然后我们在该服务器上的所有站点上重复复制过程。 在这个过程中,我们移出不想被覆盖的文件,在完成复制时将其移回。 我们的推出脚本执行一些其他function,如应用SQL命令来改变每个数据库,添加字段/新表等。 我们越来越担心我们的过程不够稳定,不容错过,也是一种暴力方法。 我们也意识到,我们并没有充分利用颠覆,因为我们有一个职位,即在不使用分支或标签的情况下,开发新function将阻止我们推出重要的错误修复。 这似乎也是错误的,我们有这么多的文件复制我们的服务器。 我们也无法轻松地对我们刚推出的产品进行回滚。 我们在每次推出之前都会执行diff操作,以便我们可以获得将要更改的文件列表,以便我们知道之后发生了什么变化,但是回滚过程仍然存在问题。 就数据库而言,我已经开始关注dbdeploy作为一个潜在的解决scheme。 但是,我们真正想要的是关于如何改进文件pipe理和部署的一般性指导。 理想情况下,我们希望文件pipe理更紧密地连接到我们的存储库,所以卷展/回滚将更多地连接到SVN。 就像使用导出命令来确保站点文件与回购文件一样。 如果解决scheme也可能会停止我们的服务器周围的文件复制,这也是一件好事。 忽视我们目前的方法,听听其他人如何解决同样的问题真的很好。 总结… 使多个服务器上的文件保持与svn同步的最佳方式是什么? 我们应该如何防止文件复制? 符号链接/别的东西? 我们应该如何构build我们的回购,以便开发新function并修复旧function? 我们应该如何触发推出/回滚? 提前致谢 编辑: 我最近读了很多关于使用Phing和Capistrano完成这些任务的好东西。 任何人都可以提供更多关于他们的信息,他们对于这样的任务有多好?

build立一个安全的本地托pipe的Linux机箱的A到Z.

我正在重新安装操作系统在一台机器上,将被用来为我们的业务主持几个应用程序。 申请将只在本地; 来自外部客户端的访问将仅通过VPN。 之前的设置对于大部分pipe理员都使用了托pipe控制面板(Plesk),而我正在考虑使用另一个类似的软件来重新安装 – 但我想我应该终于学习如何工作。 我可以做的大部分软件会为我做的事情,但我不清楚这一切的共生。 如果可能的话,这些都是为了进一步将自己从configuration程序员/程序员的土地上解放出来。 我找不到任何地方的完整演练,所以我想我会提出这个问题,如果人们可以帮助我的方式,我将编辑这个答案,并logging我的进展/陷阱。 希望有一天这会帮助某个人。 细节: CentOS 5.5 x86_64 httpd:Apache / 2.2.3 MySQL:5.0.77(待升级) PHP:5.1(待升级) 要求: 安全!! 安全的文件传输 安全的客户端访问(SSL证书和CA) 安全的数据存储 安全连接到另一台本地机器(MySQL) 虚拟主机/多个子域名 本地电子邮件会很好,但不是关键 步骤: 下载最新的CentOS DVD-iso (torrent对我很好)。 安装CentOS: 在进行安装时,我检查了服务器组件选项,认为我将使用另一个Plesk-likepipe理员。 事后看来,考虑到我决定尝试走自己的路,这可能不是最好的主意。 基本configuration: 设置用户,networking/ IP地址等百胜升级/升级。 升级PHP / MySQL: 为了将PHP和MySQL升级到最新版本,我必须在CentOS之外寻找另一个回购。 IUS看起来不错,我很高兴我find了! 将IUS存储库添加到我们的包pipe理器 cd /tmp wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/epel-release-1-1.ius.el5.noarch.rpm rpm -Uvh epel-release-1-1.ius.el5.noarch.rpm wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/ius-release-1-4.ius.el5.noarch.rpm rpm -Uvh ius-release-1-4.ius.el5.noarch.rpm […]

Apache MPMs – 工人vs Prefork

我试图找出哪些是我可以安装在我的VPS上的最好的Apache MPM。 我看到了一些基准,MPM Worker似乎比Prefork更好,但出于某种原因,似乎每个人似乎都推荐了Prefork for Worker来安装PHP。 这只是因为一些PHP函数不是线程安全的? 想起来只有setlocale() ,但是我将在每个实例上使用相同的语言环境,所以我不认为这会是一个问题。 我的VPS有一点记忆,我觉得工人MPM会更适合我的需求,但是我不确定。 有人可以帮我下定决心吗? 谢谢! PS:我也看过nginx和lighttpd。 nginx看起来很棒,但我试图避免从源代码编译,我仍然不明白什么是PHP-FPM。 关于lighttpd – 使用它设置PHP / FCGI令人难以置信,但我听说它有内存泄漏。 这是真的吗?

如何在Linux系统上安装PECL

在http://pecl.php.net/有PECL扩展的下载部分。但是我没有得到PECL *本身**的安装步骤。 以下命令不起作用 – yum intall pecl 在我的系统中,我安装了PECL,所以我可以像这样安装PECL扩展 – pecl install mailparse 但是,在运行pecl命令不能识别的系统中,如何在Fedora 7系统(旧系统)上首先安装PECL。