apache服务器没什么可说的地方,尽量去官网下载个最新的。
有一个地方需要注意:php教程是以模块的形式加载到apache这个容器里面的,就是你在配置apache加载php模块的时候,注意那个路径的问题。具体配置语句
loadmodule php5_module d:/php/php5apache2.dll 是指以module方式加载php
phpinidir "d:/php" 是指明php的配置文件php.ini的位置
这个路径中尽量不要出现空格,比如我的路径是 loadmodule php5_module d:/peogram files/php/php5apache2.dll这个就会导致错误,你需要换成相对路径,比如"../php/php5apache2.dll",但是相对路径一定要正确,这要看你怎么安装各个模块的,建议安装在统一目录下,方便管理。
php就得注意一下,这个问题很让人纠结。下面是php的下载
php 5.3 (5.3.5) window平台包下载
vc9 x86 non thread safe (2011-jan-05 21:37:35)
- zip [14.96mb]
sha1: 2fdd7b2b17d359725d9f297b6a59f17b71a913a6 - installer [26.9mb]
sha1: d7cfd584231e68dc9e87cdff45a6d11fa3b03689 - debug pack [7.94mb]
sha1: 414c30a12a402d3af30b46de4b2e0ca391872982
vc9 x86 thread safe (2011-jan-05 21:31:04)
- zip [15.1mb]
sha1: 7593b0ebba4b43418fd2f3c18eac83d698da46d6 - installer [27.02mb]
sha1: db510126e3f9b580c38fb6dd8895e5a67403a223 - debug pack [8.29mb]
sha1: 339f6092e4c4fee9c5a6a0f6d0f8359fbfbda60b
vc6 x86 non thread safe (2011-jan-06 19:06:20)
- zip [13.13mb]
sha1: b11a6a1597219d7ce10bc315cde411f37346383e - installer [23.84mb]
sha1: 4249683e8b88ceed32bf12c0b883a51bb10e43d9 - debug pack [4.86mb]
sha1: 9fb328a8c798bfe797e1a7f683571dc3812f3aa8
vc6 x86 thread safe (2011-jan-06 18:56:08)
- zip [13.26mb]
sha1: 8658b5c58a9893d46290beb70aa2335226e2c523 - installer [23.95mb]
sha1: 05fe4fb8f03a2f9fa71d47aad60e8c9becd6bb7d - debug pack [5.03mb]
sha1: 9d96d42b14f516ee5935404161836ec28b572bbf - 一共四种供你选择。但是一定要选对。
-
vc6是什么?
vc6就是legacy visual studio 6 compiler,就是使用这个编译器编译的。
vc9是什么?
vc9就是the visual studio 2008 compiler,就是用微软的vs编辑器编译的。那我们如何选择下载哪个版本的php呢?
如果你是在windows下使用apache+php的,请选择vc6版本;
如果你是在windows下使用iis+php的,请选择vc9版本;那non thread safe是什么?
non thread safe就是非线程安全;
thread safe 是什么?
non thread safe 是线程安全;
官方并不建议你将non thread safe 应用于生产环境,所以我们选择thread safe 版本的php来使用我选择的是vc6 x86 thread safe (2011-jan-06 18:56:08),因为我是在windows下搭建的apache服务器。
php直接解压就算是安装。按教程一步一步的走就可以。
经常出现的问题是:
unable to load dynamic library 'd:/server/php/ext/php_exif.dll'
unable to load dynamic library 'd:/server/php/ext/php_fdf.dll'
unable to load dynamic library 'd:/server/php/ext/php_ifx.dll'……
类似的错误,解决办法是
1.修改php.ini文件的extension_dir配置到你正确的php/ext/,因为这个文件夹里面是你所有的扩张模块,包括mysql教程之类的。
2.把你的php安装目录下的dll文件,php/ext文件下的dll文件统统复制到widows/0system32下面去,或者你修改系统环境变量path,加上;d:/www/php;d:/www/php/ext;这是我的安装目录。这个实现的效果跟复制到system32下面是一样的,具体原因我也不知道为啥,我只知道程序运行的时候首先去system32下面找相应的库文件进行加载,如果找到就停止,如果找不到就去path下面去寻找,如果再找不到,就去配置文件extesion_dir下面去找,再找不到就报错,所以如果你电脑上以前安装过php4的话,请先把system32下面相应的dll文件删除掉。
3.这些加载的模块,是加载还是删除是在php.ini里面配置的
类似于extension=php_bz2.dll
extension=php_curl.dll
extension=php_fileinfo.dll
extension=php_gd2.dll
extension=php_gettext.dll
;extension=php_gmp.dll
extension=php_intl.dll
一定要注意请不要把所有的模块都启动,虽然系统资源浪费也多不了哪去,但是默认的php5安装包下并不一定存在这个模块的相应dll,所以你应该按照系统错误提示把相应的模块给停用了,停用方法,跟你是怎么开启模块是相反的。
4.还有就是模块之间会有依赖性,比如我想要开启extension=php_exif.dll这个模块,那么就必须先开启extension=php_mbstring.dll模块,这也可能是你加模块不成功的原因。
安装mysql很简单,直接按提示安装就行,不需要与服务器各个模块之间进行配置
由于目前phpmyadmin的最新版本已经更新到了2.11.5.1,网上流传的很多配置方法都是以前老版本的,已经不太适应新版本的配置要求;于是flymorn顺便也把phpmyadmin2.11.5.1的配置步骤也列在下面;为了切换及调试php方便,我采用的是windows系统,本地调试。
1、先下载phpmyadmin安装包:
到国外官方网站http://www.phpmyadmin.net上,点击导航栏上的“downloads”链接进入下载页面,选择“all-languages.zip”版本下载到本地,解压;把解压缩文件放到系统指定的虚拟根目录下的phpmyadmin文件夹里(可自定义文件夹名),如flymorn的本地存放位置是d:wwwphpmyadmin里。2、找到phpmyadmin文件夹里的/libraries/config.default.php文件(旧版本是根目录下的config.inc.php文件),用支持utf-8编码的写字板打开进行编辑。
3、查找 $cfg['pmaabsoluteuri']
修改为你将上传到空间的phpmyadmin的网址
如:$cfg['pmaabsoluteuri'] = 'http://www.piaoyi.org/phpmyadmin/';
这里因为我是本地调试,我改为$cfg['pmaabsoluteuri'] = 'http://localhost/phpmyadmin/';
注意:不要漏掉最后的反斜杠/和开头的http。4、查找 $cfg['servers'][$i]['host'] = 'localhost';(通常用默认,也有例外,可以不用修改)
5、查找 $cfg['servers'][$i]['auth_type'] = 'config';
在自己的机子里调试用config;如果在网络上的空间用cookie,这里我们既然在前面已经添加了网址,就修改成cookie。
我个人建议:无论是本地还是网络上,都建议设置成cookie,安全第一。
同时,当auth_type这个值设置为cookie后,还有一个地方需要作出相应的修改:
$cfg['blowfish_secret'] = '';
改成:$cfg['blowfish_secret'] = 'www.piaoyi.org';
这里的www.piaoyi.org自己随便定义,不超过46个字符。如果这个地方留空,将会出现上文提到的第2个错误:“配置文件现在需要绝密的短语密码(blowfish_secret)”。6、查找 $cfg['servers'][$i]['user'] = 'root'; // mysql user(用户名,自己机里用root;在网上一般为你的ftp用户名,虚拟主机提供商会告诉你的;一般不要修改)
7、查找 $cfg['servers'][$i]['password'] = '123456'; // mysql password (123456修改成连接你的mysql数据库教程的用户密码)
8、查找 $cfg['defaultlang'] = 'zh'; (这里是选择语言,zh代表简体中文的意思) 还有 $cfg['defaultcharset'] = 'gb2312';(修改默认编码为国标)
到这里,phpmyadmin就已经配置完成ok;你可以打开http://localhost/phpmyadmin/访问方便快捷的图形化管理软件phpmyadmin了。关于本文没有提到的配置文件里的其他选项,大家可以不用关心了也不必修改。关于具体如何操作phpmyadmin不在本文讨论的范围内,不过图形化界面,是通俗易懂,稍微看看就会用了(参考)。
下面谈谈,flymorn在安装配置phpmyadmin的过程中所遇到的几个问题。
第一个问题:“无法载入mcrypt扩展,请检查php配置”。
1、没有正确安装mysql数据库,在系统服务中mysql相关的服务没有启动。
2、在系统的 system32(c:windowssystem32) 目录下缺少 libmcrypt.dll文件,解决方法是找到php目录下的libmcrypt.dll,并将libmcrypt.dll复制到c:windowssystem32目录中,然后重新启动web服务。
3、在php目录下的php.ini文件中,没有将“;extension=php_mcrypt.dll”中的前面一个“;”去掉,所以不能使用相应功能,解决方法是打开php.ini文件,找到;extension=php_mcrypt.dll改成extension=php_mcrypt.dll //去掉前面的;使之生效
4、mysql目录没有读取权限,正确的目录权限如下:
administrator 完全控制
system 完全控制
user 读取加运行
其他的用户权限全部删除(也可保留,但安全性不高,建议删除),然后重启mysql服务和web服务(建议修改此项后重启一下服务器)。
5、以上方法都不行的话,再用这个方法:桌面>我的电脑>右键属性>高级>环境变量>系统变量>新建
名:phpdir
值:c:php(你的php在什么目录就是什么)
(参考来源:地址)第二个问题:“无法载入 mysql 扩展,请检查 php 配置”
把 php 目录下的 libmysql.dll 复制到:c:windowssystem32 下,然后重启apache。
第三个问题:“配置文件现在需要绝密的短语密码(blowfish_secret)”
确保在config.default.php文件里面进行了正确的设置 :
$cfg['servers'][$i]['auth_type']= 'cookie';
同时
$cfg['blowfish_secret'] = 'www.piaoyi.org'; //(这个值随便写,就是不能留空)其实这个问题,我碰到了确实很郁闷,如果按照我在上面提到的配置方法做了,应该不会提示这个错误。经过我2个多小时不停的修改config.default.php配置文件,始终提示这个错误,几乎达到了崩溃的边缘了。
然后就是灵光一现,突然发现:我把auth_type认证方式改为http,改为config时,打开页面始终出现这个错误,也就是说改变了认证模式,并没有对phpmyadmin起作用,难道是其他的配置文件在影响决定着phpmyadmin?
立马来到phpmyadmin根目录,赫然发现根目录下有一个config.sample.inc.php文件存在的同时,还有一个文件config.inc.php也存在!!而这个是以前老版本的配置文件,原来是这个文件捣的鬼。马上删除config.inc.php,再进入调试页面,错误消失了!问题解决。
看来phpmyadmin根目录下的config.inc.php配置文件的优先级比/libraries/config.default.php的配置文件高,系统是先调用根目录里的配置文件,然后才是libraries文件夹里的配置文件,艾,这个问题,折腾了这么久,呜呼哀哉。总归解决了,舒一口气啊。
第四个问题:“#2003-服务器没有响应”。
遇到这个问题多半是mysql数据库没有启动,建议直接在在:控制面板-管理工具-服务里面把mysql启动。关于是否启动,你可以在任务管理器里查看是否有“mysqld-nt.exe”这样的进程,如有有,则说明mysql已经启动。
第五个问题:“没有发现php的扩展设置mbstring”。修改 c:windows 下的 php.ini 文件,找到 ;extension=php_mbstring.dll 把;去掉,保存 php.ini,重新启动apache即可。
客户端 | ===> |负载均衡器| ===> |反向代理/缓存| ===> |web服务器| ===> |数据库教程服务器|
-------- ---------- ------------- --------- ------------
nginx squid apache,php mysql教程
eaccelerator/memcache准备工作:
引用服务器: intel(r) xeon(tm) cpu 3.00ghz * 2, 2gb mem, scisc 硬盘
操作系统:centos4.4,内核版本2.6.9-22.elsmp,gcc版本3.4.4
软件:
apache 2.2.3(能使用mpm模式)
php 5.2.0(选用该版本是因为5.2.0的引擎相对更高效)
eaccelerator 0.9.5(加速php引擎,同时也可以加密php源程序)
memcache 1.2.0(用于高速缓存常用数据)
libevent 1.2a(memcache工作机制所需)
mysql 5.0.27(选用二进制版本,省去编译工作)
nginx 0.5.4(用做负载均衡器)
squid-2.6.stable6(做反向代理的同时提供专业缓存功能)
二、编译安装
一、) 安装nginx
1.) 安装
nginx发音为[engine x],是由俄罗斯人igor sysoev建立的项目,基于bsd许可。据说他当初是f5的成员之一,英文主页:http://nginx.net。俄罗斯的一些大网站已经使用它超过两年多了,一直表现不凡。
nginx的编译参数如下:
[root@localhost]#./configure --prefix=/usr/local/server/nginx --with-openssl=/usr/include
--with-pcre=/usr/include/pcre/ --with-http_stub_status_module --without-http_memcached_module
--without-http_fastcgi_module --without-http_rewrite_module --without-http_map_module
--without-http_geo_module --without-http_autoindex_module
在这里,需要说明一下,由于nginx的配置文件中我想用到正则,所以需要 pcre 模块的支持。我已经安装了 pcre 及 pcre-devel 的rpm包,但是 ngxin 并不能正确找到 .h/.so/.a/.la 文件,因此我稍微变通了一下:
[root@localhost]#mkdir /usr/include/pcre/.libs/
[root@localhost]#cp /usr/lib/libpcre.a /usr/include/pcre/.libs/libpcre.a
[root@localhost]#cp /usr/lib/libpcre.a /usr/include/pcre/.libs/libpcre.la
然后,修改 objs/makefile 大概在908行的位置上,注释掉以下内容:
./configure --disable-shared
接下来,就可以正常执行 make 及 make install 了。
2.) 修改配置文件 /usr/local/server/nginx/conf/nginx.conf
以下是我的 nginx.conf 内容,仅供参考:
#运行用户
user nobody nobody;
#启动进程
worker_processes 2;
#全局错误日志及pid文件
error_log logs/error.log notice;
pid logs/nginx.pid;
#工作模式及连接数上限
events {
use epoll;
worker_connections 1024;
}
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
#设定mime类型
include conf/mime.types;
default_type application/octet-stream;
#设定日志格式
log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$gzip_ratio"';
log_format download '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$http_range" "$sent_http_content_range"';
#设定请求缓冲
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
#开启gzip模块
gzip on;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain;
output_buffers 1 32k;
postpone_output 1460;
#设定access log
access_log logs/access.log main;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
#设定负载均衡的服务器列表
ups教程tream mysvr {
#weigth参数表示权值,权值越高被分配到的几率越大
#本机上的squid开启3128端口
server 192.168.8.1:3128 weight=5;
server 192.168.8.2:80 weight=1;
server 192.168.8.3:80 weight=6;
}
hessian是什么?
看到这个单词我还不知道怎么读,音标是[hes]读黑森。
hessian是一个轻量级的远程的数据交换工具,使用简单的方法提供了rmi(远程方法调用)的功能. 相比webservice,hessian更简单、快捷。采用的是二进制rpc协议,因为采用的是二进制协议,所以它很适合于发送二进制数据
hessian是独立于语言的。
二、在php教程中怎么用的呢?
你是不是认为这个和soap一样在php.ini中开启一个就可以使用了,我也这么认为的。可
是我要告诉你的是这样的想法是错误的。
需要去下载一个hessianphp的库来使用。
下载地址http://hessianphp.sourceforge.net/
三、看看怎么使用。
1、服务器端。
复制代码 代码如下:
<?php
include_once('hessianphp/dist/hessianservice.php');
class helloworldservice
{
public function __construct()
{
}
public function add($a, $b)
{
return $a+$b;
}
}
$wrapper = new hessianservice();
$wrapper->registerobject(new helloworldservice);
$wrapper->displayinfo = true;
$wrapper->service();
?>
服务器端结果
2、客户端
复制代码 代码如下:
<?php
require_once 'hessianphp/dist/hessianclient.php';
hessian::errorreporting(hessian_silent);
$url = 'http://localhost/info.php';
$proxy = & new hessianclient($url);
$sum = $proxy->add(3, 5);
echo $sum;
if(hessian::error()) {
$errors = hessian::error();
print_r($erros->message);
//var_dump($errors);
}
?>
client结果
IIS+PHP 不能加载MYSQL undefined function mysql教程_connect()
在很多php教程初学者都会在初次php mysql时出来undefined function mysql_connect() 错误提示,下面我们来分析原因中。
一、
将PHP.ini中以下几个参数前面的“;”去掉:
;extension=php_dba.dll
;extension=php_gd2.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_pdo.dll
;extension=php_pdo_mysql.dll
保存文件,重启IIS
具体说明
php.ini里面把
;extension=php_mysql.dll
改成
extension=php_mysql.dll
extension_dir = " "
改成
extension_dir = "ext/ "
再把libmysql.dll复制到system32下最后再重启一下即可
测试php mysql是否可以连接
<?php
$link=mysql_connect( 'localhost ', 'root ', '123456 ');
if(!$link) echo "fail ";
else echo "success ";
mysql_close();
?>
二、
1.php_info() 查一下是否有mysql这一项(搜"mysql"关键字),如果有可能是版本兼容性问题
2.如果没有将php文件里的libmysql.dll复制到x:windowssystem32下 将php.ini里mysql模块的注释去掉 extension=php_mysql.dll 重启apache 如果还不行 重启一下机器试试 测试使用php_info()这个函数测试。
右键单击我的电脑->属性->高级->环境变量->系统环境变量
a. 在“系统环境变量”选中Path使这一行处于高亮状态,然后选择“编辑”,在变量值的最后加上“;D:php”(php.exe所在目录)
b. “系统环境变量”->“新建”->变量名“PHPRC”->变量值“D:php”(php.ini所在目录)->
2.察看 httpd.conf 文件中的PhpIniDir的设置 要指向 Php的目录。
3.尝试将 httpd.conf中的 PhpIniDir="C:/Php",改变成 PhpIniDir="C:Php"。
Windows下的Memcache安装:
1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:memcached
2. 在终端(也即cmd命令界面)下输入 ‘c:memcachedmemcached.exe -d install' 安装
3. 再输入: ‘c:memcachedmemcached.exe -d start' 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。
4.下载php教程_memcache.dll,请自己查找对应的php版本的文件
5. 在C:winntphp.ini 加入一行 ‘extension=php_memcache.dll'
6.重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!
memcached的基本设置:
-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助
Memcache环境测试:
运行下面的php文件,如果有输出This is a test!,就表示环境搭建成功。开始领略Memcache的魅力把!
< ?php
代码如下 | 复制代码 |
$mem = new Memcache; $mem->connect(”127.0.0.1″, 11211); $mem->set('key', ‘This is a test!', 0, 60); $val = $mem->get('key'); echo $val; |
?>