代码改变世界

LANMP安装总结

2011-09-22 18:52  PHP淮北  阅读(3411)  评论(0编辑  收藏  举报

Centos系统安装总结

 

 

LANMP环境搭建总结:

 

步骤

1

2

3

4

5

6

安装

liunx

apache

mysql

php

nginx

优化配置

备注

Centos5.5

   

组件:memcache,mongodb,eaccelerator等等

 

Apache/nginx

 

这次主要是在centos上搭建apache php nginx mysql等环境,实现nginx和apache共存


①安装linux支持②安装PHP支持


以memcache为例:其中php安装在/usr/local/php

 

①安装linux支持memcache

 

wget http://memcached.googlecode.com/files/memcached-1.4.0.tar.gz //下载
tar zxvf memcached-1.4.0.tar.gz //解压
cd memcached-1.4.0
./configure //编译
make
make install //安装



启动:/usr/local/bin/memcached -d -m 256 -u root

 

检查tcp 11211端口是否打开memcache默认11211端口

netstat -anp | grep 11211


 

加入开机自启动:

echo "/usr/local/bin/memcached -d -m 256 -u root" >> /etc/rc.local


 

 

安装memcache的php模块支持

Wget http://pecl.php.net/get/memcache-2.2.5.tgz //下载

tar vxzf memcache-2.2.5.tgz
cd memcache-2.2.5
/usr/local/php/bin/phpize  //很重要,下面又详解
./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir

make
make install 

 

 

复制memcache.so文件到/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613

修改php.ini文件

将extension_dir="/"修改为:

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613"

extension=memcache.so

重启apache,查看phpinfo网页,查看memcache模块是否被正确加载

 

**************************************************************************************

phpize是什么东西呢?php官方的说明:
http://php.net/manual/en/install.pecl.phpize.php

phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块

比如你想在原来编译好的php中加入memcached或者ImageMagick等扩展模块,都可以可以使用phpize,使用方法同上


器的

第一种命令行模式:

①数据导出②创建对应表 ③导入数据

1.导出整个数据库  mysqldump -u 用户名 -p 数据库名 > 导出的文件名

  mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql

2.导出一个表

  mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

  mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql


3.导出一个数据库结构

  mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql

  -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table


4.导入数据库

  常用source 命令

  进入mysql数据库控制台,

  如mysql -u root -p

  mysql>use 数据库

  然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

  mysql>source d:wcnc_db.sql  (注:如果写成source d:\wcnc_db.sql,就会报语法错误)

 

第二种模式:使用图形界面管理工具

使用图形界面管理工具

步骤:①进入mysql命令行模式---②对远程使用客户端主机进行授权

/usr/local/mysql/bin/mysql -uroot -p123456  //进入mysql管理界面


出现错误:

ERROR 1045 (28000):
Access denied for user 'root'@'localhost' (using password: YES) 

解决办法:

/usr/local/mysql/share/mysql/mysql.server stop  //先关闭mysql

/usr/local/mysql/bin/ mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 

/usr/local/mysql/bin/mysql -u root mysql

UPDATE user SET Password=PASSWORD('123456') where USER='root';//修改密码

重启mysql服务

 

**************************

对本地ip192.168.1.48进行授权:

 

mysql> grant all on *.* to root@'192.168.1.48' identified by '123456';//授权ip访问权限

********************************************************************

本地使用数据库管理工具:

使用数据库管理工具--连接数据管理数据

报错:error no 2003 can't connect to mysql server on192.168.1.23

我的问题可能是防火墙没有关闭,解决办法两种:

关闭防火墙⑴service iptables stop (临时关闭)

 chkconfig iptables off (重启生效的)

********连接成功

 

 

归纳如下:

故障现象 : 无法连接 mysql 
===================================================================================
错误信息 :ERROR 2003 (HY000): Can't connect to MySQL server on 'hostxxxxx' (10061)
原因 : mysqld数据库服务没有启动。
检查 :在windows 的任务管理器,或者 unix/linux 下 ps -aux | grep mysql 看一下。确认服务已经启动。
处理 :启动mysqld 服务
===================================================================================
错误信息 :ERROR 1130: Host xx.xx.xx.xx is not allowed to connect to this MySQL server 
原因 : mysql服务器没有赋予此客户端远程连接的权限。 
检查 :在mysql服务器本地查询mysql库里user表对应的host是否包含客户端机器的IP(%为不限制IP允许远程连接)。 
处理 :修改mysql库下的user表:update user set host = '%' where user ='XXX';flush privileges;
===================================================================================
错误信息 :ERROR 1045 (28000): Access denied for user 'usera'@'localhost' (using password:YES)
原因 : 用户账号并未创建
检查 :以管理员ROOT登录后,show grants for 'usera'@'localhost'; 或者 select user from mysql.user; 确认用户账号是否存在。
处理 :创建用户账号。
===================================================================================
错误信息 :ERROR 2003 (HY000): Can't connect to MySQL server on 'hostxxxxx' (10061) 
原因 : mysqld 客户端与服务端端口不一致。 
检查 :在my.ini 设置下服务端口 这种情况特别是客户都与远程服务器端口不一致 很容易出现的问题
处理 :启动mysqld 服务 
===================================================================================
错误信息 :ERROR 2002 (HY000): Can't connect to local MySQL server server through socket '/var/lib/mysql/mysql.sock'(111) 
原因 : mysqld的mysql.sock没在相应的位置。
处理 :1.先查看/etc/rc.d/init.d/mysql status 看看是否启动
  2.改权限 chown -R mysql:msyql /var/lib/mysql
  3.修改/etc/my.cnf (注意:先停数据库)
  [mysqld]
  datadir=/usr/local/mysql/data
  socket=/var/lib/mysql/mysql.sock
  [mysql.server]
  user=mysql
  basedir=/usr/local/mysql
  [client]
  socker=/var/lib/mysql/mysql.sock
  4.启动数据库
===================================================================================

数据库连接问题总结(转csdn)
常用检查步骤。

1. PING hostname 或 PING 189.xx.xx.xx 确认服务器IP层通信没有问题。如果PING通则继续(2),PING不通则找网络方面专家协助。
2. TELNET hostname 3306 确认服务器TCP层通信没有问题。(你的端口号可能不是3306),如通则继续,如不通,请检查mysqld 是否已经在运行,防火墙屏蔽了端口。
3. 检查用户权限, show grants ...

 

转载一个:mysql忘记root密码拯救方法(flush privileges)