Articles of PHP

备份服务器网站作为一个自动化的过程?

我是一家小公司的networkingpipe理员。 我们在自己的服务器上托pipe我们的网站。 该网站运行在PHP和MySQL上。 我通过SSH访问服务器。 我对UNIX / LINUX命令不太熟悉,但是我已经得到了以前的networkingpipe理员关于如何备份网站的指示。 基本上,我需要将mysqldump操作导出到服务器上的.sql文件,然后将其移至本地安全位置。 我通过zip操作备份网站,并通过FTP下载。 我无法访问Apache服务器configuration,因此我无法在PHP中启用shell命令。 但是,我想编写一些简单的批处理程序,可以访问shell,login并自动运行一系列命令。 然后,pipe理员可以简单地下载这些文件(或者,更好的是,下载过程也可以自动化)。 这甚至有可能吗? 如果是这样,你能指导我从哪里开始学习这样的事情吗? 我甚至不知道要search什么。 非常感谢。

mod_ruid2 over mod_fcgid

我刚刚听说了ruid2,想知道是否更安全,然后fcgid? 我听说,这是不太安全,更有问题。 两者有什么分别吗? fastcgi和mod_fcgid是一样的 我正在使用CPanel。

Apache的segfault glibc段错误

我一直在(约每5 – 6小时)在Apache的这个段错误: [Tue Jun 26 12:43:10 2012] [notice] child pid 26810 exit signal Aborted (6) *** glibc detected *** /usr/sbin/apache2: free(): invalid pointer: 0xb68c2628 *** ======= Backtrace: ========= /lib/i386-linux-gnu/libc.so.6(+0x6ff22)[0xb75aef22] /lib/i386-linux-gnu/libc.so.6(+0x70bc2)[0xb75afbc2] /lib/i386-linux-gnu/libc.so.6(cfree+0x6d)[0xb75b2cad] /usr/lib/apache2/modules/libphp5.so(destroy_zend_class+0x228)[0xb5d40518] /usr/lib/apache2/modules/libphp5.so(zend_hash_clean+0x77)[0xb5d58957] /usr/lib/php5/220100525+lfs/apc.so(apc_interned_strings_shutdown+0x32)[0xb64930b2] /usr/lib/apache2/modules/libphp5.so(+0x318ff0)[0xb5d56ff0] /usr/lib/apache2/modules/libphp5.so(zend_hash_graceful_reverse_destroy+0x27)[0xb5d58a67] /usr/lib/apache2/modules/libphp5.so(zend_destroy_modules+0x3c)[0xb5d506cc] /usr/lib/apache2/modules/libphp5.so(+0x30c743)[0xb5d4a743] /usr/lib/apache2/modules/libphp5.so(php_module_shutdown+0x42)[0xb5ce5172] /usr/lib/apache2/modules/libphp5.so(php_module_shutdown_wrapper+0x17)[0xb5ce5257] /usr/lib/apache2/modules/libphp5.so(+0x3bebe1)[0xb5dfcbe1] /usr/lib/libapr-1.so.0(+0x19846)[0xb76f2846] /usr/lib/libapr-1.so.0(apr_pool_destroy+0x52)[0xb76f19ec] /usr/sbin/apache2(+0x4ccee)[0xb77eccee] ======= Memory map: ======== b2e18000-b2e2c000 rw-s 00000000 00:04 8841030 /dev/zero […]

即使WWW数据用户具有组写入权限,Nginx的权限也被拒绝

即使用户有写入组访问权限,Nginx也无法写入日志文件。 这里有一些细节: www-data用户在ubuntu组中: $ id www-data uid=33(www-data) gid=33(www-data) groups=33(www-data),1000(ubuntu) / opt / logs /是组可写的: $ ls -ld /opt/logs/ drwxrwxr-x 2 ubuntu ubuntu 4096 2012-07-27 02:47 /opt/logs/ www-data用户可以按照预期创build/ opt / logs / 1: $ su www-data $ touch /opt/logs/1 $ ls -l /opt/logs/1 -rw-rw-r– 1 www-data www-data 0 2012-07-27 02:47 /opt/logs/1 Nginx的用户:groups: var_dump(system('whoami'), system('groups')); // string […]

麻烦在CentOS 6上安装php-devel

我试图在CentOSOS 6上安装PHP的mongo驱动程序。运行“pecl install mongo”时抱怨说“php-devel软件包是必需的”。 运行“yum install php-devel”会出现以下错误: Loaded plugins: fastestmirror, presto, priorities Loading mirror speeds from cached hostfile * base: mirrors.usc.edu * epel: mirrors.xmission.com * extras: centos.sonn.com * updates: mirror.hmc.edu Setting up Install Process Resolving Dependencies –> Running transaction check —> Package php-devel.x86_64 0:5.3.3-14.el6_3 will be installed –> Processing Dependency: php = 5.3.3-14.el6_3 for package: […]

以超级用户身份启动FPM池/反映根访问权限

我正在用PHP构build一个NAS控制应用程序,只能从本地networking访问。 我将从PHP-FPM开始,它不允许用root用户启动它的池,我还没有find强制它的方法。 是的,是的,以root身份运行PHP并不安全(并且还构build了操作系统configuration应用程序),但我没有其他想法,我怎么能够直接从PHP使用file_put_contents()和Arch /etc/rc.conf编辑Arch Linux的/etc/rc.conf rc.d restart network 。 我在php.ini设置了open_basedir = / 。 我已经阅读了这个 ,因此,我build立了一个sudoer,用相应的用户和组启动PHP-FPM池。 我的sudoer是一个系统用户,添加了: useradd -r -s /bin/bash -g wheel -d /srv/http/ systemphp 在sudoerconfiguration我添加了条目: systemphp stone=NOPASSWD: ALL stone是系统的实际主机名。 这个问题是,我不得不sudo <everything> ,但我不想基于shell_exec() / exec()一切。 因为,这里的任何选项是一个选项,我仍然尝试: var_dump(shell_exec('sudo fdisk -l')); 那个返回null 。 在PuTTY, su systemphp , sudo fdisk -l返回实际列表。 如果没有shell_exec() ,下面的代码会导致fopen(/etc/rc.conf): failed to open stream: Permission […]

login成功后收到500内部服务器错误?

在创build网站login时遇到问题: PHP: mysql_connect($db_host, $db_username, $db_password) or die(mysql_error()); mysql_select_db($db_database) or die(mysql_error()); $username=$_POST['username']; $password=$_POST['password']; $username = stripslashes($username); $password = stripslashes($password); $username = mysql_real_escape_string($username); $password = mysql_real_escape_string($password); $sql="SELECT * FROM users WHERE username='$username' and password='$password'"; $result=mysql_query($sql); $count=mysql_num_rows($result); if($count == 1) //ERROR APPEARS TO TAKE PLACE HERE { session_start(); $_SESSION['username'] = $username; $_SESSION['password'] = $password; header('login_success.php'); } else { […]

尝试重新启动后服务器closures

我面对的问题是,当我尝试使用命令sudo init 6重新启动“代码”服务器时,服务器closures,我甚至不能连接服务器。我怎样才能克服这个问题?

在CentOS上追踪并安装特定版本的PHP

长话短说:我已经inheritance了高度依赖于软件包版本的地狱般的PHP代码(框架)。 问题是,我需要一个PHP版本> = 5.3.0和<= 5.3.3的CentOS 5.7 i386,我似乎无法find任何地方 – 甚至没有源代码。 只有我发现这个http://pe-ell.net/rpms.html ,但它是64位。 另外,如果将PHP从5.2.17升级到5.3.0和5.3.3之间的版本,会不会破坏我已经编译的任何PECL扩展? 提前致谢!

卸载php和nginx或修复安装程序

首先,我是一个巨大的Linux noob – 对不起…我试图安装Debian的php-fpm nginx,我敢肯定,我已经彻底搞砸了。 nginx似乎运行正常,因为我可以从networking浏览器中获取它,并加载股票“Welcome to nginx!” 页。 虽然我不太了解php-fpm。 当我尝试类似的东西 # restart php-fpm 我得到: bash: restart: command not found 首先closuresphp-fpm一些如何安装为php5-fpm当我做root@server:/etc/init.d# ls ,这似乎与每篇教程都有冲突,并帮助我读过的文档(应该是'php-fpm' )。 我可以重新启动它: service php5-fpm restart 只需input包名“php5-fpm”我得到这个: root@server:~# php5-fpm [17-Nov-2012 23:15:36] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/suhosin.so' – /usr/lib/php5/20100525/suhosin.so: cannot open shared object file: No such […]