• 源码安装lamp环境


    源码编译lamp环境

    1、安装httpd软件包

    首先下载最新的源码包

    apr-1.5.2.tar.gz apr-util-1.5.4.tar.gz、pcre-8.41.tar.gz

    httpd-2.4.28.tar.gz

     安装之前请先安装make、gccopenssl等编译工具开发包

    [root@x112 ~]# yum -y install make gcc gcc-c++ openssl openssl-devel expat-devel 

    openssl-devel提供mod_ssl功能,gcc-c++pcre依赖包程序;

     编译安装依赖包apr-1.5.2.tar.gz

    [root@x112 ~]# tar zxvf apr-1.5.2.tar.gz

    [root@x112 ~]# cd apr-1.5.2

     [root@x112 apr-1.5.2]# ./configure --prefix=/usr/local/apr

    [root@x112 apr-1.5.2]# make && make install

     编译安装依赖包apr-util-1.5.4.tar.gz

    [root@x112 ~]# tar zxvf apr-util-1.5.4.tar.gz

    [root@x112 ~]# cd apr-util-1.5.4

    [root@x112 apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util/

    --with-apr=/usr/local/apr/bin/apr-1-config

    [root@x112 apr-util-1.5.4]# make && make install

     编译安装依赖包pcre-8.41.tar.gz

    [root@x112 ~]# tar zxf pcre-8.41.tar.gz

    [root@x112 ~]# cd pcre-8.41

    [root@x112 pcre-8.41]# ./configure --prefix=/usr/local/pcre

    [root@x112 pcre-8.41]# make –j 4 && make install

     编译安装Apache

    [root@x112 httpd-2.4.28]# tar zxvf httpd-2.4.28.tar.gz -C /usr/local/src/

    [root@x112 httpd-2.4.28]# cd /usr/local/src/httpd-2.4.28/

    [root@x112 httpd-2.4.28]# ./configure --prefix=/usr/local/apache

    --enable-so

    --enable-rewrite

    --enable-ssl

    --with-apr=/usr/local/apr

    --with-apr-util=/usr/local/apr-util/

    --with-pcre=/usr/local/pcre/ 

     [root@x112 httpd-2.4.28]# make && make install

     注:

    --enable-so#支持动态加载模块

    --enable-rewrite#支持网站地址重写

    --enable-ssl#支持ssl加密需要提前安装openssl-devel

    --with-apr=/usr/local/apr#关联apr

    --with-apr-util=/usr/local/apr-util #关联apr-util

    --with-pcre=/usr/local/pcre#关联pcre

    --libdir=/usr/lib64                   #关联库文件

    [root@x112 httpd-2.4.28]#/usr/local/apache/bin/httpd

     配置文件

    [root@x112 ~]# ls /usr/local/apache/conf/httpd.conf

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

     网站根目录

    [root@x112 ~]# ls /usr/local/apache/htdocs/

    index.html

     生成启动脚本

    [root@x112 ~]# cp /usr/local/apache/bin/apachectl /etc/init.d/

    [root@x112 ~]# chmod +x /etc/init.d/apachectl

    写个apache系统服务脚本, 754的权限保存此文件/usr/lib/systemd/system/apache.service,也可以拷贝yum安装的httpd脚本进行修改

    [Unit]

    Description=apache

    After=network.target

    [Service]

    Type=forking

    ExecStart=/etc/init.d/apachectl -k start

    ExecReload=/etc/init.d/apachectl -k restart

    ExecStop=/etc/init.d/apachectl -k stop

    PrivateTmp=true

    [Install]

    WantedBy=multi-user.target

    [root@x112 system]# systemctl daemon-reload   重新加载,写入硬盘生效

    需要注意的是,service  apachectl start 启动的httpd服务,只能由service apachectl stop 进行关闭;而systemctl start apahce 启动的httpd服务,命令systemctl stop apahce和service apachectl stop 均可以关闭。

    服务添加到系统启动服务

    [root@x112 ~]# systemctl enable apache

    启动服务

    [root@x112 ~]# /etc/init.d/apachectl start  systemctl start apache

    测试访问

    2、安装mysql软件包

    下载地址

    http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.19.tar.gz

    http://liquidtelecom.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz

    MySQL5.7版本之后,boost是必须的,建议把系统自带的boost库卸载源码编译安装高版本

    [root@x112 ~]# yum -y remove boost-*

    卸载系统自带mysql

    [root@x112 ~]# yum -y remove mysql

     

    安装必要的资源包

    建议使用网络yum源,RHEL7光盘中自带的软件包版本不够,mysql-5.7.19.tar.gz编译对软件包的版本要求比较,其中cmake的版本要不低于2.8

    网络yum源配置可以参考http://blog.sina.com.cn/s/blog_14e8c64ca0102vztv.html

    安装依赖包

    yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel

     

    添加用户和组

    [root@x112 ~]# groupadd mysql

    [root@x112 ~]# useradd -M -s /sbin/nologin -r -g mysql mysql

     

    创建安装目录和数据存放目录(生产环境一般独立磁盘)

    添加一块新的硬盘创建分区sdb1并分配所有的空间

    注:mysql-5.7.19.tar.gz安装时占用空间比较大,建议添加一块硬盘进行安装

     

    解压源码

     [root@x112 ]# tar zxf mysql-5.7.19.tar.gz

     [root@x112 ~]# cd mysql-5.7.19

    [root@x112 mysql-5.7.19]#cmake -DCMAKE_INSTALL_PREFIX=/var/lib/mysql

    -DMYSQL_DATADIR=/var/lib/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

    -DDOWNLOAD_BOOST=1

    -DWITH_BOOST=/root/mysql-5.7.19/boost/boost_1_59_0

     

     这些编译参数的帮助寻找方法:

    http://www.mysql.com→→Documentation→→选择对应的版本(5.7)Installation & Upgrades→→Installing MySQL from Source →→MySQL Source-Configuration Options

    最终的URL https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html               

     

    DCMAKE_INSTALL_PREFIX:指定MySQL程序的安装目录,默认/usr/local/mysql
    DEFAULT_CHARSET:指定服务器默认字符集,默认latin1
    DEFAULT_COLLATION:指定服务器默认的校对规则,默认latin1_general_ci
    ENABLED_LOCAL_INFILE:指定是否允许本地执行LOAD DATA INFILE,默认OFF
    WITH_COMMENT:指定编译备注信息
    WITH_xxx_STORAGE_ENGINE:指定静态编译到mysql的存储引擎,MyISAM,MERGE,MEMBER以及CSV四种引擎默认即被编译至服务器,不需要特别指定。
    WITHOUT_xxx_STORAGE_ENGINE:指定不编译的存储引擎
    SYSCONFDIR:初始化参数文件目录
    MYSQL_DATADIR:数据文件目录
    MYSQL_TCP_PORT:服务端口号,默认3306
    MYSQL_UNIX_ADDR:socket文件路径,默认/tmp/mysql.sock

     

    编译

    mysql-5.7.19.tar.gz编译时会占用大量的系统资源建议使用个核心同时进行编译,否则可能会编译失败

    [root@x112 mysql-5.7.19]# make -j 2

    make -j 2   #注:-j 用来指定CPU核心数,可加快编译速度。 加 -j 2我用2核心来编译的,可以提高编译速度;当然你要确定CPU多少核心

    查看服务器CPU核心数

    [root@x112 ~]# grep processor /proc/cpuinfo | wc -l

    2

     

    安装

    [root@x112 mysql-5.7.11]# make install

    [root@x112 mysql-5.7.19]# ls /var/lib/mysql/

    bin      docs     lib  mysql-test  share

    COPYING  include  man  README      support-files

    [root@x112 mysql-5.7.19]#

        

    创建数据目录 存放数据文件

    [root@x112 ~]#mkdir -p /var/lib/mysql/data/

     

    修改目录权限

    [root@x112 ~]# chown -R mysql:mysql /var/lib/mysql

    生成配置文件

    [root@x112 ~]# mv /etc/my.cnf{,.bak}

    自行创建my.cnf配置文件

    :有些网友文章在这一步中会写到从/usr/local/mysql/support-files 这个目录复制my-default.cnf 到/etc/下作为my.cnf 配置文件,我这里没有这个文件,所以直接在配置环节,自己配置了一个my.cnf文件。

     

    [root@x112 ~]#vim /etc/my.cnf

    [mysqld]

    basedir=/var/lib/mysql

    datadir=/var/lib/mysql/data

    port=3306

    socket=/var/lib/mysql/mysql.sock

    symbolic-links=0

    character-set-server=utf8

    log-error=/var/log/mysqld.log

    pid-file=/var/run/mysqld/mysqld.pid

    [mysql]

    socket=/var/lib/mysql/mysql.sock

    # 一般配置选项

    basedir = /var/lib/mysql

    datadir = /var/lib/mysql/data

    port = 3306

    socket = /server/mysql/mysql.sock

    pid-file=/var/run/mysqld/mysqld.pid

    character-set-server=utf8

     

    创建相关目录及授权 mkdir -p /var/run/mysqld/ && chow mysql.root  /var/run/mysqld/

     

    生成服务启动脚本

    [root@x112 ~]#

    cp /var/lib/mysql/support-files/mysql.server /etc/init.d/mysqld

    [root@x112 ~]# chmod +x /etc/init.d/mysqld

    [root@x112 ~]# chkconfig --add mysqld

    [root@x112 ~]# chkconfig mysqld on

    [root@x112 ~]# chkconfig --list mysqld

    mysqld         0:off1:off2:on 3:on  4:on  5:on  6:off

    初始化数据库(如果无法初始化先启动mysql)

    [root@x112 mysql]# mysqld --verbose --help

    [root@x112 ~]#/var/lib/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql/data非安全初始化

    [root@x112 ~]#/var/lib/mysql/bin/mysqld --initialize  --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql/data安全初始化

    :到这一步很容易出问题,在初始化的时候一定要加上面的参数,而且在执行这一步操作前/data/mysql/data 这个目录必须是空的;在这里指定的basedir 和 datadir 目录必须要和/etc/my.cnf 配置的目录一致才行。

     

    启动服务

    [root@x112 ~]# /etc/init.d/mysqld start

    Starting MySQL..  SUCCESS!

    注:这一步也是很容易出问题的地方,当这里出现问题的时候,不要慌,看mysql 错误日志的内容,一般根据mysql 错误日志的提示都能很好的解决问题。

     

    添加path路径: vim /etc/profile 添加下面2行 在文件的结尾

    export MYSQL_HOME=/var/lib/mysql

    export PATH=$PATH:$MYSQL_HOME/bin

    使修改生效

    source /etc/profile

    [root@x112 ~]# ln -s /var/lib/mysql/bin/* /usr/local/bin/

     

    测试连接

    [root@x112 mysql]# mysql -uroot -p (安全初始化输入密码,grep ‘temporary’  /var/log/mysqld.log)

    [root@x112 mysql]# mysql -u root --skip-password(非安全初始化输入密码)

    mysql>

    修改mysql密码

    [root@x112 ~]# mysqladmin -u root password "123456"  用于非安全初始化修改密码 

    mysql> show databases;

    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';(更新密码,官方推荐)

    mysql> set password for 'root'@'localhost'=password('123456'); 修改密码方式二

    mysql> alter user 'root'@'localhost' identified by '123456';

    Query OK, 0 rows affected (0.00 sec)

    mysql>

    [root@x112 bin]# vim /etc/profile

    [root@x112 bin]# . /etc/profile

    [root@x112 bin]# mysql -uroot -p

    Enter password:

    Welcome to the MySQL monitor.  Commands end with ; or g.

    Your MySQL connection id is 11

    Server version: 5.7.19 Source distribution

    Copyright (c) 2000, 2017, 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> show databases;

    +--------------------+

    | Database           |

    +--------------------+

    | information_schema |

    | mysql              |

    | performance_schema |

    | sys                |

    +--------------------+

    4 rows in set (0.00 sec)

    mysql>

     3、安装php软件包

    源码编译安装php5.6.36

    官网地址:http://php.net/

    源码包下载地址http://am1.php.net/distributions/php-5.6.36.tar.gz

    安装epel扩展yum源

    [root@x112 php]#yum -y install epel epel-devel

    安装所需依赖包

    [root@x112 php]#yum -y install  libxml2 libxml2-devel zlib curl curl-devel libpng libpng-devel libjpeg

     

    解压

    [root@x112 php]#tar zxf php-5.6.36.tar.gz

    [root@x112 php]#cd php-5.6.36

     

    预编译

    [root@x112 php]#./configure ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --enable-mbstring --with-curl --with-gd --enable-fpm --enable-mysqlnd --with-pdo-mysql=mysqlnd --with-config-file-path=/usr/local/php/etc/ --with-mysqli=mysqlnd --with-mysql-sock=/user/local/mysql/mysql.sock

    Php配置选项中文手册http://php.net/manual/zh/configure.about.php

    注:

    --with-apxs2#将php编译为Apache的一个模块进行使用

    --enable-mbstring#多字节字符串的支持

    --with-curl#支持cURL

    --with-gd #支持gd库

    --enable-fpm #支持构建fpm

    --enable-mysqlnd  #启用mysqlnd

    --with-pdo-mysql#支持pdo:MySQL支持

    --with-config-file-path#设置配置文件路径

    --with-mysqli#支持MySQLi

    --with-mysql-sock#关联mysql的socket文件

     

    编译安装

    [root@x112 php]#make -j 2 && make install

    生成配置文件

    [root@x112 php]# cp php.ini-production /usr/local/php/etc/php.ini

    添加Apache支持

    [root@x112 php]# vim /usr/local/apache/conf/httpd.conf

    添加如下内容:

    <IfModule dir_module>

        DirectoryIndex index.php index.html

    </IfModule>

    <IfModule mime_module>

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

    </IfModule>

    创建测试页面

    [root@x112 php]# vim /usr/local/apache/htdocs/index.php

    <?php

            phpinfo();

    ?>

    重启apache

    [root@x112 php]# service httpd restart

    访问测试:

     

  • 相关阅读:
    对Spring Boot 及Mybatis简单应用
    云时代架构读后感(十)
    云时代架构读后感(九)
    云时代架构读后感(八)
    云时代架构读后感(七)
    云时代架构读后感(六)
    关于mysql,sqlserverl,与oracle数据库连接总结
    云时代架构读后感(五)
    javaweb实现添加课程
    javaweb入门(使用SQLserver2008 R2数据库)
  • 原文地址:https://www.cnblogs.com/xiaofeng666/p/13534794.html
Copyright © 2020-2023  润新知