广告
返回顶部
首页 > 资讯 > 数据库 >LAMP纯源码编译安装日志
  • 203
分享到

LAMP纯源码编译安装日志

2024-04-02 19:04:59 203人浏览 泡泡鱼
摘要

一.LAMP构架的安装与经验技巧(源码安装好处。是便于管理,可以选定参数,可以使用新版本)相关软件列表:# ls /soft/ | grep -E "*.gz|*.zip|*.xz|*.bz2" 


一.LAMP构架的安装与经验技巧(源码安装好处。是便于管理,可以选定参数,可以使用新版本)

相关软件列表:

# ls /soft/ | grep -E "*.gz|*.zip|*.xz|*.bz2"
    apr-1.4.5.tar.gz
    apr-util-1.3.12.tar.gz
    autoconf-2.61.tar.gz
    freetype-2.3.12.tar.gz
    Httpd-2.4.18.tar.bz2
    jpegsrc.v6b.tar.gz
    libgd-2.1.1.tar.xz
    libmcrypt-2.5.8.tar.gz
    libpng-1.4.1.tar.gz
    libxml2-2.7.6.tar.gz
    Mysql-5.6.17.tar.gz
    pcre-8.10.zip
    PHP-5.6.18.tar.gz
    zlib-1.2.5.tar.gz

参考解压方式:  for n in *.tar.gz; do tar zxf $n;done;

其余用:              tar xf filename

  1. apache 的安装与使用经验
            动态编译与静态编译(每次启动服务的时候都加载)
        (apache的扩展插件是通过模块机制扩展的。apache支持php是通过编译模块然后加载模块实现的。)
    (1) apache 需要的相关库文件 apr  apr-util  pcre(支持rewrite功能)
        cd apr-1.4.5
        ./configure --prefix=/usr/local/apr
        make && make instal
        cd apr-util-1.3.12
        ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
        make && make install
        cd pcre-8.10
        ./configure --prefix=/usr/local/pcre
        make&&make install
    下面是功能模块(使apache支持功能起到壮大apache的作用)
    (2) 安装libxml2
        cd libxml2-2.7.6
        ./configure --prefix=/usr/local/libxml2
        make && make install
    (3)安装libmcrypt
        cd libmcrypt-2.5.8
        ./configure --prefix=/usr/local/libmcrypt
        make && make install
    (4)安装zlib
        cd zlib-1.2.5
        ./configure
        make && make install
    (5)安装 libpng
         cd libpng-1.4.1
         ./configure --prefix=/usr/local/libpng
         make && make install
    (6)安装jpeg6
        此安装包无法自动创建目录需要手动添加
        mkdir /usr/local/jpeg6
        mkdir -p /usr/local/jpeg6/{lib,bin,include}
        mkdir -p /usr/local/jpeg6/man/man1
        cd jpeg-6b
         ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
         make && make install
     错误checking host system type... Invalid configuration `x86_64-unknown-linux-gnu': Machine `x86_64-unknown' not recognized
     或者出现make: ./libtool: Command not found
        一般原因是 所以来的libtool 库文件版本低或缺失。
        解决方法:安装高版本的libtool 然后拷贝2个文件
        cp /usr/share/libtool/config/config.sub .
        cp /usr/share/libtool/config/config.guess .
        继续 make && make install
    (7)安装freetype
         cd freetype-2.3.12
         ./configure --prefix=/usr/local/freetype
         make && make install
    (8)安装autoconf
        cd autoconf-2.61
        ./configure
        make && make install
    (9)安装GD库
        cd libgd-2.1.1
        ./configure \
        --prefix=/usr/local/gd2/ \
        --enable-m4_pattern_allow \
        --with-zlib=/usr/local/zlib/ \
        --with-jpeg=/usr/local/jpeg6/ \
        --with-png=/usr/local/libpng/ \
        --with-freetype=/usr/local/freetype/
        make && make install
    主题(一)apache源码编译安装
        cd httpd-2.4.18
     ./configure --prefix=/usr/local/apache2 \
    --enable-mods-shared=all \
    --enable-so \
    --enable-proxy-ajp \
    --enable-rewrite \
    --with-apr=/usr/local/apr \
    --with-apr-util=/usr/local/apr-util \
    --with-pcre=/usr/local/pcre
        make && make install
        # /usr/local/apache2/bin/apachectl start
        # curl 127.0.0.1
        <html><body><h2>It works!</h2></body></html>
    apache下的的主要目录;
    bin  build  cgi-bin  conf  error  htdocs  icons  include  logs  man  manual  modules
        (1)bin 是一些命令的存放位置。如httpd 提供apache服务管理如启动关闭。
        使用:./bin/httpd -k {start |restart|stop}
        apxs是编译模块相关的命令(PHP模块)
        apachectl是调用httpd服务的脚本。
        例如查看静态编译的模块
        # ./bin/apachectl -l
        Compiled in modules:
          core.c
          mod_so.c
          http_core.c
          worker.c
        # ./bin/httpd -l  (进一步证实http和apachectl关系)
            Compiled in modules:
              core.c
              mod_so.c
              http_core.c
              worker.c)
        (2) htdocs 这个目录是存放程序员编写的程序的目录
        (3) modules 放置apache编译模块的目录。 .so(模块的后缀名)
        (4) logs 日志文件目录 包含 pid 文件(包含apache父进程)
        *****ps -ef | grep httpd****
        查看子进程如果出现不连续可能是apache出现问题。出现重新启动。
        (5)conf 包含apache的所有配置文件
        (6)cgi-bin 提供一些在线表格的功能。如果不需要需要把这个目录下文件清空(减小安全隐患)

    apache 解析PHP语句http.conf里面的主要参数
        DirectoryIndex index.html index.php
        LoadModule php5_module        modules/libphp5.so
        AddType application/x-httpd-php .php

  2. 主题(二)mysql源码编译安装
        cd mysql-5.6.17
    cmake \
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    -DMYSQL_DATADIR=/usr/local/mysql/data \
    -DSYSCONFDIR=/etc \
    -DWITH_MYISAM_STORAGE_ENGINE=1 \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_MEMORY_STORAGE_ENGINE=1 \
    -DWITH_READLINE=1 \
    -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
    -DMYSQL_tcp_PORT=3306 \
    -DENABLED_LOCAL_INFILE=1 \
    -DWITH_PARTITION_STORAGE_ENGINE=1 \
    -DEXTRA_CHARSETS=all \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci

        Mysql编译安装属性值解析
        #cmake \
        -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
        #指定安装路径
        -DMYSQL_DATADIR=/usr/local/mysql/data \
        #指定mysql数据(库)文件的存放路径
        -DSYSCONFDIR=/etc \
        #配置文件
        -DWITH_MYISAM_STORAGE_ENGINE=1 \
        #引擎支持myisam
        -DWITH_INNOBASE_STORAGE_ENGINE=1 \
        #引擎支持 innodb
        -DWITH_MEMORY_STORAGE_ENGINE=1 \
        #引擎支持 memory-storage
        -DWITH_READLINE=1 \

        -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
        #指定mysql的sock文件路径
        -DMYSQL_TCP_PORT=3306 \
        #指定mysql端口号
        -DENABLED_LOCAL_INFILE=1 \
        -DWITH_PARTITION_STORAGE_ENGINE=1 \
        -DEXTRA_CHARSETS=all \
        -DDEFAULT_CHARSET=utf8 \
        -DDEFAULT_COLLATION=utf8_general_ci
        #指定字符集
        错误:
        CMake Error at cmake/readline.cmake:85 (MESSAGE):
          Curses library not found.  Please install appropriate package,
         remove CMakeCache.txt and rerun cmake.On Debian/ubuntu, package name is libncurses5-dev,
          on Redhat and derivates it is ncurses-devel.
        解决办法: yum install ncurses-devel -y
                \mv  \mv CMakeCache.txt /tmp
            然后重新 cmake(上面的指令如果没有错误提示)
            make && make install
        查看是否有mysql用户和组没有创建。
             useradd  mysql -s /sbin/nologin -M
        修改mysql权限:
            chown -R mysql.mysql /usr/local/mysql
        进入mysql安装目录下,执行初始化配置脚本,创建系统自带的数据库和表
        # ./scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --user=mysql
        启动mysql服务:# ./support-files/mysql.server start
     错误提示:
        Starting MySQL.... ERROR! The server quit without updating PID file (/usr/local/mysql/data/swallow.pid)
     可能出现的原因和解决方法:
        (1).如果是初次安装。可能是初始化没有成功。在执行初始化命令的时候。提示里面包含2个OK (代表成功。这种情况重新初始化
        (2)可能原来系统安装过mysql 。可以用ps -ef | grep msyql 查看。然后结束进程:pkill mysql
        (3)data 目录权限可能不对。 chmod  755 data
        (4)查看属主或属组 一般 在 创建mysql用户 的后面就会 chown -R mysql:mysql /usr/local/mysql (这个可能性不大)
        启动mysql程序:
            ./bin/mysql
        可以产看mysql状态:
        mysql> status
        --------------
        ./bin/mysql  Ver 14.14 Distrib 5.6.17, for Linux (x86_64) using  EditLine wrapper

        Connection id:          1
        Current database:
        Current user:           root@localhost
        SSL:                    Not in use
        Current pager:          stdout
        Using outfile:          ''
        Using delimiter:        ;
        Server version:         5.6.17 Source distribution
        Protocol version:       10
        Connection:             Localhost via UNIX Socket
        Server characterset:    utf8
        Db     characterset:    utf8
        Client characterset:    utf8
        Conn.  characterset:    utf8
        UNIX socket:            /var/lib/mysql/mysql.sock
        Uptime:                 7 min 7 sec
        Threads: 1  Questions: 5  Slow queries: 0  Opens: 67  Flush tables: 1  Open tables: 60  Queries per second avg: 0.011
        --------------
    主题(三) PHP源码编译安装
        cd php-5.6.18
    ./configure \
    --prefix=/usr/local/php \
    --with-config-file-path=/usr/local/php/etc \
    --with-apxs2=/usr/local/apache2/bin/apxs \
    --with-mysql=/usr/local/mysql/ \
    --with-libxml-dir=/usr/local/libxml2/ \
    --with-png-dir=/usr/local/libpng/ \
    --with-jpeg-dir=/usr/local/jpeg6/ \
    --with-freetype-dir=/usr/local/freetype/ \
    --with-gd=/usr/local/gd2/ \
    --with-zlib-dir=/usr/local/zlib/ \
    --with-mcrypt=/usr/local/libmcrypt/ \
    --with-mysqli=/usr/local/mysql/bin/mysql_config \
    --with-xpm-dir=/usr/lib64/ \
    --enable-soap  \
    --enable-mbstring=all \
    --enable-sockets
        参数详解;
            ./configure \
            --prefix=/usr/local/php \
            #安装路径
            --with-config-file-path=/usr/local/php/etc \
            #PHP的配置文件路径
            --with-apxs2=/usr/local/apache2/bin/apxs \
            #与apache连接需要的支持模块(工具
                    --with-mysql=/usr/local/mysql/ \
                    --with-libxml-dir=/usr/local/libxml2/ \
                    --with-png-dir=/usr/local/libpng/ \
                    --with-jpeg-dir=/usr/local/jpeg6/ \
                    --with-freetype-dir=/usr/local/freetype/ \
                    --with-gd=/usr/local/gd2/ \
                    --with-zlib-dir=/usr/local/zlib/ \
                    --with-mcrypt=/usr/local/libmcrypt/ \
                    # PHP需要的所有前面安装的连接模块
            --with-mysqli=/usr/local/mysql/bin/mysql_config \
            #指定PHP程序去连接mysql的方式
            #PHP5.3。3以后开发了mysqlnd。是PHP新的连接mysql的驱动配置方式:
                --with-mysql=mysqlnd \
                --with-mysqli=mysqlnd \
                --with-pdo-mysql=mysqlnd \
            如果想把这3种都加载可以把
            --with-mysqli=/usr/local/mysql/bin/mysql_config \
            这句换成上面3句。
            #这里需要注意的是;mysql的连接mysql方式有3种。分别是:mysql,mysqli和pdo
            #这里需要关注2个;mysqli 和pdo。(他们是主流的支持高版本的)
            --with-xpm-dir=/usr/lib64/ \
            --enable-soap  \
            --enable-mbstring=all \
            --enable-sockets
        错误:configure: error: xpm.h not found.
        解决方法:yum install libXpm-devel -y
        make && make install
     PHP动态加载模块的方法:如果在静态编译的时候那个模块没有编译进去可以动态加载。
        举例:查看源码下的模块目录;
            cd /soft/php-5.6.18/ext/
            下面的模块都可以通过动态加载,编译进去。以ftp 为例;
            cd ftp
            /usr/local/php/bin/phpize (借助这个命令生成所需的configure 等一系列的安装文件)
            ./configure --with-php-config=/usr/local/php/bin/php-config
            make && make install
            至此,就把ftp这个模块编译安装完成了。然后,需要去加载文件(修改php.ini)
            cd /usr/local/php/etc/
            vim php.ini (初次安装没有这个文件可以去/soft/php-5.6.18/源码目录去拷贝
            php.ini-development php.ini-production 一般这两个文件运维常用第二个)
            查找到 extension 相关的注释地方
            添加一下两句:(模块在PHP程序下的位置{一般编译动态模块后会提示的}和模块的名称)
            extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20131226/"
            extension = ftp.so
            如果要加载模块需要重新启动apache服务器
             /usr/local/apache2/bin/httpd -k restart
            查看PHP模块加载成功与否;可以用php 命令显示看是否有添加
            /usr/local/php/bin/php -m
        测试lamp是否搭建成功:
        在apach3的htdocs目录下新建.php文件
         vim ./htdocs/info.php
         <?php
         phpinfo();
         ?>
         浏览器测试:http://192.168.1.140/info.php
    结果显示空白。
         解决思路:查看 /usr/local/apache2/modules/ 是否含有 libphp5.so这个模块。
         (这个模块是apache负责PHP解析的)
         修改配置文件:http.conf
            ServerName loacalhost:80
        (仿照这行添加AddType application/x-gzip .gz .tgz)
         AddType application/x-httpd-php .php
        加载pdo-mysql 的错误:make 错误
        /soft/php-5.6.18/ext/pdo_mysql/php_pdo_mysql_int.h:27:34: error: ext/mysqlnd/mysqlnd.h: No such file or directory
        解决方法:cp -a /soft/php-5.6.18/ext/pdo_mysql /usr/local/php/include/php/ext/
        这里的思路是 :make 是在安装目录下操作。不是在源码目录操作。需要把依赖的文件放置到安装路径下。方便应用。
        但是:遗憾的是安装完成后,不可以加载。用常规方法:
            extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20131226/"
            extension = pdo_mysql.so
        重新启动了好多httpd 也没加载成功。用 bin/php -m 一直没有查看到。我可以确定修改php.ini文件生效,把那个ftp模块注释掉后
        就看不到那个模块出现。所以,只好重新编译的。
        将编译的--with-mysqli=/usr/local/mysql/bin/mysql_config \ 语句换成了:
                --with-mysql=mysqlnd \
                --with-mysqli=mysqlnd \
                --with-pdo-mysql=mysqlnd \
        这几句。支持3种方式连接mysql。这里mysqlnd是PHP5.3以上的默认连接mysql的引擎
        PHP不在支持扩展mysql(mysqli) 编译的时候可以是:--with-pdo-mysql=mysqlnd \
        附上PHP连接的3个脚本
        cat mysqli.php mysql-pdo.php mysql.php
            <?php
            $conn = mysqli_connect('localhost', 'root', '', 'mysql');
            if(!$conn){
            die("数据库连接错误" . mysqli_connect_error());
            }else{
            echo"数据库连接成功";
            }
            ?>
            <?php
            try{
            $pdo=new pdo("mysql:host=127.0.0.1;dbname=mysql","root","");
            }catch(PDDException $e){
            echo "数据库连接错误";
            }
            echo "恭喜!数据库连接成功";
            ?>
            <?php
            $conn = @ mysql_connect("localhost", "root", "") or die("数据库连接错误");
            mysql_select_db("bbs", $conn);
            mysql_query("set names 'utf8'");
            echo "数据库连接成功";
            ?>
    查看 phpinfo() 信息来查看PHP 详细情况。
        上传文件关注如下几个参数:
        post_max_size = 128M
        upload_max_filesize = 128M
        #这两个设置一样即可,可以更大但要注意超时
        max_execution_time = 30
        max_input_time = 600
        memory_limit = 32M


    my.cnf 的执行顺序:
        1. /etc
        2."$basedir/my.cnf" (需要把/etc/my.cnf 更改)
    php.ini生效路径问题
    PHP将按照如下顺序依次查找该文件:
    1.当前工作目录;
    2.环境变量PHPRC指明的路径;
    3.编译时指定的路径。

您可能感兴趣的文档:

--结束END--

本文标题: LAMP纯源码编译安装日志

本文链接: https://www.lsjlt.com/news/45418.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • LAMP纯源码编译安装日志
    一.LAMP构架的安装与经验技巧(源码安装好处。是便于管理,可以选定参数,可以使用新版本)相关软件列表:# ls /soft/ | grep -E "*.gz|*.zip|*.xz|*.bz2" ...
    99+
    2022-10-18
  • 源码编译安装LAMP环境
    1、请描述一次完整的http请求处理过程;2、httpd所支持的处理模型有哪些,他们的分别使用于哪些环境。3、源码编译安装LAMP环境(基于wordpress程序),并写出详细的安装、配置、测试过程。4、建...
    99+
    2022-10-18
  • PHP源码编译安装
    目录 编译环境编译过程运行配置运行环境1. 创建php.ini文件2. 创建 php-fpm.conf文件3. 创建 www.conf文件4. 配置连接socket为文件(可选)5. 配置ng...
    99+
    2023-09-21
    php sqlite ubuntu
  • 源码编译安装mysql5.7.18
    #yum install -y gcc-c++ cmake vim ncurses-devel wget#useradd mysql -s /home/nologin#mkdir /soft/my...
    99+
    2022-10-18
  • MySQL源码编译安装
    1、安装cmake-2.8.10.2.tar.gz以root用户进入shell#tar -zxvf  cmake-2.8.10.2.tar.gz#cd cmake-2.8.10.2#./confi...
    99+
    2022-10-18
  • 源码编译安装MySQL8.0.20
    2 源码编译安装的相关知识 2.1 make与configure make是一个编译的命令,会在当前的目录下寻找Makefile这个文件,Makefile文件记录了源代码如何编译的详细信息。而configure是由软件开发商编写的一个检测程...
    99+
    2017-08-02
    源码编译安装MySQL8.0.20
  • MySQL5.7.26 源码编译安装
    1.安装依赖组件yum -y install gcc gcc-c++ pcre pcre-devel openssl openssl-devel yum -y install zlib zlib-devel...
    99+
    2022-10-18
  • 源码编译安装mysql-5.7.14
    1.下载并上传 mysql-5.7.14.tar.gz view plain copytar -zxf msql-5.7.14.tar.gz  2...
    99+
    2022-10-18
  • 源码编译怎么安装PostgresSQL
    这篇文章主要讲解了“源码编译怎么安装PostgresSQL”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“源码编译怎么安装PostgresSQL”吧!一、环境...
    99+
    2022-10-18
  • 源码编译怎么安装pg11.5
    这篇文章主要介绍“源码编译怎么安装pg11.5”,在日常操作中,相信很多人在源码编译怎么安装pg11.5问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”源码编译怎么安装pg11...
    99+
    2022-10-18
  • 源码如何编译安装MySQL5.6.12
    这篇文章主要为大家展示了“源码如何编译安装MySQL5.6.12”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“源码如何编译安装MySQL5.6.12”这篇文章吧...
    99+
    2022-10-18
  • MySQL5.7.16源码编译安装的过程
    这篇文章主要讲解了“MySQL5.7.16源码编译安装的过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL5.7.16源码编译安装的过程”吧!安装...
    99+
    2022-10-18
  • 如何用源码编译安装MySQL8.0.20
    这篇文章主要讲解了如何用源码编译安装MySQL8.0.20,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。1 概述本文章主要讲述了如何从源码编译安装MySQL社区版8.0.20,...
    99+
    2022-10-18
  • MySQL5.6源码编译安装的流程
    本篇内容主要讲解“MySQL5.6源码编译安装的流程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL5.6源码编译安装的流程”吧! ...
    99+
    2022-10-18
  • VS2022编译安装Qt6.5源码教程
    目录一、准备环境二、下载Qt 6.5源码三、解压四、编译、安装一、准备环境 包括安装VS2022,Windows SDK,Python3,这里就不再一一介绍了,需要说明的一点是还需要...
    99+
    2023-05-20
    VS2022编译安装Qt6.5源码 VS2022安装Qt6.5源码
  • CentOS 6.10源码编译及使用ansible编译安装httpd2.4.39
    一、编译安装 编译环境准备 主机 系统 A centos6.10 编译所需的httpd、apr、ap...
    99+
    2022-06-04
    ansible安装httpd ansible源码
  • 源码编译安装MySQL 5.7.9的过程
    这篇文章主要介绍“源码编译安装MySQL 5.7.9的过程”,在日常操作中,相信很多人在源码编译安装MySQL 5.7.9的过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”源码编译安装MySQL 5.7.9...
    99+
    2023-06-01
  • Ubuntu源码编译安装Apache的教程
    这篇文章主要讲解了“Ubuntu源码编译安装Apache的教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Ubuntu源码编译安装Apache的教程”吧!apache 安装指南:http:...
    99+
    2023-06-05
  • 源码包编译安装MySQL 5.6脚本
    源码包编译安装MySQL5.6脚本,一个机器安装两个MySQL数据库,编译时指定端口,安装路径和socket文件位置。 安装完成的MySQL安装文件可以打包复制到别的机器使用,在别的机器使用时候只...
    99+
    2022-10-18
  • 红帽mysql5.6源码编译安装过程
    操作系统more /etc/centos-release CentOS release 6.8 (Final)mysql5.6.44版本获取https://dev.mysql.com/get/Downloa...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作