a)php是基于UNIX平台开发的
通用开源脚本语言,每个请求都交给一个不同的进程来处理,由于进程之间不 共享数据,一个进程崩溃了不会影响其他进程的运行,因此整个程序运行环境比较可靠;而在windows平台 下,通常同一类型的服务请求是由同一进程的不同线程来处理的,线程通常会因为不可预测的原因宕掉, 这意味着php运行在IIS或者Apache环境中会频繁的发生崩溃,把php设置为外部的CGI可以防止崩溃的程序错 误导致的整个服务器崩溃,但这又会严重影响服务器性能,因此不是一个完美的做法。
b)当然通常我们都会认为“线程快而进程可靠”,调度以及创建进程比线程要花费更多的资源这是毋庸置疑的。根据网友
http://blog.youkuaiyun.com/jw212/article/details/6731665的实验数据可知,在某个特定环境下,当任务量大时,多进程比多线程效率高;
而完成的任务量较小时,多线程比多进程要快;而当任务量适中时,多进程与多线程所耗费的时间相同,当然该网友的这一结论我们仅作为参考,不去下定论。但是php运行在linux和Apache环境中,在Apache运行在prefork模式时,我们可以灵活的进行调参最优的优化服务器性能,因此可以极大的改善进程的不足而又保证其运行的稳定性。
下面将介绍配置php运行环境的主要过程:
1,选用的linux版本是centos6.6。
2,安装MySQL,Apache组件以及PHP,测试PHP环境。
2.1 安装mysql
安装mysql命令:[root@master /]# yum install mysqlmysql-server;
设置mysql随机启动:
[root@master /]#chkconfig --levels 235 mysqld on(如果发生bash无法使用,就su -l root一下,然后就可以使用bash命令了);
开启mysql服务器:[root@master /]# /etc/init.d/mysqld start;
设置mysql的root账户密码:
[root@master /]#mysql_secure_installation。回车两次接着设置Newpassword,接着有四个确认,直接回车即可。
更改mysql配置,vietc/my.cnf文件设置默认编码为utf8,在最后添加如下代码:
[mysql]
default-character-set=utf8
default-character-set=utf8
2.2 安装Apache
运行命令
[root@master /]# yuminstall httpd,centos6.6默认已经安装了Apache;
这时我们用如下命令启动Apache:
[root@master /]# /etc/init.d/httpedstart;
同时设置Apache随机启动
[root@master /]# chkconfig --levels 235 httpdon;
2.3 安装php
安装命令 [root@master /]# yuminstall php
重启Apache,
[root@master /]# /etc/init.d/httpedrestart;
2.4测试上述安装环境
apache服务器的根目录是var/www/html(根据需要可以到etc/httpd/conf/httpd.conf中进行更改根目录指向)。在该路径下创建一个info.php文件,输入如下内容:
保存,然后再浏览器地址栏中访问http://localhost/info.php,如果能看到如下php信息说明环境搭配成功。
2.5 将php模块和mysql模块关联起来
[root@master /]#
安装php相关模块,运行命令:[root@localhost~]# yum install php-mysql php-gd php-imap php-ldap php-odbcphp-pear php-xml php-xmlrpc;
然后重启Apache:
再次刷新2.3中所属的info.php网页,看看是不是多了一些信息。
2.6 安装mb_substr函数以及soap协议
yum install php-mbstring 以及 yum install php-soap,重启Apache
到此环境搭配成功,如果发现外网不能访问info.php页面,可以尝试关闭防火墙或者设置防火墙对80端口开放。