zoukankan      html  css  js  c++  java
  • 001_LAMP 环境搭建

    LAMP 环境搭建

    一、MySQL 部署安装

    1. MySQL下载

    官方下载地址:http://dev.mysql.com/downloads/mysql/#downloads

    镜像文件下载:https://downloads.mysql.com/archives/community/

    1.1 下载MySQL安装程序

    cd /usr/local/src/
    wget ftp://ftp.stu.edu.tw/pub/Unix/Database/Mysql/Downloads/MySQL-5.1/mysql-5.1.73-linux-i686-glibc23.tar.gz

    1.2 初始化安装

    #### 解压安装包
    tar zxvf /usr/local/src/mysql-5.1.73-linux-i686-glibc23.tar.gz
    #### 移动解压的安装文件到/usr/local 目录下,并修改名称为mysql
    mv mysql-5.1.73-linux-i686-glibc23 /usr/local/mysql
    #### 建立MySQL账户
    useradd -s /sbin/nologin mysql
    #### 创建数据存放目录
    mkdir -p /data/mysql ; chown -R mysql:mysql /data/mysql
    #### 初始化数据库
    cd /usr/local/mysql
    ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
    #### user 定义数据库的所属主,datadir 定义数据库数据存放位置,建议放到大空间的分区上,这个目录需要创建
    #### 这一步骤很关键,出现两个“OK” 说明执行正确。
    

    1.3 修改配置、启动文件等

    #### 拷贝配置文件
    cp support-files/my-large.cnf /etc/my.cnf
    
    #### 拷贝启动脚本文件、并修改属性
    cp support-files/mysql.server  /etc/init.d/mysqld
    chmod 755 /etc/init.d/mysqld
    
    #### 修改启动脚本文件
    vim /etc/init.d/mysqld
    修改以下参数修("basedir"MySQL的安装程序目录;"datadir"MySQL数据存放目录,前面初始化数据库时定义的目录)
    basedir=/usr/local/mysql
    datadir=/data/mysql
    

    1.4 启动

    将启动脚本加入系统服务项,设置开机启动、并开启服务
    添加服务:chkconfig --add mysqld
    设置开机启动:chkconfig mysqld on
    启动MySQL:service mysqld start

    如果启动不了,请到 /data/mysql/ 下查看错误日志,这个日志通常是主机名.err

    检查MySQL是否启动:ps aux |grep mysqld

    二、Apache 部署安装

    1. Apache下载

    Apache官网下载地址:http://httpd.apache.org/

    下载Apache安装程序

    cd /usr/local/src/

    wget http://apache.fayea.com/httpd/httpd-2.4.37.tar.gz

    解压: tar jvxf httpd-2.4.37.tar.bz2

    2. 编译安装

    2.1 安装依赖库

    yum install -y pcre pcre-devel apr apr-devel zlib-devel gcc

    2.2 配置编译参数

    cd httpd-2.4.37

    ./configure 
    --prefix=/usr/local/httpd 
    --with-included-apr 
    --enable-so 
    --enable-deflate=shared 
    --enable-expires=shared 
    --enable-rewrite=shared 
    --with-pcre
    

    --prefix 指定安装位置;
    --with-included-apr apache依赖包 能让httpd跨平台运行;
    --enable-so 表示启用DSO;
    --enable-deflate=shared 表示共享的方式编译deflate,后面的参数同理;
    --with-pcre 正则相关的运行库。

    编译安装: make && make install

    以上操作可以使用 echo $? 来检查是否正确执行,返回值为‘0’为正常;否则需要根据错误提示去解决问题。

    2.3 相关报错

    • 报错:
      configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.

    • 解决方法:

     cd /usr/local/src/httpd-2.4.37/srclib
    #### 下载 apr
    wget http://mirror.bit.edu.cn/apache/apr/apr-1.6.5.tar.gz
    #### 解压、改名
    tar -zxvf apr-1.6.5.tar.gz
    mv apr-1.6.5 apr
    #### 下载apr-util
    wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
    #### 解压、改名
    tar -zxvf apr-util-1.6.1.tar.gz
    mv apr-util-1.6.1 apr-util
    #### 参考网址:http://www.cnblogs.com/llius/p/5110628.html
    

    3. Apache 相关参数

    • Apache模块

      • /usr/local/apache/bin/apachectl -M列出相关模块(-l 列出静态模块、-t查看配置文件是否有语法错误),

      • 显示的模块名(shared)为动态模块,显示的模块名(static)是静态模块;

    • 动态(shared)模块文件存放位置 /usr/local/apache/modules/

    • 动态模块文件为绿色.so结尾模块文件(动态文件为共享文件)
      如:httpd.exp libphp5.so mod_deflate.so mod_expires.so mod_rewrite.so

    • 静态(static)模块编译后文件存放位置/usr/local/apache/bin/httpd

    4. 启动Apache

    启动:/usr/local/httpd/bin/apachectl start
    重启:/usr/local/httpd/bin/apachectl restart
    停止:/usr/local/httpd/bin/apachectl stop
    重新加载配置:/usr/local/httpd/bin/apachectl graceful(重新加载配置,没有重新启动进程)

    DSO: 是Dynamic Shared Objects(动态共享目标)的缩写,它提供了一种在运行时将特殊格式的代码在程序运行需要时,将需要的部分从外存调入内存执行的方法。Apache 支持动态共享模块,也支持静态模块,静态的话,会把需要的目标直接编译进apache的可执行文件中,相比较动态,虽然省去了加载共享模块的步骤,但是也加大了二进制执行文件的空间,变得臃肿。

    三、PHP 部署安装

    1. 下载php

    PHP官方下载地址:http://php.net/downloads.php

    下载php安装程序
    cd /usr/local/src
    wget http://101.96.10.64/cn2.php.net/distributions/php-5.6.39.tar.gz
    解压: tar zxf php-5.6.39.tar.gz

    2. 编译安装

    2.1 安装依赖库

    yum install -y libxml2-devel openssl openssl-devel bzip2 bzip2-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel

    2.2 配置编译参数

    cd php-5.6.39

    ./configure 
    --prefix=/usr/local/php 
    --with-apxs2=/usr/local/httpd/bin/apxs 
    --with-config-file-path=/usr/local/php/etc 
    --with-mysql=/usr/local/mysql 
    --with-pdo-mysql=/usr/local/mysql 
    --with-mysqli=/usr/local/mysql/bin/mysql_config 
    --with-libxml-dir --with-gd --with-jpeg-dir 
    --with-png-dir --with-freetype-dir 
    --with-iconv-dir --with-zlib-dir 
    --with-bz2 --with-openssl --with-mcrypt 
    --enable-soap --enable-gd-native-ttf 
    --enable-mbstring --enable-sockets --enable-exif
    

    编译安装:make && make install

    2.3 相关报错

    报错内容:configure: error: mcrypt.h not found. Please reinstall libmcrypt.

    解决:
    rpm -ivh "https://mirrors.tuna.tsinghua.edu.cn/epel/6/i386/epel-release-6-8.noarch.rpm"
    yum install -y libmcrypt libmcrypt-devel

    因为centos6.x 默认的yum源没有libmcrypt-devel 这个包,所以需要借助第三方yum源。

    3. 配置文件

    • PHP配置文件(php.ini) 在/usr/local/php/etc/目录下,默认这个配置文件是空的,需要在源文件中拷贝预配置文件然后进行配置修改;

    • 预配置文件目录:/usr/local/src/php-5.6.39 ,此目录下有两个预配置文件:

      • 开发使用:php.ini-development
      • 是生产使用php.ini-production
    • 正常Web服务器使用直接拷贝:php.ini-production文件并命名为php.ini
      cp /usr/local/src/php-5.6.39/php.ini-production /usr/local/php/etc/php.ini

    • 拷贝后重新加载Apache:/usr/local/httpd/bin/apachectl graceful

    四、Apace结合PHP、验证 LAMP

    1. Apache结合PHP

    • 编辑Apache主配置文件:
    #### 修改主机名
    #ServerName www.example.com:80 修改为:ServerName localhost:80
    #### 添加PHP解析(AddType application/x-gzip .gz .tgz 在该行下面添加)
    AddType application/x-httpd-php .php
    #### 增加PHP默认页索引(增加index.php)
    <IfModule dir_module>
    DirectoryIndex index.html index.php
    </IfModule>
    

    2. 测试LAMP

    2.1 启动Apache

    • 检查配置文件是否正确:/usr/local/httpd/bin/apachectl -t如果有错误,继续修改httpd.conf, 如果是正确的则显示为 Syntax OK

    • 启动apache:/usr/local/httpd/bin/apachectl start

    • 查看是否启动:
      netstat -lnp |grep httpd 如果有显示下列信息,则启动成功
      tcp 0 0 :::80 :::* LISTEN 7667/httpd

    2.2 测试WBE界面解析

    • 使用curl命令简单测试: curl localhost 显示以下字样,配置正确
      <html><body><h1>It works!</h1></body></html>[root@CentOS-1 ~]#

    • 测试是否正确解析PHP,按照下面内容创建PHP页面;
      然后使用curl localhost/1.php测试; 显示php解析正常[root@localhost ~]#配置正确

    #### 创建PHP页面
    vim /usr/local/httpd/htdocs/1.php
    #### PHP页面内容
    <?php
    echo "php解析正常";
    ?>
    

    初次使用浏览器访问我们的web服务的时候,你可能无法访问,这是因为防火墙的缘故。请运行下面的命令:
    [root@localhost ~]# iptables -F这样就可以清除系统默认的防火墙规则,放行80端口。

    LAMP环境是搭建好了,这其实仅仅是安装上了软件而已,而具体的配置还是有很多工作要做的呢?也就是说,你虽然搭建出来了环境,但是如果不会配置细节的东西,相当于没有任何工作经验,所以还是多配置配置apache或者php

    五、示例:安装 Discuz 论坛

    1. 下载、解压安装

    #### 创建安装目录
    [root@CentOS-1 ~]#mkdir /data/www
    [root@CentOS-1 ~]#cd /data/www
    #### 下载Discuz安装程序包
    [root@CentOS-1 www]#wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip
    [root@CentOS-1 www]#upzip Discuz_X3.2_SC_GBK.zip
    [root@CentOS-1 www]# mv upload/* ./
    [root@CentOS-1 www]#rm -rf readme/ uploal/ utility/ Discuz_X3.2_SC_GBK.zip
    编辑apache配置文件
    [root@CentOS-1 www]# vim /usr/local/httpd/conf/httpd.conf
    #### 启用(删除 # ) Include conf/extra/httpd-vhosts.conf
    #### 修改配置参数
    <Directory />
        AllowOverride none
        Require all denied #改为Require all granted
    </Directory>
    

    2. 修改配置文件

    [root@CentOS-1 www]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
    #### 默认有两个样例,删除一个
    <VirtualHost *:80>
        ServerAdmin webmaster@dummy-host.example.com #管理员邮箱,这里删除
        DocumentRoot "/data/www" #创建的安装目录位置,这里修改成 /data/www
        ServerName www.chenyue.com #域名地址
        ServerAlias www.123qwe.com #别名(第二域名)
        ErrorLog "logs/dummy-host.example.com-error_log" #错误日志
        CustomLog "logs/dummy-host.example.com-access_log" common #访问日志(这里两个个日志线先用#注释掉,不用)
    </VirtualHost>
    #### 查看修改的配置是否有错误(Syntax OK 配置正确)
    /usr/local/httpd/bin/apachectl -t
    #### 启动、重新加载apache
    /usr/local/httpd/bin/apachectl start
    

    3. WEB 安装界面

    浏览器访问,www.chenyue.com/www.123qwe.com (前提需要在电脑的host文件中,指定域名指向服务器地址)

    打开浏览器按照提示安装,出现如图提示;修改对应文件夹权限即可

    先看一下apache的进程是什么用户

    [root@CentOS-1 www]# ps aux |grep http
    root      1444  0.0  1.5  30492 12096 ?        Ss   21:49   0:00 /usr/local/apache/bin/httpd -k start
    daemon    1511  0.0  1.3  30624 10312 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
    daemon    1512  0.0  1.4  31432 11160 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
    daemon    1513  0.0  1.3  30624 10312 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
    daemon    1514  0.0  1.4  31472 11224 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
    daemon    1515  0.0  1.3  30624 10312 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
    daemon    1516  0.0  1.2  30492  9784 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
    daemon    1517  0.0  1.2  30492  9784 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
    daemon    1518  0.0  1.2  30492  9784 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
    daemon    1519  0.0  1.2  30492  9784 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
    daemon    1520  0.0  1.2  30492  9784 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
    root      1522  0.0  0.0   5980   740 pts/0    S+   22:27   0:00 grep http
    

    这里apache的进程是daemon用户在运行;我们需要将上图中提示的文件夹设置成daemon用户(或者修改文件夹权限是可以的,但是修改后文件夹权限较大不安全;这里修改所属主)
    [root@CentOS-1 www]# chown -R daemon config data uc_client/data uc_server/data

    刷新浏览器,选择全新安装

    出现mysql配置界面,我们先不配置,先将服务器中的mysql配置好,在到这边操作;

    4. 配置Mysql

    先设置一下Linux MySQL 配置命令mysql(原配置命令:/usr/local/mysql/bin/mysql)

    [root@CentOS-1 www]# which mysql                //查看mysql绝对路径
    /usr/bin/mysql                                  //这里的mysql是系统自带的rpm包安装的
    [root@CentOS-1 www]# rpm -qf /usr/bin/mysql     //查看mysql安装包名
    mysql-5.1.71-1.el6.i686
    [root@CentOS-1 www]# yum remove mysql           //卸载自带的mysql,自带与我们安装的会有冲突,
    

    mysql被删除,配置的话;可以使用绝对路径/usr/local/mysql/bin/mysql
    或重新指定mysql命令绝对路径,写一个path.sh文件

    [root@CentOS-1 www]# vim /etc/profile.d/path.sh
    #!/bin/bash
    export PATH=$PATH:/usr/local/mysql/bin
    ~
    ~
    ~
    [root@CentOS-1 www]# source /etc/profile.d/path.sh  //或source !$
    

    现在使用mysql的配置文件,就是之前自己安装的mysql的配置

    [root@CentOS-1 www]# which mysql
    /usr/local/mysql/bin/mysql        //现在的mysql的绝对路径,是之前自己安装的位置
    

    创建一个库

    [root@CentOS-1 www]# mysql
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 5
    Server version: 5.1.73-log MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> create database discuz;                                                 //创建数据库的语句
    Query OK, 1 row affected (0.00 sec)
    mysql> grant all on discuz.* to 'discuz'@'localhost' identified by '1234qwer'; //创建用户名:discuz,密码:1234qwer
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> Ctrl-C -- exit!
    Aborted
    

    WEB界面输入MySQL配置账户等信息,点击“下一步” 安装即可;

  • 相关阅读:
    16.检查是否为BST
    15.输出单层结点
    14.高度最小的BST
    *13.有向路径检查
    12.二叉树平衡检查
    11.双栈排序
    10.回文链表
    9.链式A+B
    8.链表分割
    7.访问单个节点的删除
  • 原文地址:https://www.cnblogs.com/cy-8593/p/12333021.html
Copyright © 2011-2022 走看看