Articles of PHP

除php-mysql以外的所有模块都安装在phpinfo中

我执行了各种yum安装命令并安装了所有的软件包。 [root@myip php.d]# rpm -qa | grep -i mysql mysql-server-5.1.69-1.el6_4.x86_64 mysql-libs-5.1.69-1.el6_4.x86_64 perl-DBD-MySQL-4.013-3.el6.x86_64 mysql-devel-5.1.69-1.el6_4.x86_64 mysql-5.1.69-1.el6_4.x86_64 php-mysql-5.3.3-22.el6.x86_64 但在phpinfo我可以看到所有的扩展名,如mssql,pgsql,mongo等,但不是mysql 我该怎么办 PHP pacakges php-common-5.3.3-22.el6.x86_64 php-pdo-5.3.3-22.el6.x86_64 php-pgsql-5.3.3-22.el6.x86_64 php-pecl-imagick-2.2.2-4.el6.x86_64 php-zts-5.3.3-22.el6.x86_64 php-process-5.3.3-22.el6.x86_64 php-ldap-5.3.3-22.el6.x86_64 php-suhosin-0.9.29-2.el6.x86_64 php-enchant-5.3.3-22.el6.x86_64 php-fpm-5.3.3-22.el6.x86_64 php-cli-5.3.3-22.el6.x86_64 php-pear-1.9.4-4.el6.noarch php-odbc-5.3.3-22.el6.x86_64 php-pecl-memcached-1.0.0-1.el6.x86_64 php-pecl-xdebug-2.1.4-1.el6.x86_64 php-pecl-geoip-1.0.8-3.el6.x86_64 php-pecl-memcache-3.0.5-4.el6.x86_64 php-embedded-5.3.3-22.el6.x86_64 php-soap-5.3.3-22.el6.x86_64 php-snmp-5.3.3-22.el6.x86_64 php-bcmath-5.3.3-22.el6.x86_64 php-mbstring-5.3.3-22.el6.x86_64 php-imap-5.3.3-22.el6.x86_64 php-xmlrpc-5.3.3-22.el6.x86_64 php-gd-5.3.3-22.el6.x86_64 php-xml-5.3.3-22.el6.x86_64 php-recode-5.3.3-22.el6.x86_64 php-5.3.3-22.el6.x86_64 php-mssql-5.3.3-1.el6.x86_64 php-pecl-apc-3.1.9-2.el6.x86_64 php-pecl-mongo-1.4.0-1.el6.x86_64 php-tidy-5.3.3-22.el6.x86_64 php-mcrypt-5.3.3-1.el6.x86_64 php-dba-5.3.3-22.el6.x86_64 php-intl-5.3.3-22.el6.x86_64 php-pspell-5.3.3-22.el6.x86_64 […]

在Ubuntu上安装APC

所以我有我的服务器运行与lampp(xampp for linux)的Ubuntu运行。 我想实现一个file upload进度条,所以我正在尝试安装APC。 (请不要build议替代插件)我尝试了多个教程,但我最终使用的方式是运行apt-get install php-apc这工作正常,在安装过程中没有错误,但后来我试图在PHP中运行此命令: apc_fetch($somevar); 最终失败的是: Fatal error: Call to undefined function apc_fetch() 在我的php.ini文件中,我把apc.rfc1867 = On; 。 我也尝试过extension=apc.so ,但是这会导致内部服务器错误。 其他我尝试的是: apc.enabled = 1 apc.shm_size = 32 apc.rfc1867 = 1 他们都没有工作,希望你能帮助我:)

改变Php的处理程序名称

在我的apache服务器上,我想同时运行多个版本的PHP,以便根据项目的需要轻松切换它们。 我注意到一些提供多个版本的PHP的共享托pipe提供者需要你在.htaccess定义你需要的PHP版本: AddHandler application/x-httpd-php5 .php 我想在我的服务器上实现这样的事情,以便我可以轻松切换PHP版本: AddHandler application/xhttpd-php53 .php # .. or .. AddHandler application/xhttpd-php54 .php # .. or .. AddHandler application/xhttpd-php55 .php 不过,我编译的所有PHP版本都有一个名为application/xhttpd-php或php5-script的处理application/xhttpd-php 。 我试图search一个./configure标志,允许您更改这些处理程序名称,但没有出现。 我search了PHP的github回购这两个 string ,这就是我发现: /sapi/apache2filter/sapi_apache2.c 行 ) /sapi/apache2handler/sapi_apache2.c 行 ) /main/php.h 行 ) /sapi/apache/mod_php5.c 行 ) /sapi/apache_hooks/mod_php5.c 行 ) 用新的处理程序名称和版本号replace这些string是否安全,还是有更广泛的使用(实际logging的ora)方法来更改处理程序名称?

本地服务器 – Apache将所有请求redirect到/index.php

我在我的本地服务器上有一个奇怪的redirect问题。 我有一个VirtualHost设置: NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot "/Users/iMac/Sites/index.php" ServerName jordan.local ErrorLog "/private/var/log/apache2/jordan.local-error_log" CustomLog "/private/var/log/apache2/jordan.local-access_log" common <Directory "/Users/iMac/Sites/index.php"> AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> 访问http://jordan.local工作正常。 但是,当我尝试访问一个子目录jordan.local/somefolder/index.php ,显示的页面是jordan.local/index.php 。 我没有一个.htaccess文件,并重新启动了无数次的Apache。 Apache版本:2.2.22(Unix) Mac OS X 10.7.5 这是我的主机文件,如果有任何帮助: 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost fe80::1%lo0 localhost #74.208.10.249 gs.apple.com 127.0.0.1 jordan.local 我访问的所有本地URL(不存在)都显示在我的自定义访问日志中,作为200响应代码。 我的Apache错误日志给出这个警告: Warning: DocumentRoot [/Users/iMac/Sites/index.php] does […]

在Windows服务器清单上的PHP上传系统

我有一个上传系统在PHP中,我想要它上传大文件,有些可能会达到200MB。 这意味着它不仅会占用大量带宽,服务器内存空间,而且还会花费大量的时间来上传这些文件。 现在我有一个系统工作,但似乎失败时,试图上传一个大文件。 我已经testing了一个22MB的文件,它的作用就像一个魅力,无论是谁,当我把这个文件大约89.4mb失败,它经历了整个上传过程,但是当它试图发布文件它给了我一个错误。 不,我已经在php.ini文件中更改了一些设置: 的upload_max_filesize 的post_max_size max_input_time设置 的max_execution_time memory_limit的 然后我意识到,我的IIS服务器有一个执行时间限制设置,这是在约2分钟,所以我做了这个约30(注意在testing我上传的80.4mb文件大约23分钟左右)。 我得到的错误是“404 – 文件或目录未find”。 这很奇怪,因为对于较小的文件不这样做。 我能想到的唯一的事情是,有一个设置在我的Windows服务器,正在停止我的系统从临时文件移动这样的大文件到正确的目录….或者也许临时文件无法处理这样的文件尺寸? 所以,我想知道是否有人可以写一个需要更新的设置的清单,以便像这样上传大文件,因为我几乎在那里,这只是阻止我。 提前致谢。

从php53升级到php53u(epel到IUS存储库) – Centos 6.4

我想把我的CentOS 6.4服务器从php53(epel repository)升级到php53u(ius repository)。 我已经启用了ius版本库,但是因为在服务器上有生产网站,所以我只是犹豫不决。 (因为生产站点在Drupal 7中,我想要保持在5.3的轨道上,但是我也想安装一个Drupal 8开发站点,这个站点最less需要5.3.10 – epel只给我5.3.3) 有谁能给我一个暗示什么是最安全的方法: 删除php53(epel)并安装php53u 只需安装php53u,看看会发生什么 你的其他build议 几分钟的停机时间是可以接受的,但不是更多。

使用.htaccess删除php扩展不起作用

我在我的网站elixnews.com上使用以下代码从以下位置删除php扩展: RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^\.]+)$ $1.php [NC,L] 要从我的链接中删除www和php扩展,但它不起作用: http : //elixnews.com/todays_news – 怎么了?

PHP错误fsockopen()

当我们点击我们的网站创build一个帐户或从我们的网站的现有帐户发送电子邮件时,我们得到以下错误。 **PHP Error** **Description** fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known **Source File** /var/www/html/protected/components/Email.php(1690) 01678: * @param string 01679: * @return string 01680: */ 01681: protected function _smtp_connect() 01682: { 01683: $ssl = NULL; 01684: if ($this->smtp_crypto == 'ssl') 01685: $ssl = 'ssl://'; 01686: $this->_smtp_connect = fsockopen($ssl.$this->smtp_host, 01687: $this->smtp_port, 01688: $errno, 01689: $errstr, […]

当memory_limit设置为-1时,PHP如何引发“内存限制耗尽”?

最近,我从命令行执行一个PHP脚本时收到一条错误消息: PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 40961 bytes) php -i | grep memory php -i | grep memory显示: memory_limit => -1 => -1 suhosin.memory_limit => 0 => 0 哪一个应该没有限制呢? 服务器运行PHP 5.3.3-7+squeeze16 with Suhosin-Patch (v0.9.32.1) (cli) 怎么会这样?

全球和每个用户php.ini

在我的服务器上(lighttpd + php-cgi),我有几个php-cgi进程,每个进程都以它所服务的站点的用户身份运行。 我知道我可以通过PHPRC环境variables为每个进程设置一个php.ini。 不幸的是,这导致PHP 只能读取该php.ini文件。 我想有一个php.ini文件的所有进程和覆盖每个进程。 基本上我想实现的是除了open_basedir(因为它应该是用户的web目录)和upload_tmp_dir(因为用户有写权限),所有的进程共享configuration。 我应该如何解决这个问题? 我需要提供更多的细节吗?