‘壹’ php实现离线在线功能
<?php
ignore_user_abort(true);
$arr="";
$max=1024;
for($i=0;$i<$max;$i++){
$arr.=$i;
}
while(true){
if(!connection_aborted()){
echo '';
ob_flush();
flush();
sleep(1);
}else{-----离线操作-----
exit(); <?php
ignore_user_abort(true);
$arr="";
$max=1024;
for($i=0;$i<$max;$i++){
$arr.=$i;
}
while(true){
if(!connection_aborted()){
echo '';
ob_flush();
flush();
sleep(1);
}else{-----离线操作-----
exit();
‘贰’ php文件使用什么软件打开
诸如.php、.perl、htm等许多程序设计语言源代码文件,其实都是文本格式的,所以完全可以采用记事本打开!不过采用记事本打开以后一般不容易分析源代码。
也可以使用 ultraedit, editplus, Notepad++, Dreamweaver, Netbeans eclipse 等软件.
php可以用文本编辑器(如记事本、emeditor、phpedit等)打开。如果要运行它得搭建相应的php环境和web服务支持才行。
‘叁’ 一个php编写的程序(pt站)的源代码,已经通过ftp上传到服务器宝塔根目录了,怎么执行该程序
首先确认你的站点能执行php,然后要知道您站点的域名,比如根目录绑定了域名abc.com,你根目录有个文件a.php,那就可以在浏览器通过abc.com/a.php来访问文件了。一般index.php如果是在根目录,可以直接用abc.com来访问,不需要打出php文件名。如果遇到浏览器打开不了文件,请截图或描述浏览器提示什么错误,才能进一步帮你看问题在哪。
‘肆’ PHP代码在线运行工具(tool.lu)为什么不能换行 代码如下和结果在补充里面。
查看解析后的源代码,如果有br标签,那是浏览器兼容问题,或者js问题!最好本地编辑器写代码,然后测试访问……另外索性数组这样定义不推荐,php7直接[]定义,传统索引数组array()定义……
‘伍’ 用PHP实现Ftp用户的在线管理
领导要我策划一个网页设计大赛和Flash创作大赛,要求必须实现在线报名和上传作品。通过FreeBSD+Apache+PHP+Mysql+FTP我实现了该要求。
实现在线报名和上传作品的思路是利用网页表单收集用户填写的资料存储到Mysql数据库内,同时以该用户的注册名创建一个FTP上传账号并创建该用户的相应目录。
Ftp服务器是系统默认带的,采用系统用户的用户名和密码,创建系统用户就等于创建FTP用户,FreeBSD是属于UNIX阵营的操作系统,它没有象Linux一样的useradd和groupadd等创建用户和组的命令,其取而代之的是pw命令加上相应参数来实现,在Freebsd上以管理员的身份创建一个用户的命令是
以下是引用片段:
echo | pw useradd [-g][groupname] [-s][shelldir][-h 0]
参数g指定用户组,参数s指定用户的shell。
如果是普通用户登陆颂凯慧的话还必须用到su命令,调用的方法是
以下是引用片段:
su root _c ‘echo | pw useradd [-g][groupname] [-s][shelldir][-h 0] ’
执行之后系统会要求输入管理员密码,输入密码就可以以管理员的身份野答执行这个命令了。
实现这步操作的主要难点在于如何通过PHP来调用上面这些系统命孙答令去创建一个用户,本例是使用PHP中的popen()函数来实现的,该函数执行指令打开文件,语法是int popen(string command, string mode),其打开的文件只能是单向的,只能读或只能写,对应的“string mode”为’r’或’w’,“string command” 就是命令字符串,在对文件的操作上可使用 fgets()、fgetss()与fputs()函数,本例用fputs()函数往文件里面输入管理员密码。若是开档发生错误将返回 false 值,最后函数要记得调用pclose()关闭。
下面我们来规划一下FTP用户的组,事先我们先用pw groupadd ftpuser创建ftpuse组,让在线申请的用户为这个组的成员。为了安全起见,我们不应该给FTP用户Telnet权限,所以我们还要专门给他们创建一个shell,使得他们不能通过Telnet正常登陆系统,方法如下:先创建一个文件/bin/ftponly
以下是引用片段:
#!/bin/csh
/bin/cat
XX
You can ony use this username to login ftp server!
And you can not use it to telnet to this system! XX
sleep 10
该文件中XX之间就是显示给用telnet登陆的用户看的信息。信息显示10秒钟就自动退出了。最后不要忘记用chmod +x /bin/ftponly给这个文件可执行属性。
然后在/bin/shell文件中添加“/bin/ftponly”,在以后的命令里面我们就可以利用pw中-s参数把这个shell指定给FTP用户了。
最后还要注意一个问题,su命令仅仅是wheel管理组的用户成员才可以使用,当PHP调用su命令的时候也必须以wheel组成员的身份运行,否则系统拒绝运行,而PHP运行系统命令的身份就是Apache Web服务器运行的身份,初始的用户名和用户组都是nobody,所以先得建立一个wheel组的用户www供apache使用,接着更改Apache的配置文件httpd.conf中的user为www,group为wheel,重新启动Apache,就可以以新用户身份运行了。
下面可以创建PHP源文件checkin.php了,代码如下:
以下是引用片段:
?if (($username!="") and ($userpasswd!=""))//判断是否有表单提交了信息
{ $rootpasswd="adminpassword"; //定义管理员密码
$creatuser ="su --login root -c 'echo ".$userpasswd." | pw useradd ".$username." -s /bin/ftponly -g ftpuser _s /bin/ftponly -h 0' "; //这是利用su和pw命令创建用户的用到的字符串
$fp=popen($creatuser,"w"); //调用popen()函数执行字符串中的命令,返回文句柄给$fp
fputs($fp,$rootpasswd); //写入管理员密码到文件$fp,相当于输入密码给系统
pclose($fp);//关闭文件
$creatdir="su --login root -c 'mkdir /home/".$username."'";//创建用户目录的命令字符串
$fp=popen($creatdir,"w");//执行命令创建用户目录
fputs($fp,$rootpasswd); //输入管理员密码
pclose($fp);
$creatdir="su --login root -c 'mkdir /home/".$username."/public_html'";
$fp=popen($creatdir,"w"); //执行命令创建用户网站根目录
fputs($fp,$rootpasswd); //输入管理员密码
pclose($fp);
$creatdir="su --login root -c 'chown ".$username." /home/".$username."'"; //改变用户目录的所有者为用户自己,初始为运行Apache的用户www。
$fp=popen($creatdir,"w"); //执行命令
fputs($fp,$rootpasswd); //输入管理员密码
pclose($fp);
$creatdir="su --login root -c 'chown ".$username." /home/".$username."/public_html'"; //改变网站根目录的归属
$fp=popen($creatdir,"w");
fputs($fp,$rootpasswd);
pclose($fp);
echo "恭喜".$username.",您的的FTP账号已经申请成功!请到FTP上登陆,请注意,您没有Telnet权限";}
else{?
html
head
title申请FTP账号/title
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/head
body bgcolor="#FFFFFF"
div align="center"
p申请FTP账号/p
form method=POST action="? echo $PHP_SELF; ?"
table width="36%" border="0"
tr
td width="40%"
div align="right"账号名称:/div
/td
td width="60%"
input type="text" name="username"
/td
/tr
tr
td width="40%"
div align="right"密码:/div
/td
td width="60%"
input type="password" name="userpasswd"
/td
/tr
tr
td colspan="2"input type="submit" name="Submit" value="申请"/td
/tr
/table
/form
/div?}?
/body
/html
‘陆’ php中怎样执行cmd
exec("命令");//记得把路劲写对
‘柒’ 怎样在 VPS 上搭建一个在线 PHP+MySQL 的编辑运行环境
下面让我们建立MYSQL数据库
apt-get install mysql-server mysql-client
安装phpmyadmin
apt-get install phpmyadmin
这时,你会发现直接访问http://localhost/phpmyadmin无法使用,
这时我们需要建立一个软连接,执行下面的命令
#sudo ln -s /usr/share/phpmyadmin/ /var/www/
或者你把phpmyadmin直接复制到 /var/www/的文件夹下面也可以
下面介绍一下Debian /Ubuntu Linux中, lighttpd的相关命令
停止lighttpd服务器
# /etc/init.d/lighttpd stop
重启lighttpd服务器
# /etc/init.d/lighttpd restart
启动lighttpd服务器
# /etc/init.d/lighttpd start
第二步,Lighttpd与PHP的优化。
这步也是最重要的,关系到WordPress能否良好的运行在64M内存的VPS上。
修改 /etc/lighttpd/conf-available/10-fastcgi.conf
max-procs = 1
PHP_FCGI_CHILDREN = 2
PHP_FCGI_MAX_REQUESTS = 这个随意,但是不要为0或者太大
说一下为什么要这么设置,php-cgi进程数=(max-procs)X(1+PHP_FCGI_CHILDREN),1个php-cgi进程大约占用19M内存,也就是说64M的内存VPS最好不要超过3个php-cgi进程,剩下的内存要留给MySQL和系统。如果仍然出现500错误,可以降低到2个,也就是PHP_FCGI_CHILDREN = 1
其余优化
/etc/php5/cgi/php.ini 中 memory_limit建议适当减少,只要保证WordPress可以运行即可(WordPress安装至少需要32MB内存,但运行只需要8MB或者更少)。
/etc/mysql/my.cnf 中相应的参数,请减少到默认值的1/8左右,或者更低。