Articles of PHP

在Windows上安装PHP PEAR,以非交互方式指定目标安装目录

我想非交互式地在Windows上安装PHP PEAR。 如果我只是下载http://pear.php.net/install-pear-nozlib.phar并像这样运行它: php install-pear-nozlib.phar 它被安装到C:\php 。 但是我的PHP被安装到C:\PHP5 (它在%PATH% )。 所以我想以某种方式将PEAR安装到C:\PHP5 ,但无法find一个方法来做到这一点。 安装PEAR的方法是什么?

Nginx不通过重写到PHP-FPM

我有以下重写nginx的规则。 规则似乎无法正常工作,例如游戏规则应该将http://thegamesdb.net/game/2/重写为http://thegamesdb.net/index.php?tab=game?id=2当我导航到/游戏/ 2 /浏览器正在下载一个名为简单download的文件hover。 我的重写规则如下: # nginx configuration location /game { rewrite ^/game/([0-9]+)(/?)$ /index.php?tab=game&id=$1 break; rewrite ^/game-edit/([0-9]+)(/?)$ /index.php?tab=game-edit&id=$1 break; } location /search { rewrite ^/search/([a-z0-9\-\ /\+]+)(/?)$ index.php?tab=listseries&string=$1&function=Search break; rewrite ^/search(/?)$ /index.php?tab=listseries&function=Search break; } location /browse { rewrite ^/browse/([0-9+]*)(/?)$ /index.php?tab=listplatform&stringPlatform=$1&function=Browse+By+Platform break; } location /platform { rewrite ^/platform/([0-9]+)(/?)$ /index.php?tab=platform&id=$1 break; rewrite ^/platform/([a-z0-9\-]+)(/?)$ /index.php?tab=platform&alias=$1 break; rewrite ^/platform-edit/([0-9]+)(/?)$ /index.php?tab=platform-edit&id=$1 […]

升级到PHP的最新安装版本

我刚刚购买了一个新的VPS,并且由于某种原因,他们安装了PHP 5.3.3版。 我在版本5.3.X上很好,但我相信最新的版本是5.3.29。 我做了一些谷歌search,但无法find答案,所以想知道我如何升级PHP安装到最新的5.3.X版本? 谢谢!

从chroot中排除一个用户

我在CentOS服务器上有一个chroot设置,(没有shell访问/严格sftp的chroot)。 仅供参考,文件夹是这样的: home/sftp_users/%u (root:root 750) home/sftp_users/%u/input (site_user:sftp_users 770) home/sftp_users/%u/input/result (site_user:sftp_users 770) 在我的sshd.conf文件中我有这样的: Subsystem sftp internal-sftp Match Group webrecom_sftpusers ChrootDirectory /home/sftp_users/%u AllowTCPForwarding no X11Forwarding no ForceCommand internal-sftp 这几乎是我想要的。 如果您注意到上面我没有使用户的主home directory中的文件夹的所有者。 原因是我不希望他们能够删除这些目录或更改他们的权限。 否则,某个人有可能在某个时候把它弄糟。 他们仍然可以使用-r -w -e因为他们的团队。 虽然这主要是我想要的,因为他们写入input的能力,他们可以删除result目录。 我可以通过重新创build一个文件夹来解决这个问题。 PHP会在这些文件夹中查找文件来拾取并运行,然后返回报告。 问题是, site_user属于它自己的组site_user和在PHP中,我只能分配一个文件夹到用户所属的组。 如果我添加site_user到sftp_users然后它卡在sftp_users监狱。 我想我可以build立由site_user和site_user组拥有的文件夹,并将权限设置为0777,但是: 还有另一种方法来防止用户更改权限/删除我忽略的这些目录 有没有办法将site_user添加到sftp_users但不能把它粘在监狱里

批量禁用OTRS中的客户

问题是关于OTRS客户。 我不能使用外部客户后端,所以我想通过CSV文件更新客户数据库。 我已经写了一个脚本来通过otrs.AddCustomerUser.pl添加新的客户。 但是,我怎么能通过一个脚本批量禁用老客户?

在PHP下以不同的用户删除文件

我以用户www-data运行PHP,Nginx以用户nginx运行。 我需要删除用户nginx拥有的/var/cache/nginx/ ,我想用PHP来完成。 有没有办法让www-data删除/var/cache/nginx/ ? 或者有没有办法在PHP内执行rm作为用户nginx ?

无法加载dynamic库'/usr/lib64/php/modules/ssh2.so'

当我尝试运行任何PHP脚本与我的用户在shell中,我得到以下警告: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/ssh2.so' – /usr/lib64/php/modules/ssh2.so: cannot open shared object file: No such file or directory in Unknown on line 0 ssh2.so似乎被安装。 如果我使用root用户,我不会得到这个错误。 从我看到的所有内容,即使是用户,无论此警告如何,脚本都能成功执行。 我的php.ini文件显示如下: extension=ssh2.so 我在RHEL6上运行nginx(不支持)。 我已经读过服务器故障的其他问题,一直没能find一个解决scheme,在这里解决我的问题。 这里有一些数据: root $ php -m | grep ssh2 (Nothing returned) myuser $ php -m | grep ssh2 PHP Warning: PHP […]

禁用Apache服务器签名

我只是通过WHM的Configure PHP and suExec 。 为了安全起见,我想另外隐藏: Apache ServerSignature/ServerTokens/PHP X-Powered-By 在WHM的Configure PHP and suExec下我找不到相关的设置。 任何人都可以指导我如何实现这一目标? 注意: 按照这些说明(涉及编辑全局configuration),我发现服务器签名被设置为closures,但仍然是输出。

composer php作为根,但不作为普通用户,为什么?

我已经安装了Composer Globally,因为这个文档显示,它适用于我的服务器上的root用户CentOS 6.6,但作为一个普通的用户可以让webvm用户说,没有findcomposer php(见下文): [webvm@webvm ~]$ sudo composer [sudo] password for webvm: sudo: composer: command not found 我是否需要设置其他内容才能让composer php从非root用户开始工作? webvm是在sudoers文件,所以我不知道我在这里失踪,有什么build议吗?

为每个虚拟主机提供不同的字符集

在一个centos服务器6.5上,apache 2.2.15是否可以将多个字符集服务到不同的虚拟主机? 我知道设置默认的字符集是通过添加到httpd.conf文件中完成的: AddDefaultCharset UTF-8 然而,我们有一些网站需要使用ISO-8859-1进行编码,但Symfony提供的其他网站需要使用UTF-8进行编码。 是否有可能为每个虚拟主机添加一个默认字符集,或者是否需要使用.htaccess文件来完成?