我使用Apache 2.2.15在rhel 6.2上运行php 5.3.3,并且没有得到Apache解释的PHP代码。 没有错误(在系统日志中,httpd / error_log或php_errors.log) – 我在php.ini中启用了错误报告: error_reporting = E_ALL & ~E_DEPRECATED display_errors = On log_errors = On error_log = /var/log/php_errors.log 然而,当我直接从我的浏览器(例如myserver.com/index.php)查看包含以下代码的index.php时,没有任何东西显示,只是一个白屏: <?php echo 'Hello php World'; ?> 当通过命令行php执行时,我得到期望的文本输出到terminal(“ Hello php World ”)。 什么时候,我添加一些HTML到index.php中,如下所示: <html> <p>Hello from within html</p> <?php echo 'Hello php World'; ?> </html> 并用我的浏览器查看它,它只返回“ Hello from within html 。 但是,从命令行执行时,我得到: […]
我们使用capistrano进行网站部署,我们的Apache文档根目录是特定代码版本的符号链接。 部署过程将符号链接从旧版本切换到新版本,作为部署的最后一步。 我们正在将我们的Web服务器从运行RHEL 5.6的真实服务器迁移到运行Ubuntu 11.10的Amazon EC2虚拟机,并且新服务器遇到了一个问题:Apache在切换符号链接时没有立即注意到文档根目录的变化。 这可能需要一秒左右( 我想我已经看了几分钟 )。 这有点像Apachecaching了符号链接的物理path一段时间。 有谁知道一些Apache设置,我可以看看它来“扫描”更快的服务文件的变化。 思考: 我读了虚拟机上的磁盘速度慢得多(因为它们是networking连接存储)。 也许文件系统caching不知何故工作呢? 如果是的话,有什么可以做的吗? 该网站运行PHP代码。 也许RHEL和Ubuntu之间有一些PHPconfiguration的区别? 我检查了realpath_cache_ttl但两台服务器都注释掉了: 例如 ; Duration of time, in seconds for which to cache realpath information for a given ; file or directory. For systems with rarely changing files, consider increasing this ; value. ; http://www.php.net/manual/en/ini.core.php#ini.realpath-cache-ttl ;realpath_cache_ttl = 120 我们确实使用APC操作码caching但不认为这是由于实验的问题。 […]
WordPress的.htaccess通常有以下重写规则: # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> 当我在我的网站上访问一个不存在的URL时,这个重写规则被打到,redirect到index.php ,并提供我自定义的404.php模板文件。 返回给客户端的状态码是正确的404,如下面的HTTP Live Headers输出示例所示: http://www.borngeek.com/nothere/ GET /nothere/ HTTP/1.1 Host: www.borngeek.com {…} HTTP/1.1 404 Not Found 但是,Apache在我的服务器日志中用200个状态代码报告整个交换,如日志代码片段所示(为简单起见而修剪): {…} "GET /nothere/ HTTP/1.1" 200 2155 "-" {…} 这对我来说是有道理的,因为原来的请求被redirect到存在的页面(index.php)。 有没有办法强制Apache将404交换报告? 我的问题是来自坏人的虚假请求在我使用的各种服务器统计软件(AWStats,Analog等)中显示为“成功请求”。 我很乐意让他们在404上出现在404上,这样他们就可以从生成的统计报告中过滤出来。 我尝试添加下面的行到我的.htaccess,但它没有任何效果(我猜和原来的redirect规则相同的原因): ErrorDocument 404 /index.php?error=404 有没有人有一个聪明的方法来解决这个烦恼? […]
我怎样才能在XAMPP的命令行界面的背景下同时运行几十个PHP脚本? 有人build议一个batch file,但是当我尝试执行这个: start php 1.php start php 2.php start php 3.php 它只打开了一个命令提示符窗口; 我closures了那个窗口,然后再打开两个命令提示符窗口执行2.php和3.php。 我想在所有背景中同时运行尽可能多的脚本。 什么是最好的办法来完成这个,怎么办呢? 编辑这里是如何做到这一点: 1)从这里下载PowerShell 2(或与您的Windows版本兼容的版本): http : //support.microsoft.com/kb/968929 2)安装并重新启动计算机。 3)创build一个新的文件“example.ps1”并保存到你select的目录(例如c:\ examples \ example.ps1)。 把这个代码放在这个文件中: start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\1.php} start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\2.php} start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\3.php} start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\4.php} start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\5.php} start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\6.php} start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\7.php} start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\8.php} start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\9.php} […]
我的phpinfo.php没有显示额外的PHPconfiguration文件的额外文件夹。 我在CentOS v6.3 32位上运行Apache v2.4.4(使用PHP DSO)和PHP v5.4.14。 Apache和PHP安装是从源代码编译的。 我没有使用PHP的configuration选项“–with-config-file-scan-dir = PATH”。 (而不会使用,因为我将需要多个文件夹)。 环境variablesPHPRC和Apache指令PHPIniDir与主PHP文件相关,这使我得到了环境variables'PHP_INI_SCAN_DIR'来处理。 以下是我所做的步骤: 第1步 – PHP的设置 在Apache启动之前,需要设置作为OS环境variables的“PHP_INI_SCAN_DIR”。 所以我将以下条目添加到我的/etc/profile.d/php.sh文件中。 PHP_INI_SCAN_DIR = “在/ usr / local / lib目录/ PHP /自定义” 导出PHP_INI_SCAN_DIR 然后重新启动系统。 现在命令的env | grep PHP','php -i | grep INI'和'php –ini'给了我下面的输出。 =>#env | grep PHP PHP_INI_SCAN_DIR =在/ usr / local / lib目录/ PHP /自定义 =>#php -i […]
在我的Ubuntu 12.10服务器上,我升级了PHP到5.5。 在我的wordpress网站得到502错误之后,我做了一些Googlesearch,发现我需要改变我的nginxconfiguration,以匹配php脚本传递到php5-fpm.sock而不是端口9000.所以我改变了我的网站的configuration文件到下面: # Pass PHP scripts on to PHP-FPM location ~* \.php$ { try_files $uri /index.php; fastcgi_index index.php; fastcgi_pass unix:/var/run/php5-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_buffer_size 16k; fastcgi_buffers 4 16k; } 然后我service nginx restart 。 但502错误仍然存在。 在检查错误日志时,我得到: 2014/03/30 14:16:37 [error] 1451#0: *21 connect() failed (111: Connection refused) while connecting to upstream, […]
我有一些PHP脚本,它返回内容types为“image / jpeg”的jpeg图像(1×1像素): // return image $image_name = 'img/pixel.jpg'; $image = fopen($image_name, 'rb'); header('Content-Length: ' . filesize($image_name)); header('Content-Type: image/jpeg'); fpassthru($image); 这个脚本在php5-fpm模块上运行在nginx / 1.2.1上。 问题是,匹配“ location〜\ .php $ ”请求的所有响应都有Content-Type头文件“ text / html; charset = UTF-8 ”,忽略我的php函数头('Content-Type:image / jpeg') 。 因此,我得到了与“文本/ HTML”内容types的JPEG图片。 以下是我的虚拟主机的简化configuration: server { listen 80; server_name localhost default_server; set $main_host "localhost"; root /var/www/$main_host/www; location / […]
我试图在命令行上使用yum install php-mysqlnd.x86_64在CentOS机器上安装mysqli ,但是我不断收到消息: Error: php55w-common conflicts with php-common-5.4.16-36.el7_1.x86_64 You could try using –skip-broken to work around the problem You could try running: rpm -Va –nofiles –nodigest build议的解决方法都不能解决问题。 以下是我尝试安装时显示的全文: sudo yum install php-mysqlnd.x86_64 Loaded plugins: fastestmirror, replace Loading mirror speeds from cached hostfile * base: mirror.acsnet.com * extras: mirrors.chkhosting.com * rpmforge: mirror.webnx.com * updates: mirror.netdepot.com […]
我想连接到放置在远程服务器上的sql server数据库,而我的php代码已经安装在Ubuntu服务器上。 我发现它需要在连接之前安装sqlsrv驱动程序或mssql驱动程序。 我如何在高级安装需求?
我的networking服务器上的opcache不断触及我设定的限制,即使我觉得我没有太多的PHP代码,它应该是足够的空间。 即使在清除opcache时,也会立即显示超过2/3的可用空间被填充。 从现在起的例子: 运行opcache_reset()之前的phpinfo片段: Used memory 122958472 Free memory 5552 刚刚运行opcache_reset()后的phpinfo片段: Used memory 90691312 Free memory 43526416 我知道在PHP7中,opcache(显然)备份到磁盘,所以也许东西正在自动重新加载? 但是这似乎打破了重置opcache的目的,我不知道在哪里在磁盘上的opcache备份,所以我不能检查。 我在nginx上运行PHP-FPM,vesion 7.0.15-0ubuntu0.16.04.4是精确的。