lamp安装配置详细过程(把以前的笔记贴上来)

准备;

首先进入/usr/local/目录

#cd /usr/local

删除所有安装过的php mysql apache 以及libxml

首先查看目前 /usr/local目录下面的内容

#ls –l

如果看到php5 php apache2 apache mysql mysql5 libxml libxml2字样的目录都将其删除具体命令如下

#rm –rf php5    删除php5目录

#rm –rf libxml2  删除libxml2目录

进入home目录

#cd /home

删除已经解压缩的的安装程序

首先查看已经解压缩了那些程序

#ls –l

注意蓝色的字样的都为已经解压缩的目录

将其删除

如:

#rm –rf http-2.2.11

#rm –rf php-5.2.3

#rm –rfmysql-5.0.41-linux-i686

#rm –rf libxml2-2.6.30

删除完毕后,最好重新启动下linux操作系统

#reboot

1:安装apache2。

1.  进入/home目录(如果虚拟机的,先从别的地方拷到这个目录home/xxxx/下)

# cd /home

2.  对apache2安装文件包进行解压缩  解压httpd-2.2.11.tar.gz

#tar –zvxf  httpd-2.2.11.tar.gz

解压完毕后,进入httpd-2.2.11目录

# cd httpd-2.2.11

. 在/usr/local/下面创建一个要安装过去的目录apache2

# mkdir –p  /usr/local/apache2

4 .配置安装环境( 设置apache的安装路径)

# ./configure–prefix=/usr/local/apache2 –enable-modules=so–enable-rewrite

(–enable-dav 安装mod_dav模块);

5 .编译(make)和安装(make install)

# make; make install

编译安装完毕后启动apache2服务器

#/usr/local/apache2/bin/apachectl -k start

用浏览器查看http://127.0.0.1,得到it works,说明apache已经配置成功了。

系统启动时自动加载Apache:

1. 在/etc/rc.d/rc.local中增加启动apache的命令,例如:/usr/local/httpd/bin/httpd               

2.cp/usr/local/apache/bin/    httpd /etc/rc.d/init.d/httpd 

3.可以用servicehttpd start启动

正常启动: /usr/local/apache2/bin/httpdstart apaceh启动

/usr/local/apache2/bin/apachectlstop   停止    

/usr/local/apache2/bin/apachectlrestart 重启

6. apache以指定的用户运行;

安装的时候,apache自动以daemon用户运行。如果想以自定义用户如www-data运行:

$ useradd www-data

$ vi httpd.conf

修改其中的内容:

user daemon  改为 user www-data

group daemon 改为 group www-data

2:安装mysql

2.1 Mysql resource的安装

进入home目录

#cd /home

对mysql安装文件进行解压缩

# tar -zvxfmysql-5.0.41-linux-i686.tar.gz

进入mysql解压的源码文件目录:

#cd /home/hguisu/mysql-5.0.14

#设置mysql的安装路径:

./configure–prefix=/usr/local/mysql   

编译,进行安装:

make && make install

2.2  Mysql binary的安装

进入home目录

#cd /home

对mysql安装文件进行解压缩

# tar -zvxf mysql-5.0.41-linux-i686.tar.g

 

#移动解压缩的内容到要安装的目录

#mv mysql-5.0.41-linux-i686   /usr/local/mysql)

(cp /home/hguisu/mysql-5.0.41-linux-i68/*   /usr/local/src/mysql

添加mysql用户及用户组

# groupadd mysql    –应该已经存在了

#useradd –d/usr/local/mysql/data –s /sbin/nologin –g mysql mysql   –应该已经存在了

进入/usr/local/mysql目录中

#cd /usr/local/mysql

修改mysql目录权限

# chown -R   root/usr/local/mysql

# chown -R   mysql/usr/local/mysql/data

# chgrp -R   mysql/usr/local/mysql

生成mysql系统数据库

# ./scripts/mysql_install_db   –user=mysql     –basedir=/usr/local/mysql

(basedir是mysql的安装目录)

由这个basedir参数指定二进制数据位置!

启动mysql服务

#/usr/local/mysql/bin/mysqld_safe –user=mysql &

如出现 Starting mysqld daemon with databases from /usr/local/mysql/data

代表正常启动mysql服务了, 按Ctrl + C 跳出

设置自动启动

#cp./support-files/mysql.server /etc/rc.d/init.d/mysqld

若提示覆盖则按y

修改权限

#chmod 700/etc/rc.d/init.d/mysqld

#chkconfig –add mysqld

测试mysql的安装

#/usr/local/mysql/bin/mysqladminping

#/usr/local/mysql/bin/mysqladminversion

#/usr/local/mysql/bin/mysql

进入mysql:cd /usr/local/mysql/bin ./mysql执行,ctrl+c退出

8、为根用户创建密码

用SET PASSWORD命令

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

  mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

 用mysqladmin

       ./mysqladmin -u root password "newpass"

  如果root已经设置过密码,采用如下方法

 ./mysqladmin -u root password oldpass "newpass"

用UPDATE直接编辑user表

        ./mysql -u root

        mysql> use mysql;

        mysql> UPDATE user SET Password =PASSWORD('newpass') WHERE user = 'root';

        mysql> FLUSH PRIVILEGES;

        在丢失root密码的时候,可以这样

        ./mysqld_safe –skip-grant-tables&

        ./mysql -u root mysql

        mysql> UPDATE user SETpassword=PASSWORD("new password") WHERE user='root';

        mysql> FLUSH PRIVILEGES;     

    我只测试了前2种,第三种不知道怎么样

错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'

解决方法:

由于mysql 默认的mysql.sock 是在/var/lib/mysql/mysql.sock,但linux系统总是去/tmp/mysql.sock查找,所以会报错

[root@localhost ~]# find / -name mysql.sock
/var/lib/mysql/mysql.sock

1.直接指定mysql通道

[root@localhost ~]# mysql –socket=/var/lib/mysql/mysql.sock
Welcome to the MySQL monitor.  Commands end with ; or /g.
Your MySQL connection id is 2 to server version: 5.0.22

Type 'help;' or '/h' for help. Type '/c' to clear the buffer.

mysql>

2. 创建符号连接:

为mysql.sock增加软连接(相当于windows中的快捷方式)。

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

eg:
root@localhost ~]# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
[root@localhost ~]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
[root@localhost ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or /g.
Your MySQL connection id is 3 to server version: 5.0.22

Type 'help;' or '/h' for help. Type '/c' to clear the buffer.

mysql>

我觉得这两个方法挺好用的

2.3  apt-get安装:

apt-get install mysql-server

apt-get install mysql-server-core-5.1

配置文件:/etc/mysql/my.cnf
启动文件位置:/etc/init.d/mysql

执行文件:/usr/bin

启动:/etc/init.d/mysql start 或者service mysql restart

问题:远程访问局域网内的mysql时出现ERROR 2003 (HY000): Can't connect to MySQL server on (10061)

解决:my.ini(my.cnf)默认的bind-address是127.0.0.1,这样的话就算你创建的用户有可以remote访问的话 也不能通过-h 来访问。 mysql只接受localhost。 所以把bind-address屏蔽掉即可。

3:安装libxml2,php5必须有libxml2支持!

进入home目录

# cd /home

解压缩libxml2-2.6.30.tar.gz

# tar -zxflibxml2-git-snapshot.tar.gz

进入刚解压缩出来的文件目录

# cd  libxml2-git-snapshot

配置安装目录信息

# ./configure  –prefix=/usr/local/libxml2 

configure: error: cannot find macrodirectory `m4'  

# mkdir/home/hguisu/libxml2-git-snapshot/m4 就OK 了。

编译和安装

# make; make install

rpm-ivhlibxml2-2.6.23-1.2.i386.rpm         

rpm-ivh libxml2-devel-2.6.23-1.2.i386.rp

或者yum install libxml2-devel.x86_64

4 .安装php5

进入home目录

# cd /home

解压缩php-5.2.3.tar.gz

# tar -zvxf php-5.2.3.tar.gz

创建/usr/local/php安装目录

# mkdir /usr/local/php

进入刚解压缩出来的目录

# cd php-5.2.3

配置安装信息

# ./configure–prefix=/usr/local/php –with-apxs2=/usr/local/apache2/bin/apxs    –with-mysql=/usr/local/mysql/     –with-libxml-dir=/usr/local/libxml2

(mysql=/usr/local/mysql/ 加载mysql模块,  –with-apxs2=/usr/local/apache2/bin/apxs配置http.conf,添加LoadModule)

编译安装

# make;make install

复制配置文件php.ini

# cp php.ini-development/usr/local/php/lib/php.ini

5:重新配置apache2让他支持php。

如果安装php的时候,configure选项带有 –with-apxs2=/usr/local/apache2/bin/apxs,就不用以下这些手工配置了。

配置 httpd.conf 让apache支持PHP

# vi/usr/local/apache2/conf/httpd.conf

在vi中的命令状态(按esc可以到命令状态)按/AddType查找到下面内容

找到 AddType application/x-gzip .gz .tgz 在其下添加如下内容(注意vi命令模式下 按键盘上的i键 进入插入编辑状态)

AddType  application/x-httpd-php .php

AddType  application/x-httpd-php-source .phps

添加完毕后 按esc到命令状态输入:wq保存退出

重启apache

#/usr/local/apache2/bin/apachectl   stop

#/usr/local/apache2/bin/apachectl   start

在/usr/local/apache2/htdocs目录里建一内容为 PHP文件info.php

#vi   /usr/local/apache2/htdocs/info.php

进入vi环境后 按i进入编辑模式

输入一下内容

<?php

echo phpinfo();

?>

然后按esc退出编辑模式到命令模式输入:wq保存退出

打开一个浏览器窗口在地址栏输入

http://127.0.0.1/info.php

如果出现配置信息的页面,就证明整个环境配置成功.

6、问题

6.1、无法加载 mysql 扩展,请检查您的 PHP 配置。

    大体方法是进入php 的源码目录下的 ext/moduledir, 也就是你想要编译的模块的源码目录下, 然后以绝对 路径的方式调用已经编译好的php 的目录下的 bin/phpize 这个程序.
    1.进入php到源目录:
    cd home/hguisu/php-5.3.2/ext/mysql
    2. 执行phpize:/usr/local/php/bin/phpize
    这样, 就会在php-5.3.2/ext/mysql 目录下, 产生一系列可以单独进行configure 和 make 的    文件 (如果要清理掉它们, 运行 /php/bin/phpize –clean ).
    3. 之后 我们运行:
    ./configure–with-php-config=/php/bin/php-config –with-mysql
    如果提示错误:configure: error: Cannot find MySQL header files under yes.

    解决:在 ./configure 下参数指定 header file 的位置(即mysql安装目录),加上如下语句:
                 –with-mysql=/usr/local/mysql
    4. 编译make

        5 .安装 make install    
    整个过程也就基本完成了.
    注意, 编译好的模块, 一般是自动安装到大概这种关系的路径下 (我的是 bsd 系统, 别的系统或许不   一样):
    /php/lib/php/extensions/no-debug-non-zts-20060613
    另外, win 下编译好的模块扩展名一般是dll, 而 unix 之类的系统则通常为 so.
    6.设置 php.ini

    在php.ini加入:extension=mysql.so,

    设置扩展路径:extension_dir ="/usr/local/php/ext/".

    把/php/lib/php/extensions/no-debug-non-zts-20060613/下的mysql.so拷到/usr/local/php/ext/"

      然后重启 http 服务器就行了

6.2、无法加载 mcrypt 扩展,请检查您的 PHP 配置。

    解决:

    安装 libmcrypt

    下载libmcrypt-2.5.8.tar.gz

    解压tar zxvf libmcrypt-2.5.8.tar.gz

    配置./configure

    编译 make

    安装 make install

    注意,这里配置的时候不需要指定安装位置,否则在以后步骤中可能出错

    进入php的安装源文件,进入php-5.3.0/ext/mcrypt

    运行/usr/local/php/bin/phpize

    这时可能说没有autoconf这个软件,就装一下apt-get install autoconf,当然自己编译也可以

    再次运行/usr/local/php/bin/phpize

    会产生configure等文件

    然后配置./configure –with-php-config=/usr/local/php/bin/php-config

    编译make

    安装 make install

    会出现提示说在某个文件夹里面产生了一个文件mcrypt.so,这时要把这个文件移动到extension_dir里面,具体extension_dir是那个,可以参照刚安装完php之后测试时显示的信息

    然后重新编译php,回到php安装的(4)这时的配置参数要加一个–with-mcrypt

    重新编译安装php,然后成功后,重启apache进行测试

 6.3、找不到mbstring

    解决:

    进入php的安装源文件,进入php-5.3.0/ext/mbstring

    运行:

    /usr/local/php/bin/phpize

    会产生configure等文件

    然后配置./configure –with-php-config=/usr/local/php/bin/php-config

    编译make

    安装 make install

    会出现提示说在某个文件夹里面产生了一个文件mbstring.so,这时要把这个文件移动到extension_dir里面,具体extension_dir是那个,可以参照刚安装完php之后测试时显示的信息

    这次不用编译了,到php的配置文件,在extension里面添加extension=mbstring.so,然后保存后重新启动apache,如果没有达到效果,那么在后面添加绝对路径

6.4如果自己用libmcrypt、mhash、mcrypt编译mcrypt

那么记得前面个两个配置时要用默认配置,不要加参数,配置mcrypt 时安装到指定位置,这样方便重新编译php,如果在编译前面2个时用了指定位置,可能在编译mcrypt时出现以下问题

        6.3.1

        描述:

        libmcrypt cannot be found

         解决:

        cp /usr/local/lamp_other/libmcrypt/lib/libmcrypt.*/usr/lib/

        ln -s/usr/local/lamp_other/mhash/lib/libmhash.so.2 /usr/lib/libmhash.so.2

        这里/usr/local/lamp_other/libmcrypt/就是安装libmcrypt的指定路径

        6.3.2

        描述:

        "You need at least libmhash 0.8.15to compile this program.

        这个问题不知道怎么解决,有的说在编译mcrypt时用LD_LIBRARY_DIR=<mhash安装路径> ./configure –prefix=/usr/local/mcrypt,不过我没有成功过

        最直接的解决办法就是得前面个两个配置时要用默认配置,不要加参数

转自:http://blog.csdn.net/hguisu/article/details/7298973

原创文章,作者:s19930811,如若转载,请注明出处:http://www.178linux.com/3074

(0)
s19930811s19930811
上一篇 2015-04-29
下一篇 2015-05-01

相关推荐

  • Shell脚本中select、函数总结

    描述: select控制语句基于Korn Shell中的控制结构 select语句首先显示一个菜单,然后根据用户的选择给变量赋予相应的值,最后执行一系列命令。 语法: select varname [ in arg…] do    commands done 说明: select结构显示arg项的菜单。加入忽略关键字in和参数…

    Linux干货 2016-08-24
  • TCP三次握手和四次挥手

    TCP三次握手 有两台机器,A是客户端(主动发起请求的人),B是服务器端(被动接受请求的人),客户端A刚开始没有人和他通讯,所以客户端A的状态是CLOSDE(关闭的),服务器端B刚开始的状态也是CLOSDE,但是总有人去访问他,所以服务器端B开启了LISTEN(收听)状态。 (1)假设A机器想链接B机器了,他就会向B机器发送一个建立链接的请求,这个建立链接请…

    2017-08-31
  • Linux基础

    计算机组成和功能 按照Von Neumann的理解 [1],计算机分为以下几部分:     输入 (Input Device, 用于提供给计算机待处理的数据)         e.g. 键盘,…    &nbs…

    Linux干货 2016-09-27
  • Linux基础-用户管理相关操作-week 4

    1.复制/etc/skel 目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限  cp /etc/skel /home/tuser1 -rf chmod og=  /home/tuser1 -R 2.编辑/etc/group文件添加组hadoop echo hadoop:x:503 …

    Linux干货 2016-11-21
  • linux特殊权限管理

    特殊权限:SUID, SGID, STICKY 正常情况下:  1、进程以某用户的身份运行; 进程是发起此进程用户的代理,因此以此用户的身份和权限完成所有操作; 2、权限匹配模型: (1) 判断进程的属主,是否为被访问的文件属主;如果是,则应用属主的权限;否则进入第2步; (2) 判断进程的属主,是…

    Linux干货 2015-12-19
  • 当Web访问性能出现问题,如何深探?

    对运维或开发工程师来说,遇到访问性能问题时,最先需要定位的是问题出现在哪个环节,是网络的问题,服务端的问题,还是客户端的问题? 往往技术人员喜欢把精力放在保障后端服务的可用性方面,而对前端界面是否能正常装载,是否能完整渲染不是太关心。但从业务的角度来说,界面承载的才是最终的业务,业务是通过人机交互来实现的。 日常我们遇到哪些场景需要定位访问性能瓶颈? ·不同…

    系统运维 2017-01-09