zoukankan      html  css  js  c++  java
  • lamp 编译安装

    Apache有两种模式提供服务,一种是线程worker模式,一种是进程prefork模式(更加稳定)

    线程模式是一个进程下面有许多线程提供服务。

    而进程模式是直接是许多进程提供服务,但是消耗cpu。

    安装apache

    [root@lamp src]# ls

    httpd-2.2.27.tar.gz

    [root@lamp src]# pwd

    /usr/local/src

    [root@lamp src]# tar -xf httpd-2.2.27.tar.gz

    [root@lamp src]# ls

    httpd-2.2.27  httpd-2.2.27.tar.gz

    [root@lamp src]# cd httpd-2.2.27

    [root@lamp httpd-2.2.27]# ./configure

    --prefix=/usr/local/apache2.2.27

    --enable-deflate

    --enable-expires

    --enable-headers

    --enable-modules=most

    --enable-so

    --with-mpm=worker

    --enable-rewrite

    [root@lamp httpd-2.2.27]# yum install -y zlib zlib-devel

    [root@lamp httpd-2.2.27]#make && make install

    [root@lamp src]# cd ..

    [root@lamp local]# ls

    apache2.2.27  etc    include  lib64    sbin   src

    bin           games  lib      libexec  share

    [root@lamp local]# ln -s apache2.2.27 /usr/local/apache

    [root@lamp local]# cd apache

    [root@lamp apache]# ls

    bin    cgi-bin  error   icons    lib   man     modules

    build  conf     htdocs  include  logs  manual

    检测语法

    [root@lamp local]# /usr/local/apache/bin/apachectl -t

    httpd: apr_sockaddr_info_get() failed for lamp

    httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

    Syntax OK

    启动apache

    [root@lamp local]# /usr/local/apache/bin/apachectl start

    httpd: apr_sockaddr_info_get() failed for lamp

    httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

    检测是否启动

    [root@lamp local]# ps -aux |grep httpd

    Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

    root      5133  0.0  0.2  34416  2132 ?        Ss   05:10   0:00 /usr/local/apache2.2.27/bin/httpd -k start

    daemon    5134  0.0  0.1  34148  1300 ?        S    05:10   0:00 /usr/local/apache2.2.27/bin/httpd -k start

    daemon    5135  0.0  0.3 378676  3892 ?        Sl   05:10   0:00 /usr/local/apache2.2.27/bin/httpd -k start

    daemon    5136  0.0  0.3 378676  3900 ?        Sl   05:10   0:00 /usr/local/apache2.2.27/bin/httpd -k start

    daemon    5137  0.1  0.3 378676  3900 ?        Sl   05:10   0:00 /usr/local/apache2.2.27/bin/httpd -k start

    root      5220  0.0  0.0 103244   856 pts/0    S+   05:10   0:00 grep httpd

    [root@lamp local]# lsof -i :80

    COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

    httpd   5133   root    4u  IPv6  59038      0t0  TCP *:http (LISTEN)

    httpd   5135 daemon    4u  IPv6  59038      0t0  TCP *:http (LISTEN)

    httpd   5136 daemon    4u  IPv6  59038      0t0  TCP *:http (LISTEN)

    httpd   5137 daemon    4u  IPv6  59038      0t0  TCP *:http (LISTEN)

    测试

    [root@lamp local]# iptables -F

    [root@lamp local]# /etc/init.d/iptables save

    iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

    wKiom1hX9SeQ88HOAAAs5gkzCzI106.png

    配置站点

    [root@lamp conf]# pwd

    /usr/local/apache/conf

    [root@lamp conf]# ls

    extra  httpd.conf  magic  mime.types  original

    [root@lamp conf]# grep -i documentroot httpd.conf 

    # DocumentRoot: The directory out of which you will serve your

    DocumentRoot "/usr/local/apache2.2.27/htdocs"

    # This should be changed to whatever you set DocumentRoot to.

        # access content that does not live under the DocumentRoot.

    平滑重启

    [root@lamp apache]# /usr/local/apache/bin/apachectl graceful

    Apache的配置文件讲解

    查看配置里面站点默认的页面

    [root@lamp conf]# vim httpd.conf

    <IfModule dir_module>

        DirectoryIndex index.html

    </IfModule>

    目录结构的设置

    -Indexes就是禁止显示目录结构了

    或者把这里删除掉,当主页没有找到的话就显示403,而不会显示目录结构,确保安全

    Options -Indexes FollowSymLinks

    虚拟主机配置文件

    [root@lamp extra]# ls -l /usr/local/apache/conf/extra

    total 56

    -rw-r--r-- 1 root root  2855 Dec  7 05:01 httpd-autoindex.conf

    -rw-r--r-- 1 root root  1743 Dec  7 05:01 httpd-dav.conf

    -rw-r--r-- 1 root root  2344 Dec  7 05:01 httpd-default.conf 了解

    -rw-r--r-- 1 root root  1103 Dec  7 05:01 httpd-info.conf

    -rw-r--r-- 1 root root  5078 Dec  7 05:01 httpd-languages.conf

    -rw-r--r-- 1 root root   945 Dec  7 05:01 httpd-manual.conf

    -rw-r--r-- 1 root root  3789 Dec  7 05:01 httpd-mpm.conf

    -rw-r--r-- 1 root root 11492 Dec  7 05:01 httpd-ssl.conf

    -rw-r--r-- 1 root root   817 Dec  7 05:01 httpd-userdir.conf

    -rw-r--r-- 1 root root  1503 Dec  7 05:01 httpd-vhosts.conf

    虚拟主机配置:

    域名站点目录

    www.bier.org  /var/html/www

    blog.bier.org /var/html/blog

    bbs.bier.org  /var/html/bbs

    创建站点目录

    [root@lamp extra]# mkdir -p /var/html/www

    [root@lamp extra]# mkdir -p /var/html/blog

    [root@lamp extra]# mkdir -p /var/html/bbs

    [root@lamp extra]# touch /var/html/www/index.html

    [root@lamp extra]# touch /var/html/blog/index.html

    [root@lamp extra]# touch /var/html/bbs/index.html

    [root@lamp extra]# tree /var/html/

    /var/html/

    |-- bbs

    |   `-- index.html

    |-- blog

    |   `-- index.html

    `-- www

    `-- index.html

    [root@lamp extra]# for i in www blog bbs;do echo "http://$i.bier.org" >/var/html/$i/index.html;done

    [root@lamp extra]# for i in www blog bbs;do cat /var/html/$i/index.html;done

    http://www.bier.org

    http://blog.bier.org

    http://bbs.bier.org

    配置虚拟机主机

    [root@lamp extra]# pwd

    /usr/local/apache/conf/extra

    [root@lamp extra]# vim httpd-vhosts.conf

    <VirtualHost *:80>

        ServerAdmin 947370895@qq.com

        DocumentRoot "/var/html/www"

        ServerName www.bier.org

        ServerAlias bier.org

        ErrorLog "logs/www-error_log"

        CustomLog "logs/www-access_log" common

    </VirtualHost>

    <VirtualHost *:80>

        ServerAdmin 947370895@qq.com

        DocumentRoot "/var/html/blog"

        ServerName blog.bier.org

        ErrorLog "logs/blog-error_log"

        CustomLog "logs/blog-access_log" common

    </VirtualHost>

    <VirtualHost *:80>

        ServerAdmin 947370895@qq.com

        DocumentRoot "/var/html/bbs"

        ServerName bbs.bier.org

        ErrorLog "logs/bbs-error_log"

        CustomLog "logs/bbs-access_log" common

    </VirtualHost>

    打开主配置文件这里

    [root@lamp conf]# pwd

    /usr/local/apache/conf

    [root@lamp conf]# vim httpd.conf

    # Virtual hosts

    Include conf/extra/httpd-vhosts.conf

    添加站点目录

    <Directory "/var/html">

        AllowOverride None

        Options None

        Order allow,deny

        Allow from all

    </Directory>

    检测重启

    [root@lamp conf]# /usr/local/apache/bin/apachectl -t

    Syntax OK

    [root@lamp conf]# /usr/local/apache/bin/apachectl graceful

    然后本地解析测试,浏览器访问

    安装apache日志轮询工具cronolog

     (此工具工作中用这种比较多,不用系统自带的)

    安装cronolog工具

    tar -xf cronolog-1.6.2.tar.gz

    cd cronolog-1.6.2

    ./configure 

    make 

    make install

    [root@lamp src]# ll /usr/local/sbin/cronolog 

    -rwxr-xr-x 1 root root 40438 Dec  7 08:24 /usr/local/sbin/cronolog

    Cronolog日志轮询配置说明

    错误写法:

    CustomLog "|/usr/local/sbin/cronolog logs/access_www_%w.log" common

    提示:cronllog日志轮询的正确写法,被轮询的日志路径要写全

    正确写法

    CustomLog "|/usr/local/sbin/cronolog /app/logs/access_www_%Y%m%d.log" common

    提示:这个大多数网站的常规写法(按天记录日志,日志不会被自动覆盖)

    [root@lamp src]# mkdir -p /app/logs

    在虚拟主机修改好格式,检测重启访问测试

    [root@lamp apache]# tail -f /app/logs/access_www_20151207.log     

    192.168.3.1 - - [07/Dec/2015:08:58:37 -0500] "GET / HTTP/1.1" 304 -

    192.168.3.1 - - [07/Dec/2015:08:58:39 -0500] "GET / HTTP/1.1" 304 -

    192.168.3.1 - - [07/Dec/2015:08:58:39 -0500] "GET / HTTP/1.1" 304 -

    192.168.3.1 - - [07/Dec/2015:08:59:50 -0500] "GET / HTTP/1.1" 304 -

    192.168.3.1 - - [07/Dec/2015:08:59:51 -0500] "GET / HTTP/1.1" 304 -

    192.168.3.1 - - [07/Dec/2015:08:59:51 -0500] "GET / HTTP/1.1" 304 -

    安装mysql

    创建mysql用户

    [root@lamp src]# useradd mysql -s /sbin/nologin –M

    ./configure

    --prefix=/usr/local/mysql5.1.72

    --with-unix-socket-path=/usr/local/mysql5.1.72/tmp/mysql.sock

    --localstatedir=/usr/local/mysql5.1.72/data

    --enable-assembler

    --enable-thread-safe-client

    --with-mysqld-user=mysql

    --with-big-tables

    --without-debug

    --with-pthread

    --enable-assembler

    --with-extra-charsets=complex

    --with-readline

    --with-ssl

    --with-embedded-server

    --enable-local-infile

    --with-plugins=partition,innobase

    --with-mysqld-ldflags=-all-static

    --with-client-ldflags=-all-static

    可以将上面的脚本放入mysql.log,然后cat mysql.log|bash 执行

    修改错误

    checking for termcap functions library... configure: error: No curses/termcap library found

    [root@lamp mysql-5.1.72]# yum install -y ncurses ncurses-devel

    make && make install

    [root@lamp local]# ln -s mysql5.1.72/ /usr/local/mysql

    [root@lamp mysql]# mkdir -p /usr/local/mysql/data存放数据的地方

    [root@lamp mysql]# chown -R mysql.mysql /usr/local/mysql/data

    配置mysql

    [root@lamp mysql]# ls /usr/local/mysql/share/mysql/my*.cnf

    /usr/local/mysql/share/mysql/my-huge.cnf

    /usr/local/mysql/share/mysql/my-innodb-heavy-4G.cnf

    /usr/local/mysql/share/mysql/my-large.cnf

    /usr/local/mysql/share/mysql/my-medium.cnf

    /usr/local/mysql/share/mysql/my-small.cnf

    提示:此版本这些文件在上面的目录下面,一般是在安装目录下的support-files的这个目录下

    [root@lamp mysql]# cd /usr/local/mysql/share/mysql/

    [root@lamp mysql]# cp my-small.cnf /etc/my.cnf

    mysql默认的配置路径和文件名/etc/my.conf

    初始化数据库

    [root@lamp mysql]# /usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --user=mysql

    Installing MySQL system tables...

    151207 11:09:10 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.

    OK

    Filling help tables...

    151207 11:09:11 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.

    OK

    To start mysqld at boot time you have to copy

    support-files/mysql.server to the right place for your system

    /usr/local/mysql/bin/mysqladmin -u root password 'new-password'

    /usr/local/mysql/bin/mysqladmin -u root -h lamp password 'new-password'

    You can start the MySQL daemon with:

    cd /usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe &

    You can test the MySQL daemon with mysql-test-run.pl

    cd /usr/local/mysql/mysql-test ; perl mysql-test-run.pl

    Please report any problems with the /usr/local/mysql/scripts/mysqlbug script!

    生成数据

    [root@lamp mysql]# ll ./data

    total 8

    drwx------ 2 mysql root 4096 Dec  7 11:09 mysql

    drwx------ 2 mysql root 4096 Dec  7 11:09 test

    启动数据库

    /usr/local/mysql/bin/mysqld_safe &

    检测

    [root@lamp mysql]# ps -aux |grep mysqld |grep -v grep

    Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

    root     22545  0.0  0.1 106100  1476 pts/1    S    11:47   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe

    mysql    22653  0.7  2.6 269760 27240 pts/1    Sl   11:47   0:06 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --log-error=/usr/local/mysql/data/lamp.err --pid-file=/usr/local/mysql/data/lamp.pid --socket=/usr/local/mysql5.1.72/tmp/mysql.sock --port=3306

    [root@lamp mysql]# lsof -i :3306

    COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

    mysqld  22653 mysql   10u  IPv4 151886      0t0  TCP *:mysql (LISTEN)

    安装PHP

    检测apache和mysql

    [root@lamp src]# netstat -lnptu |egrep "3306|80"

    tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      23167/mysqld        

    tcp        0      0 :::80                       :::*                        LISTEN      5133/httpd          

    tcp        0      0 :::8000                     :::*                        LISTEN      5133/httpd

    检测安装所需的lib库

    安装准备

    yum install zlib libxml libjpeg freetype libpng gd  curl libiconv  zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel -y

    tar zxf libiconv-1.14.tar.gz

    cd libiconv-1.14

    ./configure --prefix=/usr/local/libiconv

    make

    make install

    解压编译

    ./configure

    --prefix=/usr/local/php5.3.27

    --with-apxs2=/usr/local/apache/bin/apxs   

    是给apache添加模块的dso模式添加,php嵌入到apache里面

    --with-mysql=/usr/local/mysql

    --with-xmlrpc

    --with-openssl

    --with-zlib

    --with-freetype-dir

    --with-gd

    --with-jpeg-dir

    --with-png-dir

    --with-iconv=/usr/local/libiconv

    --enable-short-tags

    --enable-sockets

    --enable-zend-multibyte

    --enable-soap

    --enable-mbstring

    --enable-static

    --enable-gd-native-ttf

    --with-curl

    --with-xsl

    --enable-ftp

    --with-libxml-dir

    [root@Centos6 modules]# pwd

    /usr/local/apache2/modules

    [root@Centos6 modules]# ll

    total 26220

    -rw-r--r-- 1 root root     9083 Jun 29 16:10 httpd.exp

    -rwxr-xr-x 1 root root 24594399 Jun 29 17:01 libphp5.so

    有这两个文件,说明apache已经嵌入了php

    拷贝配置文件

    [root@Centos6 local]# cp /usr/local/src/php-5.3.28/php.ini-production /usr/local/php/lib/php.ini

    配置apache解析php

    打开apache主配置文件

    定位311gg加下面这两行

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

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

     AddType application/x-httpd-php .php

    提示:这里一定要配置,不然apahce解析不了php,一打开就下载的情况

    然后改一下里面的用户和组

    #

    User www

    Group www

    增加index.php

    <IfModule dir_module>

        DirectoryIndex index.html index.php

    </IfModule>

    [root@Centos6 conf]# useradd -s /sbin/nologin -M www

    检测重启apache

    [root@Centos6 conf]# chown -R www.www /var/html/blog

    [root@Centos6 conf]# cd /var/html/blog

    [root@Centos6 conf]# vim index.php

    <?php

    phpinfo();

    ?>

    浏览器测试php

    测试mysql

    vim mysql.php

    <?php

    $link_id=mysql_connect('localhost','root','123456') or mysql_error();

    if($link_id){

    echo "mysql successful by oldboy !";

    }else{

    echo mysql_error();

    }

    ?>

    到此lamp环境部署完成

  • 相关阅读:
    nginx 安装ab小工具方法
    ab小工具的Failed requests多的问题
    linux webbench测试高并发方法
    html5 video获取实时播放进度的方法
    html5 video获取实时播放进度的方法
    下载网站上的视频的方法
    带宽的深入理解
    redis 清除minerd进程的方法
    php 500报错解决方案
    GIT和SVN之间的五个基本区别
  • 原文地址:https://www.cnblogs.com/jinbiaof/p/6844104.html
Copyright © 2011-2022 走看看