zoukankan      html  css  js  c++  java
  • Linux LAMP架构搭建

    一.部署LAMP基本架构

    1.L(linux)A(apache)M(mysql)P(php)

    2.稳定版本(mysql5.1,php5.3,apache2.2)

    3.安装顺序,mysql-->apache-->php

    4.将所需的压缩包放指定目录。

    (1)编译原理:主要为了让C语言开发的包编译成二进制文件。

    (2)系统是区分64位与32位 ,对应的安装包

    (3)查看linux系统位,uname –a。i686是32 x86是64。

    5.安装mysql

    (1)解压mysql压缩包

      tar zxvf mysql.tar.gz                             

    (2)将mysql目录移动/usr/下。

      mv mysql目录 /usr/local/mysql             

    (3)在mysql目录下,创建目录,作为datadir(数据目录)

      mkdir /data/mysql                                 

    (4)创建mysql用户,不允许登陆,不创建家目录。

      useradd -s /sbin/nologin -M mysql         

    (5)将/data/mysql/目录所属组所属主给mysql用户。

      chown -R mysql:mysql /data/mysql/         

    (6)将配置文件存放到/etc/my.conf覆盖。

      cp /mysql目录/support-files/my-large.cnf /etc/my.cnf

        

    (7)修改配置文件

      vim进入/etc/my.conf

    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
    # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
    # *** default location during install, and will be replaced if you
    # *** upgrade to a newer version of MySQL.
    
    [mysqld]
    port            = 3306
    socket          = /usr/local/mysql/mysql.sock
    datadir      = /data/mysql
    pid-file = /data/mysql/mysql.pid
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    ------------------------------------------
    常用参数:

    Port                               #监听端口

    Socket                             #通信方式

    Key_buffer_size                   #mysql内存使用大小

    Log-bin=mysql-bin               #记录二进制日志,注释掉。

    Binlog_format=mixed            #日志相关参数,注释掉。

    Server_id=1                 #主从复制参数,注释掉。

    (8)将服务的启动脚本放入/etc/init.d/下。

      cp /mysql目录/support-files/mysql.server /etc/init.d/mysqld

      

    (9)修改启动文件。

      vi /etc/init.d/mysqld                       

    # The following variables are only set for letting mysql.server find things.
    
    # Set some defaults
    mysqld_pid_file_path=
    if test -z "$basedir"
    then
      basedir=/usr/local/mysql    
      bindir=/usr/local/mysql/bin
    mysqld_pid_file_path=/data/mysql/master.pid
    ------------------------------------------

    basedir     #定义程序所在路径

    bindir     #定义数据库启动路径

    (10)在mysql目录下初始化mysql服务,看到两个ok就没问题。

      mysql]#./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

    报错1:Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
        解决:yum install –y libai*
    
    报错2:Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
        解决:yum install –y numactl-*
    (10)报错

    (11)查看是否生成mysql,test。

      mysql]#ls /data/mysql                 

    (12)启动mysql。

      mysql]#/etc/init.d/mysqld start    

    报错1:Starting MySQL.... ERROR! The server quit without updating PID file (/data/mysql/localhost.localdomain.pid).
        解决:[root@localhost ~]# cd /usr/local/mysql 
                 [root@localhost mysql]# chown -R mysql.mysql . 
                 [mysql@localhost mysql]#scripts/mysql_install_db
    
    
                            
    (12)报错

    (13)查看mysql进程。

      ps aux|grep mysql

    (14)开启mysql命令终端Mysql>。

      /usr/local/mysql/bin/mysql   

    报错1:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
        解决:ln -s  /usr/local/mysql/mysql.sock           /tmp/mysql.sock
    (15)报错

    6.apache安装

    (1)解压。

      tar zxf httpd-2.2.16.tar.gz   

    (2)进入解压后目录。

      cd httpd-2.2.16                   

    (3)安装gcc

      yum -y gcc                       

    (4)编译安装。

      ./configure --prefix=/usr/local/apache2 --with-included-apr --with-pcre --enable-mods-shared=most

    --whit-included-apr 
    注:可进行平台移植,动态运行库
    --enable-mods-shared=most 注:enable静态模块,与apache一通执行,占用内存cpu,速度快 注:shared动态模块,可调用执行
    注:enable-mods-shared=all 安装所有动态模块,不用可以手动禁掉
    报错1:在http2.4编译安装时会出现报错
    configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.
    解决:在Apache官网下载 两个ARP插件覆盖到http文件内
    # cd /usr/local/src<br data-filtered="filtered"># wget http://apache.fayea.com/apr/apr-1.5.2.tar.bz2
    # wget http://apache.fayea.com/apr/apr-util-1.5.4.tar.bz2
    # tar -jxvf apr-util-1.5.4.tar.bz2
    # tar -jxvf apr-1.5.2.tar.bz2
    # cp -rf apr-1.5.2 /usr/local/src/httpd-2.4.18/srclib/apr 
    # cp -rf apr-util-1.54 /usr/local/src/httpd-2.4.18/srclib/apr
    
    报错2:configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
        解决:yum -y install pcre-devel
    (4)报错

    (5)编译。测试echo $?

      make          

    报错1: xml/apr_xml.c:442: 错误:‘apr_xml_parser’没有名为‘xp’的成员
        解决:yum inatsll expat-devel -y
    (5)报错

    (6)编译安装

      make install                                

    7.php安装(最后安装)

    (1)解压

      tar zxf php-5.3.28.tar.gz      

    (2)进入解压目录

      cd php-5.3.28                     

    (3)编译安装,依赖模块。

      ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --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 --disable-ip6    

    yum -y install  libxml2-devel*
    yum -y install  bzip2-devel*
    yum -y install  curl curl-devel
    yum -y install  libjpeg-devel
    yum -y install  openssl-devel*
    yum -y install  freetype-devel*
    yum -y install libpng-devel yum -y install libmcrypt-devel* #没有安装包需要下载源码包
    #安装编译包
    注:如果报错可同过 yum list | grep 报错名 :来查找需要安装的包

      make      #编译

      make install   #编译安装

    7.配置LAMP架构文件

    (1)apche主配置文件。

      /usr/local/apache2/conf/httpd.conf         

    (2).so模块。

      /usr/local/apache2/modules/                   

      注:libphp5.so做支持的与/usr/local/php/bin/php相同。

    (3)查看模块命令。

      ldd /usr/local/apache2/modules/libphp5.so    

    (4)查看php编译参数目录。

      /usr/local/php/bin/php -i |les s                     

       cat /usr/local/apache2/build/config.nice              #查看apche编译参数目录。

       cat /usr/local/mysql/bin/mysqlbug|grep configure #查看mysql编译参数目录

       ①php-5.4.28]#cp php.ini-developmen /usr/local/php/etc/php.ini              #开发环境使用。

       ②php-5.4.28]#cp php.ini-production  /usr/local/php/etc/php.ini               #生产环境使用。

         注:/usr/local/php/bin/php –i |less                #验证加载配置文件。

         

    (6)查看php加载的模块。

      /usr/local/php/bin/php -m                     

       /usr/local/apache2/bin/apachectl -M             #查看apache加载模块。

      注:(shared)动态。(static)静态。

    (7)查看状态。

      /usr/local/apache2/bin/apachectl -t        

      注:apr sockaddr_info_get()          #表示SELINUX没有关闭。

             Syntax OK                  #没有问题。

    (8)启动apahce配置文件。

      usr/local/apache2/bin/apachectl start       

    报错1:AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
        解决:[root@server conf]# vi httpd.conf
        #ServerName www.example.com:80
           ServerName localhost:80
      
    (8)报错

    (9)查看启动进程。

      ps aux | grep httpd          

    8.测试httpd解析php。

    (1)编辑解析php。

      vim /usr/local/apache2/htdocs/1.php    

      

      注:页面访问。

    (2)访问失败,排错。

      Vim /usr/local/apache2/conf/httpd.conf        #排查配置文件。

      

      注:查看php模块加载。

      

      注:添加AddType。

    (3)测试配置文件。

      /usr/local/apache2/bin/apachectl -t     

    (4)重启配置文件。

      /usr/local/apache2/bin/apachectl restart 

    9.测试启动

     

    二.在LAMP基础上架设论坛网站,虚拟主机。

    1.关闭SELINUX

    (1)编辑配置文件注:长期关闭。

      vim /etc/selinux/config         

    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #     enforcing - SELinux security policy is enforced.
    #     permissive - SELinux prints warnings instead of enforcing.
    #     disabled - No SELinux policy is loaded.
    SELINUX=disabled
    # SELINUXTYPE= can take one of these two values:
    #     targeted - Targeted processes are protected,
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted

    (2)临时关闭

      getenforce 0                       

    2.查找php无法解析原因。

    (1)查看apache是否调用php模块。

      /usr/local/apache2/bin/apachectl -M

     php5_module (shared)

    (2)如果没有模块,需要查找是否有编译过php模块。

      

    (3)如果有需要看一下apache主配置文件下是否调用php模块。

      vim /usr/local/apache2/conf/httpd.conf

     LoadModule php5_module        modules/libphp5.so
    注:这个php模块是在编译的时候通过apxs模块自动写入的。

    (4)查看apache主配置文件下,php支持模块是否写入。

      vim /usr/local/apache2/conf/httpd.conf

      AddType application/x-httpd-php .php
    

    (5)apache主配置文件下添加index.php主页类型。

       vim /usr/local/apache2/conf/httpd.conf

    <IfModule dir_module>
        DirectoryIndex index.html index.php
    </IfModule>

    3.编辑虚拟主机

    (1)解开注释,虚拟主机配置文件。

      vim /usr/local/apache2/conf/httpd.conf

    Include conf/extra/httpd-vhosts.conf

    (2)编辑解注释一行的配置文件。

      vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

    # You may use the command line option '-S' to verify your virtual host
    # configuration.
    
    #
    # VirtualHost example:
    # Almost any Apache directive may go into a VirtualHost container.
    # The first VirtualHost section is used for all requests that do not
    # match a ServerName or ServerAlias in any <VirtualHost> block.
    #
    <Directory "/usr/local/apache">
        Options Indexes FollowSymLinks
        AllowOverride all
        Require all granted
    </Directory>
    <VirtualHost *:80>
        DocumentRoot "/usr/local/apache"
        ServerName 123.com
        CustomLog "logs/123.com-access_log" common
    </VirtualHost>
    -------------------------------------------
    常用参数

    <VirtualHost *:80>

     Serveradmin                            #管理员邮箱

     documentRoot                           #目录URL

     ServerName                             #域名访问

    ServerAlias                             #域名别名(可写多行)

    Errorlog                                #错误日志

    Customlog                               #访问日志common格式

    </VirtualHost>

    ----------------------------------------------

    虚拟主机参数,适用Apache2.4往后版本

    <Directory "C:/xxx/xxx">  
        Options Indexes FollowSymLinks  
        AllowOverride all  
        Require all granted  
    </Directory>  
      
    <VirtualHost *:80>  
        DocumentRoot "C:/xxx/xxx"  
        ServerName www.xxx.com  
    </VirtualHost> 

    注:虚拟主机,可以给予多IP多端口多域名的配置。

    (3)apache主配置文件下的相对路径参数。

      vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

    ServerRoot "/usr/local/apache2"

    (4)测试配置文件。

      /usr/local/apache2/bin/apachectl -t

    (5)重启主配置文件。

      /usr/local/apache2/bin/apachectl restart

      

    4.安装论坛网站

    (1)解压论坛文件包。

      unzip Discuz_X3.2_SC_GBK.zip

    (2)将网站程序移动到网站目录下。

      mv uplocad/* ./

    (3)删除多余文件。

      rm -rf upload/ utility/ readme/

    (4)权限修改。

      ps aux | grep httpd

      注:http执行用户位daemon用户,而网站文件是root用户,则没有权限执行

       chown -R daemon config/ data uc_client/data uc_server/data

      注:修改网站文件目录的执行用户,-R递归目录下的子目录。

      注:域名访问IP首选是 虚拟主机

      打开 windos系统下hosts文件
      

    (5)打开网站安装。

    (6)安装,下一步à。

    (7)配置mysql,数据库网站安装。

      /etc/init.d/mysqld start

       注:启动mysql。

    (8)添加开机自启动。

      chkconfig --list | grep mysql         #查看是否存在mysql服务。

      chkconfig --add mysqld      #添加mysqld服务

      chkconfig mysqld on      #打开开机自启动

      /usr/local/mysql/bin/mysql

      注:测试启动mysql

    (9)添加环境变量赋值。可使用mysql命令直接启动。在当前终端生效。

        PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:

       /usr/bin:/root/bin:/usr/local/mysql/bin

    (10)设置所有终端都可访问。

      vim /etc/profile

    #文件最下面输入
    export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin

      source /etc/profile  #即时生效

    (11)设置mysql管理员密码。

      mysqladmin -uroot password ’123456‘

      mysql -u root –p  #登陆 

      注:再次登陆应输入管理员,与密码。

    (12)mysql下添加普通用户赋予管理权限,对应主机,与密码。

      mysql> grant all on *.* to 'user1'@'localhost' identified by 'discuz';

    (13)继续安装论坛

    注:添加数据库选项。

    注:安装数据库。

    注:完成论坛安装。

  • 相关阅读:
    虚幻4游戏开发_3_创建与继承材质
    Python 之 读取txt文件
    Guava ---- Concurrent并发
    leetCode 67.Add Binary (二进制加法) 解题思路和方法
    poj 1331 Multiply
    二叉树的三叉存储
    FTPClientUtil FTPclient工具
    HDU1018 Big Number n!的位数
    MyBatis參数格式化异常解决方式:MyBatisSystemException:
    Spark:大数据的电花火石!
  • 原文地址:https://www.cnblogs.com/xiangsikai/p/8110067.html
Copyright © 2011-2022 走看看