Articles of PHP

将PHP网站复制到IIS 8.5下的虚拟文件夹

我想使现有的PHP网站(Apache)在IIS 8.5下的虚拟文件夹上运行。 在一些不错的在线工具的帮助下,我翻译了下面的.htaccess内容: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> 到web.config: <rule name="rule 1" stopProcessing="true"> <match url="^index\.php$" /> <action type="Rewrite" url="/-" /> </rule> <rule name="rule 2" stopProcessing="true"> <match url="." /> <action type="Rewrite" url="//index.php" /> </rule> 这适用于某些url,如http://www.my_new_website.com/ 。 但是,我的目标是使本网站运行在ASP.NET Web应用程序下的虚拟目录中,例如http://www.my_asp_net_website/php_app/ 。 因此,我在IISpipe理器中创build了一个虚拟目录“php_app”,指向目录C:\ […]

减lessvServer上的inode使用率

在我的Linux vServer上,inode是有限制的(最大值是250k)。 我发现一个Yii2(PHP,MySQL,composer php)安装需要相当多的inode。 inode的数量大致是文件和目录的数量。 在当前目录及其子目录中使用的inode数量可以通过 find . -xdev -printf '%h\n' | sort | uniq -c | awk '{total = total + $1}END{print total}' 我的Yii2项目平均约3万个inode。 ./runtime或./web/images文件夹中./web/images文件./web/images 。 大部分inode都用在./vendor目录中。 所以Yii2项目的数量限制在8个,对我来说太低了。 我能做些什么来减lessYii2项目的inode使用率?

安装新版本的PHP,Apache下载PHP文件,而不是在浏览器中提供服务

我一直在使用apache2和php5在Mac OS X Yosemite上开发数月。 (注意我的webdirectory是〜/ Sites)。 最近,正在devise一些PHP脚本,并希望从命令行运行它们。 当我试图做到这一点,我得到这个错误: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php-5.6.6/lib/php/extensions/no-debug-zts-20131226/php_intl.dll' – dlopen(/usr/local/php-5.6.6/lib/php/extensions/no-debug-zts-20131226/php_intl.dll, 9): image not found in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library '/usr/local/php-5.6.6/lib/php/extensions/no-debug-zts-20131226/php_intl.dll' – dlopen(/usr/local/php-5.6.6/lib/php/extensions/no-debug-zts-20131226/php_intl.dll, 9): image not found in Unknown on line 0 PHP Warning: PHP Startup: Unable to […]

WordPress的更新失败 – 但为什么?

我目前正在使用WordPress的4.4我设置了后台更新,但是当我执行他们说:“出了点问题。 无法findWordPress根目录。 我设置我的FTP细节如下: define('FTP_HOST', 'mydomain.com'); define('FTP_USER', 'user'); define('FTP_PASS', 'passwort'); 当我在普通的ftp客户端使用这个login细节连接到这个服务器时,它工作正常。 我可以findwordpress目录。 我也无法启用debugging日志。 我设置 define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', true ); 但是在wp-content ,日志文件缺lessdebug.log 。 我认为这取决于文件权限: drwxrwxr– 6 myuser www-data 4096 Feb 27 16:13 wp-content 但是这些设置是正确的,因为我可以看到运行wordpress的web服务器在组www-data 。 > ps auxww|grep http www-data 3657 0.0 1.2 458240 52088 ? Sl 06:03 0:03 /usr/sbin/apache2 […]

PHP无法加载dynamic库的库

我一直试图让imagick在一个普通的灯服务器上工作。 我做了什么: sudo apt-get –purge remove "imagemagick" sudo apt-get –purge remove "php5-imagick*" service apache2 restart (lib not loaded anymore) sudo apt-get install imagemagick && php5-imagick sudo php5enmod imagick sudo service apache2 restart PHP信息告诉lib被加载,但是apache错误日志被垃圾邮件发送,每个请求都有以下内容: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20121212/imagick.so' – liblcms2.so.2: cannot open shared object file: No such file or directory […]

真的要销毁服务器上的所有PHP会话

我有一个运行在Linux服务器上的PHP Web应用程序。 它通过浏览器访问。 它使用PHP会话来存储用户的login状态和用户标识。 我需要注销所有用户。 我有root权限,并试图销毁所有PHP会话,迫使所有用户重新login。 我删除了/ tmp /中存储的所有sess_XXX文件,当我返回到webapp时,我仍然login,会话文件在/ tmp /中重新创build,而且我的所有详细信息都保持不变 – 使用与先前相同的值build议会话数据仍然存储在某个地方。 除了PHP会话文件caching用户数据之外,我没有“caching机制”。 我尝试更改PHP会话名称,然后删除会话文件,但我仍然login。检查sess_XXX文件即使在会话文件被删除后也显示相同的信息,然后通过再次访问Web中的应用程序重新创build浏览器。 此信息不存储在用户浏览器中,因此必须从会话中检索。 任何人都知道如何才能真正销毁会话并强制用户注销?

在Hostgator上使用PHPMailer(尝试login到SMTP服务器时超时)

解决 :问题是,通过hostgator使用服务,出于某种原因,用户必须使用主要dsn名称而不是SMTP域名login。 我正在使用简单的PHP mail()函数发送电子邮件,它工作正常,但它不需要login到SMPT服务器。 当我移动到PHPMailer库时,我编写了这个代码来发送电子邮件,但是当尝试执行此login时,我有超时。 根据hostgator的信息,SMTP服务器(使用SSL / TSL)在端口465 。 所以我写道: $mail = new PHPMailer; $mail->SMTPDebug = 3; $mail->isSMTP(); // Set mailer to use SMTP $mail->Host = 'mail.mydomain.com'; // Specify main and backup SMTP servers $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = '[email protected]'; // SMTP username $mail->Password = 'pass'; // SMTP password $mail->SMTPSecure = […]

即使只有一个用户,Apache也使用100%的CPU

即使只有一个用户,Apache也使用100%的CPU 每当有人在我们的bug跟踪器中search错误,或者只是重新加载search结果页面或者对结果进行sorting,Apache(或者我应该通过Apache来说PHP吗?)使用100%CPU几秒钟。 这会导致非常缓慢的页面加载。 即使我从服务器机器本身访问我们的bug跟踪器,也会发生这种情况。 我的问题是什么似乎是这里的瓶颈(Apacheconfiguration,PHPconfiguration,MySQLconfiguration,caching,PHP模块或其他?),我应该怎么做才能解决它? 我们正在使用的软件(几个月前下载,之后没有更新): Kubuntu:14.04.3 LTS PHP:5.5.9(我猜是运行Apache apache mod?CGI?似乎不是fastCGI) apache2:2.4.7(PREFORK) mysql:5.5.44 Bug Genie(bug跟踪软件):4.1.0 这是Firebug的图像。 “POST分页”是一个重要的,它需要1秒接收4.0M,但它必须等待7秒才能收到。 这是“POST分页”标题的图像。 就像服务器一样,它是这样做的。 看来“分页”的请求需要7-8秒来处理。 第一波是当我search和显示约250个问题(“分页”),第二个是当我采取一个小动作就像去一个问题页面。 你可以看到,即使是小的行动占用CPU。 我不知道为什么使用这么多的内存(1.6G的2.0G),即使我不访问错误跟踪器,但无论如何,空闲内存似乎已经足够了。 似乎并不存在I / O问题(“%iowait”低,有时候“await”可能比“svctm”更大) 而且似乎没有太多的交换。 这是我们的设置(可能对我的猜测重要的部分)。 Apache2.conf(不使用httpd.conf) ServerName localhost Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5 HostnameLookups Off <Directory /var/www/html/bugs2/> Options Indexes MultiViews AllowOverride All Order allow,deny Allow from all </Directory> AccessFileName […]

Nginx重写删除.php文件没有效果,只能redirect到主页

我试图重写从我的url中删除.php,但迄今没有运气。 这是我到目前为止,然后我的结果下面的这个configuration。 location ~ \.php$ { try_files $uri/ @extensionless-php; include fastcgi_params; fastcgi_pass hhvm; fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_cache; fastcgi_cache ASPS; fastcgi_cache_valid 200 60m; } location @extensionless-php { rewrite ^(.*)$ /$1.php last; } 这导致: example.com/page1.php转到example.com/page1.php并正确渲染example.com/page1渲染index.php example.com/page1/渲染index.php 有没有人遇到过这个? 这似乎是一个非常普遍的事情,但我有几个小时的麻烦,并无休止地在网上search。 谢谢你的帮助!

httpd每xx秒处理cpu达到100%+

我的第一篇文章,不幸的是由于我的专用(Linux Centos 6)服务器上运行一些个人和一个商业网站的问题。 Server version: Apache/2.4.18 (Unix) Server built: Mar 7 2016 20:22:35 Cpanel::Easy::Apache v3.32.10 rev9999 root@server213-171-196-40 [~]# free total used free shared buffers cached Mem: 16212880 15939912 272968 1939060 65928 13730952 -/+ buffers/cache: 2143032 14069848 Swap: 4194296 1477616 2716680 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND [b] 2900 nobody […]