小编Max*_*Max的帖子

如何强制 MySQL 通过 TCP 而不是 Unix 套接字连接?

我想分析mysql流量。现在,所有 mysql 请求都发送到 MySQL unix 套接字:

unix  2      [ ACC ]     STREAM     LISTENING     3734388  15304/mysqld        /var/run/mysqld/mysqld.sock
Run Code Online (Sandbox Code Playgroud)

我正在尝试禁用该套接字以强制 MySQL 在回送上使用网络套接字。我尝试注释掉和文件socket中的所有指令并重新启动 MySQL,但没有任何区别。my.cnfdebian.cnf

如何禁用 MySQL unix 套接字以通过网络强制 MySQL?

其他信息:我运行MySQL 5.1ubuntu 10.04

问题的精确度
由于很多人建议启用网络套接字,我想通过指出绑定地址已经启用bind-address = 127.0.0.1并且侦听连接可用来澄清我的问题:

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      15601/mysqld 
Run Code Online (Sandbox Code Playgroud)

我仍然没有看到127.0.0.1:3306来自我的 web 应用程序(Drupal 网站)的连接尝试。

更新了答案

问题似乎确实来自mysqliDrupal 使用的连接器(.ht_config.php对于那些感兴趣的人)。它被设置为: mysqli://drupal:***@localhost/drupal,更改localhost127.0.0.1修复问题(即 Drupal 现在正在连接到网络套接字)。

mysql ubuntu connection localhost socket

62
推荐指数
3
解决办法
11万
查看次数

位置中的 add_header 指令覆盖服务器中的 add_header 指令

使用nginx 1.2.1我可以使用add_header以下方法添加多个标头:

server {
    listen       80;
    server_name  localhost;
    root /var/www;
    add_header Name1 Value1;      <=== HERE
    add_header Name2 Value2;      <=== HERE

    location / {
        echo "Nginx localhost site";
    }
}
Run Code Online (Sandbox Code Playgroud)

结果

GET /
HTTP/1.1 200 OK
Name1: Value1
Name2: Value2
Run Code Online (Sandbox Code Playgroud)

但是,我一使用add_header里面的指令location,下面的其他add_header指令就会server被忽略

server {
    listen       80;
    server_name  localhost;
    root /var/www;
    add_header Name1 Value1;      <=== HERE
    add_header Name2 Value2;      <=== HERE

    location / {
        add_header Name3 Value3;  <=== HERE
        add_header Name4 …
Run Code Online (Sandbox Code Playgroud)

ubuntu nginx http-headers

19
推荐指数
1
解决办法
1万
查看次数

如何使用 Apache 和 PHP 调查内存泄漏?

我们正在运行一个执行财务建模的大型 Drupal 网站。考虑到 apache 使用的内存超时增加而 apache 进程数保持稳定,我们似乎遇到了某种内存泄漏:

在此处输入图片说明

在此处输入图片说明

我们知道内存问题来自 apache/PHP,因为每当我们发出/etc/init.d/httpd reload内存使用量下降(见上面的截图和下面的 CLI 输出):

在 httpd 重新加载之前

美元免费
             缓存的已用空闲共享缓冲区总数
内存:49447692 45926468 3521224 0 191100 22609728
-/+ 缓冲区/缓存:23125640 26322052
掉期:2097144 536552 1560592

httpd重新加载后

美元免费
             缓存的已用空闲共享缓冲区总数
电话:49447692 28905752 20541940 0 191360 22598428
-/+ 缓冲区/缓存:6115964 43331728
掉期:2097144 536552 1560592

每个 apache 线程都分配了一个memory_limit512MB的 PHP ,这解释了高内存使用量与低请求量的区别,以及max_execution_time120 秒的时间,它应该终止执行时间更长的线程,因此应该防止内存使用量的不断增长。看到。

问:我们如何调查导致此内存泄漏的原因?

理想情况下,我正在寻找可以在系统上执行的故障排除步骤,而不必打扰开发团队。

附加信息:

OS: RHEL 5.6
PHP: 5.3
Drupal: 6.x
MySQL: 5.6
Run Code Online (Sandbox Code Playgroud)

仅供参考,我们知道我们正在单独调查的交换问题,与我们在交换开始发生之前观察到的内存泄漏无关。

linux php memory drupal apache-2.2

17
推荐指数
1
解决办法
4万
查看次数

SSI(Server Side Include)和ESI(Edge Side Include)的主要区别

我需要在 Web 服务器级别将动态内容包含到静态页面中。到目前为止,我发现的 2 个选项是Server Side Include (SSI)Edge Side Include (ESI)

虽然起源SSI似乎古老而晦涩(来自伊利诺伊大学 95 的缓存页面似乎是参考,显然它来自NCSA httpd曾经为大约 95% 的网络提供动力网络服务器),但ESI似乎更近更近和令人欣喜(w3 2001 年的规范,主要由 Akamai 的人编写)。

另外,我一直在听说Varnish+ESI并且我想知道这是否应该是要走的路。但是,我已经有了一个设置nginx,它只支持SSI并且希望遵循该KISS原则并Varnish尽可能避免使用。

对于我的直接用例,即在每个页面的顶部包含一个动态用户栏,我相信SSI可以完成这项工作。但是我担心随着我的网站的增长,我将需要仅支持的功能,ESI这将迫使我重新设计所有内容,这让我想到了我的问题(最终读者说):

哪些不支持的主要功能SSI会让您选择ESI(反之亦然)?

nginx web-server cache varnish

14
推荐指数
1
解决办法
9814
查看次数

如何将自定义参数从 Nginx 传递给 PHP?

我正在与passNginx 1.2.4结合使用并尝试将自定义参数传递给. 以下是我目前找到的选项:PHP-FPM 5.4.8fastcgiPHP

  • 使用env指令设置环境变量 innginx并使用getenv()$_ENVfrom获取它PHP。问题是env只在main上下文中操作,而我需要在上下文中设置参数server

  • 使用fastcgi_param专为此设计的指令。

我曾尝试使用更改某些参数的值fastcgi_param但未成功:

nginx:

fastcgi_param PATH_INFO "/var/tmp";
Run Code Online (Sandbox Code Playgroud)

PHP:

我检查了我能找到的所有预定义数组:

echo '<pre>';
echo "\n".'$GLOBALS'."\n"; var_dump($GLOBALS);
echo "\n".'$_SERVER'."\n"; var_dump($_SERVER);
echo "\n".'$_GET'."\n"; var_dump($_GET);
echo "\n".'$_POST'."\n"; var_dump($_POST);
echo "\n".'$_FILES'."\n"; var_dump($_FILES);
echo "\n".'$_REQUEST'."\n"; var_dump($_REQUEST);
echo "\n".'$_SESSION'."\n"; var_dump($_SESSION);
echo "\n".'$_ENV'."\n"; var_dump($_ENV);
echo "\n".'$_COOKIE'."\n"; var_dump($_COOKIE);
echo "\n".'$php_errormsg'."\n"; var_dump($php_errormsg);
echo "\n".'$HTTP_RAW_POST_DATA'."\n"; var_dump($HTTP_RAW_POST_DATA);
echo "\n".'$http_response_header'."\n"; var_dump($http_response_header); …
Run Code Online (Sandbox Code Playgroud)

php nginx fastcgi php-fpm

11
推荐指数
1
解决办法
3万
查看次数

修复损坏的 sudoers 文件

可能的重复项:
Ubuntu:我的 sudoers 文件被破坏了,我该如何修复它?

问题描述:

我在/etc/sudoers文件中输入了一个错字,从而破坏了它。现在我不能再使用任何 sudo 命令,因为下面的错误被抛出。因此我无法修复我的 sudoers 文件并且被有效地卡住了。

$ sudo nano /etc/sudoers
>>> /etc/sudoers: syntax error near line 39 <<<
sudo: parse error in /etc/sudoers near line 39
sudo: no valid sudoers sources found, quitting
Run Code Online (Sandbox Code Playgroud)

我发现很少有解决方案说我应该启动到恢复模式(如下所示),我显然想避免这种情况。
Ubuntu :我的 sudoers 文件出错了,我该如何修复?

问题:

- 有没有其他方法可以在不重新启动 ubuntu 的情况下修复它?
- 如果在修改 sudoers 文件时很容易将自己锁定在 sudo 之外(每个人都会打错字),为什么不直接从内存中读取 sudoers 配置而不是从文件中读取?将有一个命令(例如 sudo-load)在将配置加载到内存之前确保语法正确,从而避免此类问题。

解决方案:
似乎有两种方法可以恢复它:
- 如果您有 root 密码,您可以简单地发出“su”,然后编辑文件
- 如果您没有 root 密码,您需要重新启动到单用户模式

ubuntu sudo

10
推荐指数
1
解决办法
2万
查看次数

Slappasswd 输出随机化

我希望slappasswd产生一个固定的哈希值,但似乎输出是随机的,因为对于相同的输入密码,我从来没有得到相同的输出:

$ slappasswd -s secret
{SSHA}mCXsPZkfgQYZr2mKHpy5Iav+2S2XlVU3
$ slappasswd -s secret
{SSHA}62oXsalJBuopYfHhi6hGp6AESuWNIVnd
$ slappasswd -s secret
{SSHA}0Ulc8+ugMi3NbTtWnclOFW1LKCqRdsT8
Run Code Online (Sandbox Code Playgroud)

在身份验证期间,slapd如何知道如何以相同的方式随机化提供的密码的哈希值,以便它可以匹配最初定义的密码?

openldap

10
推荐指数
2
解决办法
6173
查看次数

ldap_add:违反约束 (19)

我在导入用户ldapaddldif文件时遇到问题。我得到的错误是:

ldap_add: Constraint violation (19)
additional info: structuralObjectClass: no user modification allowed
Run Code Online (Sandbox Code Playgroud)

导入的用户都是ou=People,dc=example,dc=org. LDAP 服务器已包含此基本 DN。

/etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb.ldif文件包含以下 ACL 条目:

olcAccess: {2}to dn.base="ou=People,dc=example,dc=org" attrs=children by gr
 oup.exact="cn=Manager,ou=Roles,dc=example,dc=org" manage
Run Code Online (Sandbox Code Playgroud)

ldif文件被导入如下:

ldapadd -f import.ldif -xv -D "cn=drupal,ou=Apps,dc=example,dc=org" -h localhost -W
Run Code Online (Sandbox Code Playgroud)

cn=drupal,ou=Apps[...]条目是 的成员,cn=Manager,ou=Roles,dc=example,dc=org因此它应该具有足够的写入权限(因为管理是可用的最高权限级别)。

当我发出ldapadd命令时,导入在第一个ldif条目时失败。完整的命令输出是:

add objectClass:
    top
    person
    inetOrgPerson
add uid:
    John.Merrell
add mail:
    john.merrell@example.org
add cn:
    John D Merrell
add structuralObjectClass:
    inetOrgPerson
add …
Run Code Online (Sandbox Code Playgroud)

openldap ldap ldif ubuntu-10.04

9
推荐指数
1
解决办法
3万
查看次数

找不到 apache 服务器状态。检查 mod_status 是否启用

apache_在 munin 节点上启用了插件:
ln -sv /usr/share/munin/plugins/apache_* /etc/munin/plugins/

service munin-node restart这里重新启动节点后,我得到了错误:

$ munin-node-configure --suggest 2>/dev/null | grep "apache\|Plugin\|------"
Plugin                     | Used | Suggestions                            
------                     | ---- | -----------                            
apache_accesses            | yes  | no [apache server-status not found. check if mod_status is enabled]
apache_processes           | yes  | no [apache server-status not found. check if mod_status is enabled]
apache_volume              | yes  | no [apache server-status not found. check if mod_status is enabled]
Run Code Online (Sandbox Code Playgroud)

但是mod_status已经启用:

$ a2enmod status
Module …
Run Code Online (Sandbox Code Playgroud)

mod-rewrite munin ubuntu-10.04 apache-2.2

9
推荐指数
2
解决办法
3万
查看次数

将 ext4 分区转换为 ext3 而不格式化硬盘

我想在不格式化硬盘的情况下将 ext4 分区转换为 ext3 分区。

这是可能的并推荐吗?

linux partition ext4 ext3 ubuntu-10.04

7
推荐指数
1
解决办法
2万
查看次数