关键字:apache+mysql+php apache mysql php 配置 lamp 服务器 web
Linux+Apache+Mysql+PHP典型配置
调试环境:Redhat9.0 Apache1.3.29 Mysql3.23.58 PHP4.3.4
Linux系统的安装我就不讲了,这是基本功,其实这篇文章在类似Redhat的其他linux也应该通用,大家只要掌握我提供的方法就行。记得安装Redhat9。0的时候不要安装系统默认的apache,mysql和php以及相关的软件。已经安装的请用rpm -e * 删除已经安装的包。
1.安装Mysql3.23.58
其实老实说直接安装Mysql官方网站提供的rpm包也是一个比较可行的办法,他的官方网站的rpm包的提供基本跟tar包发行是同步的,这点我比较喜欢,至少安装rpm包的在后面的调试中不会出现mysql库文件找不到的情况。但这里还是有必要讲一下自定义安装的步骤,毕竟网友自定义安装的还说挺多的。
软件获取:http://www.mysql.com/downloads/index.html
安装步骤:
tar zxvf mysql-3.23.58.tar.gz
cd mysql-3.23.58
./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql
make
make install
#prefix=/usr/local/mysql mysql安装的目标目录
#sysconfdir=/etc my.ini配置文件的路径
#localstatedir=/var/lib/mysql 数据库存放的路径
安装完以后要初始化数据库,当然你是升级的话不用做这步;
/usr/local/mysql/bin/mysql_install_db
如果系统没有mysql这个用户的话,最好做以下这步:
useradd -M -o -r -d /var/lib/mysql -s /bin/bash -c "MySQL Server" -u 27 mysql
然后我启动mysql
/usr/local/mysql/bin/safe_mysqld &
ok,先看看mysql能否正常工作
mysql -uroot mysql
一般情况下都是不能正常链接数据库,错误提示一般为:
ERROR 2002: Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock'' (2)
其实网上大家问的最多的都是整个问题,说什么链接不到mysqld.sock,其实大家不妨看看mysql的错误日志就明白怎么回事,我这里的错误日志是在
/var/lib/mysql/*.err 你会发现mysql只所以不能启动,是因为/var/lib/mysql的权限不允许mysql服务访问,英文mysql默认是调用mysql用户来启动服务的,好了,既然知道是什么原因找到不能启动,那就简单了。我们只要
chown -R mysql:mysql /var/lib/mysql 就行,如果还是启动不了,再慢慢调试权限,反正一般启动不了都是权限的问题。
如果大家还是不能启动不了的话,那就用我的比较繁琐的权限的设置,反正我每次都是这么做的,一般不会有问题,见下:
chown -R root /usr/local/mysql
chgrp -R mysql /usr/local/mysql
chown -R root /usr/local/mysql/bin
chgrp -R mysql /usr/local/mysql/bin
chgrp -R mysql /var/lib/mysql
chmod 777 /var/lib/mysql
chown -R root /var/lib/mysql/mysql
chgrp -R mysql /var/lib/mysql/mysql
chmod 777 /var/lib/mysql/mysql
chown -R root /var/lib/mysql/mysql/*
chgrp -R mysql /var/lib/mysql/mysql/*
chmod 777 /var/lib/mysql/mysql/*
chmod 777 /usr/local/mysql/lib/mysql/libmysqlclient.a
做完上面的步骤,然后把你编译目录的一个脚本COPY过去
互联网的今天,AJAX已经不是什么陌生的词汇了。说起AJAX,可能会立即想起因RSS而兴起的XML。XML的解析,恐怕已经不是什么难题了,特别是PHP5,大量的XML解析器的涌现,如最轻量级的SimpleXML。不过对于AJAX来说,XML的解析更倾向于前台Javascrīpt的支持度。我想所有解析过XML的人,都会因树和节点而头大。不可否认,XML是很不错的数据存储方式,但是其灵活恰恰造成了其解析的困难。当然,这里所指的困难,是相对于本文的主角--JSON而言。
JSON为何物?我就不重复概念了。通俗的说,它是一种数据的存储格式,就像PHP序列化后的字符串一样。它是一种数据描述。比如我们将一个数组序列化后存放,就可以很容易的反序列化后应用。JSON也是如此,只不过他搭建的是客户端Javascrīpt和服务端PHP的交互桥梁。我们用PHP生成JSON后的字符串,然后把这个字符串传给前台Javascrīpt,Javascirpt就可以很容易的将其反JSON然后应用。说通俗点,它真的很像数组。
言归正传,如何使用JSON。PHP5.2开始内置了JSON的支持。当然,如果低于这个版本的话,那么市面上有很多PHP版本的实现,随便下一个用就OK啦。现在主要是说说PHP内置支持的JSON。很简单,两个函数:json_encode和json_decode(跟序列化很像啦)。一个编码,一个解码。先看看编码的使用:
<?php
$arr = array(
''name'' => ''陈毅鑫'',
''nick'' => ''深空'',
''contact'' => array(
''email'' => ''shenkong at qq dot com'',
''website'' => ''http://www.chenyixin.com'',
)
);
$json_string = json_encode($arr);
echo $json_string;
?>
很简单的将一个数组JSON了。需要指出的是,在非UTF-8编码下,中文字符将不可被encode,结果会出来空值,所以,如果你使用gb2312编写PHP代码,那么就需要将包含中文的内容使用iconv或者mb转为UTF-8再进行json_encode,上面输出结果如下:
{"name":"u9648u6bc5u946b","nick":"u6df1u7a7a","contact":{"email":"shenkong at qq dot com","website":"http://www.chenyixin.com"}}
我都说了和序列化很像,你还不信。编码后就要解码,PHP提供了相应的函数json_decode,json_decode执行后,将会得到一个对象,操作如下:
<?php
$arr = array(
''name'' => ''陈毅鑫'',
''nick'' => ''深空'',
''contact'' => array(
''email'' => ''shenkong at qq dot com'',
''website'' => ''http://www.chenyixin.com'',
)
);
$json_string = json_encode($arr);
$obj = json_decode($json_string);
print_r($obj);
?>
访问对象内的属性会吧?$obj->name,这样子的,当然,也可以把它转位数组,方便调用啦:
$json_string = json_encode($arr);
$obj = json_decode($json_string);
$arr = (array) $obj;
print_r($arr);
PHP转来转去的用途不是特别大,除了缓存生成,感觉还不如直接存数组呢,不过,
■PDO为何物?
POD(PHP Data Object)扩展在PHP5中加入,PHP6中将默认识用PDO连接数据库,所有非PDO扩展将会在PHP6被从扩展中移除。该扩展提供PHP内置类 PDO来对数据库进行访问,不同数据库使用相同的方法名,解决数据库连接不统一的问题。
我是配置在windows下做开发用的。
■PDO的目标
■安装PDO
我这里是WINDOWS下开发用的PDO扩展,要是你要在Linux下安装配置,请到别的地方寻找。
版本要求:
php5.1以及以后版本的程序包里已经带了;
php5.0.x则要到pecl.php.net下载,放到你的扩展库,就是PHP所在的文件夹的ext文件夹下;
手册上说5.0之前的版本不能运行PDO扩展。
配置:
修改你的php.ini配置文件,使它支持pdo.(php.ini这个东西没有弄懂的话,先弄清楚,要修改调用你的phpinfo()函数所显示的那个php.ini)
把
extension=php_pdo.dll前面的分号去掉,分毫是php配置文件注释符号,这个扩展是必须的。
往下还有
;extension=php_pdo.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_informix.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
各各扩展所对应的数据库是:
Driver name | Supported databases |
---|---|
PDO_DBLIB | FreeTDS / Microsoft SQL Server / Sybase |
PDO_FIREBIRD | Firebird/Interbase 6 |
PDO_INFOR |
Server端+Client端
上篇用了wsdl这个写不用wsdl的.
声明:很简单!!!!!!
参考了如下:
http://blog.111cn.net/phphot/archive/
类文件
<?php
/**
* 实现业务逻辑的类,此类是一个普通类
*
*/
class Basic {
/**
* 返回一个字符串:Hello World!
*
* @return string
*/
public function returnString($test){
return "Hello World!".$test;
}
}
?>
Server
<?php
/**
* Web Service的Server端,包含类文件。
*/
require_once("basic.php");
/**
* 创建Server对象
*/
$arrOptions = array(''uri''=>''checkAPI''); //设置命名空间
$objSoapServer = new SoapServer(null,$arrOptions);
/**
* 注册Basic类的所有方法
*/
$objSoapServer->setClass("Basic");
/**
* 处理请求
*/
$objSoapServer->handle();
?>
Client
<?php
/**
* Client端,首先创建Client对象
*/
$arrOptions = array(''uri''=>''checkAPI'', //设置命名空间
''location''=>''http://localhost/user/soaptest.php'', //设置Server地址
''trace''=>true);
$objSoapClient = new SoapClient(null,$arrOptions);
/**
* 远程调用
*/
$test=''ok123'';
try{
$strReturn = $objSoapClient->returnString($test);
}catch(Exception $e){
}
/**
* 打印结果
*/
echo $strReturn;
?>
您可能感兴趣的文章:
IntelliJ IDEA2021.1 配置大全(超详细教程) 2021-04-18Windows VPN服务器配置图文教程 超详细版 2016-01-27Tomcat配置及如何在Eclipse中启动 2021-02-04Laravel4安装配置的方法 2016-11-25MySQL性能监控软件Nagios的安装及配置教程 2015-12-14node.js如何操作MySQL数据库 2020-10-29详解Mysql中的JSON系列操作函数 2016-08-23配置vue全局方法的两种方式实例 2021-09-13MySQL 字符串拆分操作(含分隔符的字符串截取) 2021-02-22详解Maven profile配置管理及激活profile的几种方式 2021-01-26深入研究mysql中的varchar和limit(容易被忽略的知识) 2015-03-15mysql的3种分表方案 2014-05-31IDEA如何添加配置文件到classpath中 2020-09-19Vue-Router的routes配置详解 2021-10-25Windows服务器MySQL中文乱码的解决方法 2015-03-15华为畅享20Pro配置怎么样?华为畅享20Pro参数配置分析 2020-06-29用VirtualBox构建MySQL测试环境 2013-09-19Centos5.5中安装Mysql5.5过程分享 2015-03-15查找php配置文件php.ini所在路径的二种方法 2014-05-31部署PHP时的4个配置修改说明 2015-10-21