[Linux] RHEL部署LAMP

1.Apache

源码包安装apche过程中需要依赖一下的包:

    apr-1.4.5.tar.gz

    apr-util-1.3.12.tar.gz

    pcre-8.30.tar.gz

        httpd-2.2.4.tar.gz

 

1.下载apr的源码包(http://apr.apache.org/download.cgi),解压

    tar -zxf apr-1.4.5.tar.gz

    指定安装目录:       

    ./configure --prefix=/home/software/apr

    编译安装

    make

    make install

2下载apr-util的源码包(http://apr.apache.org/download.cgi

解压

    tar -zxf apr-util-1.3.12.tar.gz

    编译安装:

    ./configure --prefix=/home/sofware/apr-util--with-apr=/home/software/apr

3.下载pcre源码包(pcre.org)

    解压:

    tar -zxfpcre-8.30.tar.gz

    编译安装:

    ./configure --prefix=/home/serapy

    make

    make install

    注:编译过程中可能出下如下错误

    make libtool: compile: unrecognized option`-DHAVE_CONFIG_H

    这是需要安装gcc-c++

    yum -y install gcc-c++

    然后在重新编译安装

4.安装apache

       下载httpd-2.2.4.tar.gz

     ./configure --prefix=/home/software/apache--with-apr=/home/software/apr--with-apr-util=/home/software/apr-util/ --with-pcre=/home/software/

    make

    make install

    编辑apache/conf/httpd.conf ,注销掉ServerName的注视,将ServerName 后的主机名更改为本机名

        vim httpd.conf

      启动apache 

       /home/software/apache/bin/apachectl start

注:RHEL可能默认安装了httpd2.2.3

[root@slave1 ~]#rpm -qa |grep httpd

httpd-2.2.3-43.el5

可以将其删除,以免和新安装的apache混淆。

:可能会出现如下的错误:

    (13)Permission denied: make_sock: could not bind to address[::]:80

    (13)Permissiondenied: make_sock: could not bind to address 0.0.0.0:80

     no listening sockets available, shuttingdown

     Unable to open logs

这是由于普通账号默认无权启动监听80端口的

还有可能在访问过程中出现:you don't have permission to access / onthis server

这可能是由于:/home/software其他人没有读和可执行权限的原因

2.MySQL

采用源码安装的方式,需要以下依赖包

cmake-2.8.8.tar.gz

ncurses-devel

mysql-5.5.28.tar.gz

1.安装cmakencurses-devel

  I>

下载cmake源码包: cmake-2.8.8.tar.gz

  解压,进入解压目录,编译安装

   ./configure --prefix=/home/mango/cmake

   make

   makeinstall

    II>

     cmake mysql时需要依赖包:ncurses-devel ,先确认系统安装了该包

2.安装mysql

   下载mysql源码包:mysql-5.5.25.tar

   解压 ,重命名为mysqlmove/home/mango/ 目录下 (:这里希望mango用户来管理mysql,将mysql安装到了mango用户的home目录,要确保安装目录有755权限)

   进入解压目录编写编译脚本:mysql.sh,内容如下(使用时,将注释删除掉)

#!/bin/sh

/home/software/cmake/bin/cmake-DCMAKE_INSTALL_PREFIX=/home/mango/mysql \#安装目录

      -DMYSQL_DATADIR=/home/mango/mysql/mysqldata\#据库存放地址

      -DSYSCONFDIR=/home/mango/mysql/mysql/ect   \#配置文件存放地址

      -DWITH_INNOBASE_STORAGE_ENGINE=1            \

      -DWITH_ARCHIVE_STORAGE_ENGINE=1             \

      -DWITH_BLACKHOLE_STORAGE_ENGINE=1           \

      -DWITH_FEDERATED_STORAGE_ENGINE=1           \

      -DWITH_PARTITION_STORAGE_ENGINE=1           \

     -DMYSQL_UNIX_ADDR=/home/mango/mysql/tmp/mysqld.sock\#UNIX套接字文件地址

       -DENABLED_LOCAL_INFILE=1              \#许从本地导入数据

       -DEXTRA_CHARSETS=all                \#装所有扩展字符集

       -DMYSQL_USER=mango                 \

       -DDEFAULT_CHARSET=utf8                \#据库的编码配置

      -DDEFAULT_COLLATION=utf8_general_ci        \

       -DMYSQL_TCP_PORT=3306               #听端口

###################################################################################

    然后编译:

bash  mysql.sh

      期间可能出错需要安装:ncurses-devel

      之后删除CMakeCatche,安装ncurses-devel

      重新编译:

bash mysql.sh

      make

      make install

      进入mysql安装目录下的脚本目录

      cd/home/mango/mysql/scripts

      安装mysql默认数据库

      ./mysql_install_db--basedir=/home/mango/mysql --datadir=/home/mango/mysql/mysqldata--user=mango

      配置文件

     cp support-files/my-medium.cnf/home/mango/mysql/my.cnf

注:是将my.cnf直接放到mysql的安装目录下,而非mysql/etc/下 

//这个配置仅适合小内存系统(32M - 64M)

     打开如下注释:

        innodb_data_home_dir = /usr/local/mysql/data

           innodb_data_file_path = ibdata1:10M:autoextend

       innodb_log_group_home_dir= /usr/local/mysql/data

       innodb_buffer_pool_size= 16M

       innodb_additional_mem_pool_size= 2M

       innodb_log_file_size= 5M

       innodb_log_buffer_size= 8M

       innodb_flush_log_at_trx_commit = 1

       innodb_lock_wait_timeout= 50

skip-name-resolve  #这个很重要,能提升远程主机访问mysql的速度

     添加默认字字符集:(测试的时候,启动Mysql报错,提示unknown variable'default-character-set=utf8';好像系统默认就是utf8)

      [client]

       default-character-set = utf8   // 添加编码支持

      [mysqld]

       default-character-set= utf8   // 添加编码支持

       basedir = /usr/local/mysql

 //设置安装目录,这样在系统启动时才能正确运行到/etc/rc.d/init.d/mysql start

         

    可能还需要添加

      [mysqld_safe]

       log-error =/home/mango/mysql/var/log/mysqld.log

      pid-file = /home/mango/mysql/var/mysqld.pid

   启动和关闭:

    sumango  #进入安装mysql的账户,编辑~./bashrcmysql路径添加到PATH变量

   ./bin/mysqld_safe --basedir=/home/mango/mysql--datadir=/home/mango/mysql/mysqldata --user=mango& //启动MySQL

     注:首次启动MySql后,root密码为空,可以通过如下命令进入

      mysqladmin -u root -p shutdown  

//这里Mysqlroot用户还没有配置密码,所以为空值

Mysql创建用户及权限设置:

1.root用户登录mysql

mysql –uroot –p

2.创建用户 mango

#创建用户mango,可以从localhost主机登录数据库。

      create user'mango'@'localhost' identified by 'mango';

#赋予权限,可以从任意主机登录数据库(使用了通配符:%;

      grantall privileges on *.* to 'mango'@'%' identified by'mango';

3种命令行参数可以影响mysql读取配置文件的行为:

--no-defaults:mysql不读取任何配置文件

--defaults-file=/path/to/filemysql只读取该指定文件,--defaults-extra-file指定的其它文件

--defaults-extra-file=/path/to/filemysql读取/etc/my.cnf全局配置文件之后再读取指定文件

注:

1.启动过程中可能出现权限问题,这是可能在系统的/etc/目录下也有一个my.cnf配置文件,删除即可

   2.还可能出现执行语句:

    ./mysqladmin-u mango -p shutdown 没有权限的问题

    这样即可:

    ./mysqladmin-u root -p shutdown

   3.mysql.sock丢失恢复,突然mysql.sock没有了。数据库崩溃了启不来。

    解决方法如下:

Mysql文件mysql.sock丢失的原因一般是因为配置文件不一致的原因,mysqld 错误启动,mysqld_safe 会清除一次mysql.sock 。判断解决故障时没有切换到mysql用户,造成权限有问题,无法创建mysql授权表,所以也就无法创建/tmp/mysql.sockhostname.pid文件。

因此,总结解决方法如下:

mysql_install_db//重建授权表

mysqld_safe&

mysql//测试

mysq>bye;

文件已经解决,重新生成新的 tmp/mysql.sockhostname.pid

4.启动报错:unknown variable'default-character-set=utf8'

default-character-set=utf8这个设置项惹得祸....

因为MYSQL 5.5修改了字符集设置参数

应该改成:

character_set_server=utf8 取代default-character-set=utf8 

3.PHP

1.下载源码包php-5.4.3.tar.gz

2.解压

3.编译安装

 ./configure--prefix=/home/mango/php --with-apxs2=/home/mango/apache/bin/apxs--with-mysql=/home/mango/mysql

注:编译时,提示错误:configure: error: xml2-config not found. Pleasecheck your libxml2 installation 需要安装libxml2libxml2-devel

     重新编译

    make

    make install

配置文件:

    cp php.ini-development /home/mango/php/php.ini

可以参考一下方式:

   ./configure --prefix=/home/mango/php //安装位置

    --enable-mbstring   //设置phh支持多字节字符串

  --with-apxs2=/home/mango/apache/bin/apxs //设置apache服务支持apxs位置

    --with-mysql=/home/mango/mysql //设置 mysql 程序安装位置

    --with-config-file-path=/home/mango/php //设置php 程序配置文件位置

4.配置APACHE,支持 .PHP

     编辑APACHE配置 vim/home/software/apache2/conf/httpd.conf    

     搜索 AddType   找到类似AddType application/x-compress .Z

     在其下增加一行 

     AddType application/x-httpd-php .php.phtml

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

5.重启apache

6.写如下测试页测试:

cd/home/software/apache2/htdocs

#(apache2网页文档地址由apache2/conf/httpd.conf中的DocumentRoot指定 )

viminfo.php

写入以下内容:

   <?php

    phpinfo();

  ?>

访问 localhost/info.php 出现版本信息界面

 

4.phpMyAdmin

 

1.下载源码包

  phpMyAdmin-3.3.1-all-languages.tar.gz

2.解压

3.把解压后的文件放到apache网页的存放路径下

     #重命名为phpadmin,并放到apache网页的存放路径

mv phpMyAdmin-3.3.1-all-languages  phpadmin

mv phpadmin /home/software/apache2/htdocs/

4.更改配置

    cd /home/software/apache2/htdocs/phpadmin

    cp config.sample.inc.php config.inc.php

        编辑 配置文件

    vi config.inc.php

对如下的字段进行配置即可,没有的可以自己添加:

$cfg['Servers'][$i]['auth_type'] ='http';//认证模式,可以有cookiehttpconfig

$cfg['Servers'][$i]['host'] ='localhost';//设置你的数据库服务器的访问IP

$cfg['Servers'][$i]['user'] = 'root';//config认证模式时的访问用户名

$cfg['Servers'][$i]['connect_type'] ='tcp';// 连接方式,tcp(默认)socket

$cfg['Servers'][$i]['extension'] = 'mysqli'; //MYSQL扩展,可以为mysqlmysqli(推荐mysql4.1.0以上版本

注:登录过程中可能出现的问题:

1.PHPMYADMIN打开登录页面的时候提示缺少mysqli 扩展,请检查 PHP配置

在系统里搜索了下mysqli.so文件,结果没有,于是只有手动编译mysqli扩展文件

进入开始安装php环境时的php源码包,如果已经删除的话可以再下载一个相同版本php包解压即可

[root@test soft]#cd php-5.2.1

[root@testphp-5.2.1]# cd ext/mysqli/

[root@testmysqli]# /usr/local/php/bin/phpize

Configuringfor:

PHP ApiVersion:     20041225

Zend Module ApiNo:   20060613

Zend Extension ApiNo:   220060519

[root@testmysqli]# ./configure --prefix=/usr/local/mysqli--with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config

[root@testmysqli]# make

[root@testmysqli]# make test

[root@testmysqli]# make install

Installing sharedextensions:  /usr/local/php/lib/php/extensions/no-debug-zts-20060613/然后编辑php.ini文件

[root@testmysqli]# vi /etc/php.ini找到extension_dir = "./"修改为

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

extension ="mysqli.so"重新启动apache即可看到已经加载mysqli成功,我的环境下重启apache没有成功,重启下服务器即可生效

其他扩展也是同样的方法

2.总是无法登录,即使输入正确密码,也只是刷新一下页面,登录不成,并且最要命的是没有任何错误提示

    打开config.inc.php

     $cfg['Servers'][$i]['auth_type'] = 'cookie';

    改成:

     $cfg['Servers'][$i]['auth_type'] = 'http';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值