erawrq 发表于 2015-3-30 08:55:57

LAMP之编译安装搭建

1、lamp简介:
    LAMP指的Linux(操作系统)、ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web应用平台。




2、搭建环境:
    系统:centos6.5-x86_64
    iptables关闭、selinux关闭、自带httpd服务关闭;

    程序:   
      mysql-5.5.33-linux2.6-x86_64.tar
      php-5.4.19.tar
      httpd-2.4.6.tar


    安装顺序:
      mysql二进制安装
      httpd编译安装
      php编译安装
   
    依赖程序:
         apr-1.4.6.tar
         apr-util-1.5.2.tar   :httpd在编译安装时,需要借助这两个环境;
      phpMyAdmin-4.0.5-all-languages    :web方式管理mysql;

      xcache-3.0.3.tar      :php加速器;
      编译过程中,可能因为系统原因,需要额外安装编译环境,根据配置过程中报错信息直接yum安装即可;

   
3、安装:
    1、二进制方式安装mysql:
    # date 032811292015.50
    2015年 03月 28日 星期六 11:29:50 CST    :调整主机时间到当前;
   
    # groupadd -r mysql
    # useradd -g mysql -r -s /sbin/nologin mysql
    # id mysql
    uid=496(mysql) gid=493(mysql) 组=493(mysql)
    #      :创建mysql系统用户;


    # tar xf mysql-5.5.33-linux2.6-x86_64.tar.gz
    # mv mysql-5.5.33-linux2.6-x86_64 /usr/local/
    # cd /usr/local/
    # ln -sv mysql-5.5.33-linux2.6-x86_64 mysql
    "mysql" -> "mysql-5.5.33-linux2.6-x86_64"   :解压后,创建链接文件到mysql;


    # mkdir -pv /data/mydata
    mkdir: 已创建目录 "/data"
    mkdir: 已创建目录 "/data/mydata"
    # cd /data
    # chown -R mysql:mysql mydata/
    #   :为mysql创建数据库目录。生产环境中,数据库目录应该放到逻辑卷中,方便磁盘容量扩容。注意权限;


    # cd /usr/local/mysql
    # scripts/mysql_install_db --datadir=/data/mydata/ --user=mysql
    Installing MySQL system tables...
    OK
    Filling help tables...
    OK                  

    # ll /data/mydata/
    总用量 12
    drwx------ 2 mysql root4096 3月28 11:41 mysql
    drwx------ 2 mysql mysql 4096 3月28 11:41 performance_schema
    drwx------ 2 mysql root4096 3月28 11:41 test
    #                   :初始化数据库,指定数据库目录和操作者;

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

    # cp support-files/my-large.cnf /etc/my.cnf
    # vim /etc/my.cnf
      thread_concurrency = 2
      datadir = /data/mydata   :为mysql提供服务脚本和主配置文件。并更改这两项,关键是数据库目录的路径;

    # service mysqld start
    Starting MySQL....                                       [确定]
    # service mysqld status
    MySQL running (2277)                                       [确定]
    #   

    # ss -tnl | grep 3306
    LISTEN   0      50                        *:3306                     *:*   
    #:         启动mysqld服务;

    # mysql
    mysql> use mysql
    mysql> show databases;
    +--------------------+
    | Database         |
    +--------------------+
    | information_schema |
    | mysql            |
    | performance_schema |
    | test               |
    +--------------------+
    4 rows in set (0.00 sec)
    mysql> select user,host,password from user;   :查看mysql用户表。root没有密码;
    +------+-----------------------+----------+
    | user | host                  | password |
    +------+-----------------------+----------+
    | root | localhost             |          |
    | root | localhost.localdomain |          |
    | root | 127.0.0.1             |          |
    | root | ::1                   |          |
    |      | localhost             |          |
    |      | localhost.localdomain |          |
    +------+-----------------------+----------+
    6 rows in set (0.00 sec)

    mysql> drop user ''@'localhost';
    Query OK, 0 rows affected (0.00 sec)
    mysql> drop user ''@'localhost.localdomain';    :删除有漏洞的两个用户记录;
    Query OK, 0 rows affected (0.00 sec)   
    mysql> update user set password=password('password') where user='root';   :
    Query OK, 4 rows affected (0.01 sec)
    Rows matched: 4Changed: 4Warnings: 0
    mysql> flush privileges;                        :给root添加登录mysql时的密码;
    mysql> select user,host,password from user;
    +------+-----------------------+-------------------------------------------+
    | user | host                  | password                                  |
    +------+-----------------------+-------------------------------------------+
    | root | localhost             | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
    | root | localhost.localdomain | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
    | root | 127.0.0.1             | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
    | root | ::1                   | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
    +------+-----------------------+-------------------------------------------+
    4 rows in set (0.00 sec)


    # mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
   # mysql -uroot -p -hlocalhost
    Enter password:
    Welcome to the MySQL monitor.Commands end with ; or \g.   :再次以root登录发现不输入密码是不行的;

    # ln -sv /usr/local/mysql/include/ /usr/include/mysql
    "/usr/include/mysql" -> "/usr/local/mysql/include/"
    # vim /etc/ld.so.conf.d/mysql.conf
                              /usr/local/mysql/lib
    # vim /etc/man.config
                            MANPATH /usr/local/mysql/man
            :导出头文件和库文件,以及man帮助;
    ok!mysql安装完毕。


    2、编译安装httpd
    # yum -y install gcc pcre automake   :yum安装gcc pcre编译环境;
    # tar xf apr-1.4.6.tar.bz2
    # cd apr-1.4.6
    # ./configure --prefix=/usr/local/apr
    # make && make install
    # tar xf apr-util-1.5.2.tar.bz2
    # cd apr-util-1.5.2
    # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
    # make && make install      :编译安装apr和arp-util;

    # yum -y install openssl-devel:安装httpd依赖的开发包;
    # tar xf httpd-2.4.6.tar.bz2
    # cd httpd-2.4.6
    # ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-cgi --with-zlib --with-pcre --enable-rewrite --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
    # make && make install      :编译配置并安装;
   
    # cp httpd httpd24
    # vim httpd24
      apachectl=/usr/local/apache/bin/apachectl
      httpd=${HTTPD-/usr/local/apache/bin/httpd}

      :copy 一个httpd服务脚本(系统自带httpd服务里有),并修改如上参数位置到httpd编译安装包的位置里;
   
    # chkconfig --add httpd24
    # chkconfig httpd24 on
    # vim /etc/profile.d/httpd24.sh
                        export PATH=/usr/local/apache/bin:$PATH      :配置服务启动级别和命令路径;


    # vim /etc/httpd24/httpd.conf

                        PidFile "/var/run/httpd/httpd.pid"    :编辑httpd24的配置文件,指定pid文件位置;
   
    # service httpd24 start
    # ss -tnl | grep 80
    LISTEN   0      128                      :::80                      :::*
    # service httpd24 status
    httpd (pid17892) 正在运行...
    #               :启动httpd24服务;
   
    # ln -sv /usr/local/apache/include/ /usr/include/httpd24
   "/usr/include/httpd24" -> "/usr/local/apache/include/"
    # vim /etc/ld.so.conf.d/httpd24.conf
                        /usr/local/apache/lib
    # vim /etc/man.config

                        MANPATH /usr/local/apache/man    :输出头文件、库文件和man帮助文件;   
ok,httpd编译安装完成;

    3、编译安装php:
    yum -y groupinstall Desktop Platform Devellopment bzip2 bzip2-devel libxml2-devel libmcrypt-devel

            :安装之前需要安装编译环境;

    #rpm -ivh epel-release-6-8.noarch
    #yum -y install php-mcrypt libmcrypt-devel:利用epel源去安装php-mcrypt扩展模块;



    # wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz   

    # tar xf libmcrypt-2.5.7.tar.gz
    # cd libmcrypt-2.5.7
    # ./configure --prefix=/usr/local/libmcrypt
    # make && make install   :编译安装libmcryp,php需要它;


    # tar xf php-5.4.19.tar.bz2
    # cd php-5.4.19
    # ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts
    # make && make install:编译配置,并安装php(较慢..);
   
    # cpphp.ini-production /etc/php.ini :为php提供一个ini文件;

    # vim /etc/httpd24/httpd.conf
ADDType application/x-httpd-php .phpADDType application/x-httpd-php-source .phpsDirectoryIndexindex.php index.html     :修改httpd24的主配置文件,添加ADDType,修改文档根目录,提供测试页面index.php;LoadModule php5_module      modules/libphp5.so   :查看这两个模块是否被php装载进来;    # service httpd24 restart

    # cd /usr/local/apache/htdocs/
    # ls
            index.html
    # mv index.html index.php
    # vim index.php    :自定义一个关于php成功与否的测试页面;
      <?php
      $link = mysql_connect('127.0.0.1','root','password');
      if ($link)
                echo"Success!!!"
      else
                echo"Failure...."
      mysql_close();
      ?>


    # service mysqld restart
    # service httpd24 restart   :重启一下mysql和httpd服务;


            
      测试一下,成功。说明lamp搭建成功!!!


4、简单优化:(测试LAMP环境)
    安装phpMyAdmin,web管理mysql;
    安装xcache为php加速;

    1、安装phpMyAdmin:
    # unzip phpMyAdmin-4.0.5-all-languages.zip
    # cp -r phpMyAdmin-4.0.5-all-languages /usr/local/apache/htdocs/pma
   
      http://172.16.1.105/pma    :可以访问phpMyAdmin了。成功!!;


    2、编译安装xcache:
    # yum -y install m4 autoconf   :安装编译环境;
    # tar xf xcache-3.0.3.tar.bz2
    # cd xcache-3.0.3
    # /usr/local/php/bin/phpize    :执行后会生成configure文件;

    # ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
    # make && make install    :编译安装配置;


    # mkdir /etc/php.d
    # cp xcache.ini /etc/php.d
    # vim /etc/php.d/xcache.ini

                extension = /usr/local/php/lib/extensions/no-debug-zts-20100525/xcache.so :修改此项;
   
    # vim /usr/local/apache/htdocs/index.php
                <?php
                  $link = mysql_connect('127.0.0.1','root','password');
                  if ($link)
                        echo "Success !!!";
                  else
                        echo "Failure ...";
                  mysql_close();
                  phpinfo();   :添加一个php测试函数;
               ?>
    # service httpd24 restart
   
      :ok,发现xcache被php所识别,说明xcache安装成功了!



      结束!

   



页: [1]
查看完整版本: LAMP之编译安装搭建