这与这篇 Stack Overflow 帖子有关:
glob() 在 Windows 上找不到多字节字符的文件名?
我在使用 PHP 和 Windows 上具有多字节字符的文件时遇到问题。这是我的测试用例:
print_r(scandir('./uploads/'));
print_r(glob('./uploads/*'));
Run Code Online (Sandbox Code Playgroud)
远程 UNIX 服务器上的正确输出:
Array
(
[0] => .
[1] => ..
[2] => filename-äöü.jpg
[3] => filename.jpg
[4] => test?test.jpg
[5] => ??? ?????.jpg
[6] => ?????????.jpg
[7] => ???.jpg
)
Array
(
[0] => ./uploads/filename-äöü.jpg
[1] => ./uploads/filename.jpg
[2] => ./uploads/test?test.jpg
[3] => ./uploads/??? ?????.jpg
[4] => ./uploads/?????????.jpg
[5] => ./uploads/???.jpg
)
Run Code Online (Sandbox Code Playgroud)
Windows 本地输出不正确:
Array
(
[0] => .
[1] …Run Code Online (Sandbox Code Playgroud) 我正在尝试运行 PHP 5.4.1(从源代码编译)但是当我尝试在 mysql 上连接时,我得到:
Warning: mysql_connect(): The server requested authentication method unknown to the client [mysql_old_password] in
Run Code Online (Sandbox Code Playgroud)
当使用 PHP 5.3/5.2 时,它可以正常工作。关于导致此问题的原因的任何想法?
可以使用特定位置的速率限制来限制速度。
但是,我们如何动态地做到这一点?
假设您有付费用户与非付费用户,并且您想为付费用户提供更高的带宽。
我们需要动态地检查数据库并为这个特定的用户组提供一定的速度。
你有什么 nginx 模块吗?
# cat /etc/redhat-release
CentOS release 6.3 (Final)
# php -v
PHP 5.3.3
# yum update php
No Packages marked for Update
Run Code Online (Sandbox Code Playgroud)
如何升级到最新版本的PHP 5.4.10(当前稳定)?
我正在处理多虚拟主机环境。我已经为 Mysql 远程控制安装了 PhpMyadmin。
环境配置如下:
one.domain.com
two.domain.com
onlyphpmyadmin.domain.com
Run Code Online (Sandbox Code Playgroud)
现在,如果我访问三个域之一
http://one.domain.com/phpmyadmin/
http://two.domein.com/phpmyadmin/
http://onlyphpmyadmin.domain.com/phpmyadmin/
Run Code Online (Sandbox Code Playgroud)
结果是一样的,允许访问phpmyadmin。
目标是获得如下所示的情况
http://one.domain.com/phpmyadmin/ --> access denied
http://two.domein.com/phpmyadmin/ --> access denied
http://onlyphpmyadmin.domain.com/phpmyadmin/ -->access allowed
Run Code Online (Sandbox Code Playgroud)
没有类似于
<?php
if($_SERVER['HTTP_HOST'] != 'onlyphpmyadmin.domain.com')
die('access denied');
...
?>
Run Code Online (Sandbox Code Playgroud)
在一些 phpmyadmin 文件上。
这是我的 phpmyadmin 配置文件
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_admin_flag allow_url_fopen Off
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/
</IfModule>
</Directory>
# Authorize for …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 DAViCal 设置 nginx。但是,我在日志中收到一个“文件未找到”,其中包含“FastCGI sent in stderr:”Primary script unknown”。看起来我的别名有问题,但我确实想不通。
我的虚拟主机:
server {
listen 80; ## listen for ipv4; this line is default and implied
listen [::]:80 default_server ipv6only=on; ## listen for ipv6
root /var/www-data;
index index.html index.htm index.shtml index.php;
# Make site accessible from http://localhost/
server_name just.a.server;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.html;
ssi on;
# Uncomment to enable naxsi …Run Code Online (Sandbox Code Playgroud) 我正在运行一个 PHP 程序,只要它不被 Microsoft Internet Explorer 浏览器调用,它就可以正常工作,之后它会生成以下进程,锁定 Apache 2 并需要重新启动 Web 服务器(在 Ubuntu 12.04 LTS 上)。
bob@drools:/etc/php5/apache2# ps auxwww | grep apache2
root 8737 0.1 2.5 369164 25800 ? Ssl 12:41 0:00 /usr/sbin/apache2 -k start
www-data 8743 0.0 3.2 393748 33268 ? Sl 12:41 0:00 /usr/sbin/apache2 -k start
www-data 8755 0.1 3.3 393856 33904 ? Sl 12:41 0:00 /usr/sbin/apache2 -k start
www-data 8779 0.1 3.2 393724 33252 ? Sl 12:45 0:00 /usr/sbin/apache2 -k start
www-data 8782 0.1 3.2 393716 33236 …Run Code Online (Sandbox Code Playgroud) 我有一个 Postfix / Dovecot / Roundcube 设置,我个人使用,也提供给其他用户。我试图将整个设置转移到一个新的盒子,但有一些问题。
邮件接收工作正常(仅在内部测试,域尚未传输。)以及使用 TLS/SSL 的外部 IMAP 和 SMTP 工作正常(例如,Thunderbird)
问题出在我的圆形立方体设置上,它可以使用 IMAP 到 127.0.0.1,并且可以很好地显示用户的电子邮件,但无法发送电子邮件,只需声明: "SMTP Error (220): Authentication failed."
奇怪的是,使用我在当前服务器上使用的相同 Postfix/Dovecot 配置,Roundcube 无法再在我的新服务器上访问它。这是相关的圆形立方体配置:
$config['smtp_server'] = 'tls://localhost';
// Log SMTP conversation to <log_dir>/smtp or to syslog
$config['smtp_debug'] = true;
// SMTP port (default is 25; use 587 for STARTTLS or 465 for the
// deprecated SSL over SMTP (aka SMTPS))
$config['smtp_port'] = 587;
// SMTP username (if required) if you use %u as the username Roundcube
// …Run Code Online (Sandbox Code Playgroud) 这是必需的,因为我需要在 GCP 中为 wordpress 实例实现负载均衡器。
如果通过健康测试,GCP 只会将请求转发给 wordpress 实例。
这是健康检查屏幕的典型定义
它期望“请求路径”返回 200。否则目标系统将被视为关闭。
但是,如果我在 wordpress 中创建一个页面,例如/index.php/newpage,它将始终返回 301。
当 wordpress 站点启动并运行时,它未通过健康检查。
有什么办法可以在wordpress中定义一个返回200的页面?希望它不需要额外的插件,因为我想避免维护额外的插件。
对我来说最后的办法是向 php 服务器添加一个 url,它将返回 200。但是,这个 url 的状态可能不是 100% 反映 wordpress 站点的健康状况(例如,可能由于 mysql 问题而关闭)。如果确实是不得已而为之,那么实施它的最佳方法是什么?我不精通php开发。
wordpress的版本是4.6.2
我的网络服务器上的 opcache 一直达到我设置的限制,即使我觉得我没有那么多 PHP 代码,它真的应该有足够的空间。
更糟糕的是,即使在清除 opcache 时,它也会立即显示超过 2/3 的可用空间已被填充。
刚才的例子:
运行 opcache_reset() 之前的 phpinfo 片段:
Used memory 122958472
Free memory 5552
Run Code Online (Sandbox Code Playgroud)
运行 opcache_reset() 后的 phpinfo 片段:
Used memory 90691312
Free memory 43526416
Run Code Online (Sandbox Code Playgroud)
我知道在 PHP7 中,opcache(显然)备份到磁盘,所以也许东西正在自动重新加载?但这似乎违背了重置 opcache 的目的,我不知道 opcache 备份到磁盘上的哪个位置,所以我无法检查。
我正在 nginx 上运行 PHP-FPM,准确地说是 vesion 7.0.15-0ubuntu0.16.04.4。