• LAMP环境源码搭建


    一、实验要求

    源码部署LAMP环境。

    二、实验环境

    web服务器IP为192.168.189.128,通过源码包进行安装,网站为WordPress。

    软件的版本分别为:

    apr-1.5.2

    apr-util-1.5.4

    httpd-2.4.37

    mysql-5.6.31

    php-7.2.17

    wordpress-4.7.3

    三、实验具体步骤

    1.修改主机名

    [root@jiangfeng2 src]# vim /etc/sysconfig/network
    
    NETWORKING=yes
    HOSTNAME=web.jiangfeng.cc

    2.主机名和IP进行绑定

    [root@jiangfeng2 src]# vim /etc/hosts
    
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.189.128 web.jiangfeng.cc

    3.安装依赖包

    //开发工具包
    [root@web ~]# yum groupinstall "Development tools" -y
    //桌面开发工具包(图形化相关包)
    [root@web ~]# yum groupinstall "Desktop Platform Development" -y
    //其他依赖包
    [root@web ~]# yum install cmake pcre-devel ncurses-devel openssl-devel libcurl-devel -y

    4.编译安装MySQL

    1)创建mysql用户

    [root@web ~]# useradd -r -s /sbin/nologin mysql
    [root@web ~]# tail -1 /etc/passwd
    mysql:x:498:498::/home/mysql:/sbin/nologin

    2)解压软件并进入解压目录

    [root@web ~]# cd /usr/local/src/
    [root@web src]# tar -zxf mysql-5.6.31.tar.gz 
    [root@web src]# cd mysql-5.6.31
    [root@web mysql-5.6.31]# pwd
    /usr/local/src/mysql-5.6.31

    3)根据需求对mysql进行配置

    [root@web mysql-5.6.31]# cmake . 
    > -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ 
    > -DMYSQL_DATADIR=/usr/local/mysql/data 
    > -DENABLED_LOCAL_INFILE=1 
    > -DWITH_INNOBASE_STORAGE_ENGINE=1 
    > -DMYSQL_TCP_PORT=3306 
    > -DDEFAULT_CHARSET=utf8mb4 
    > -DDEFAULT_COLLATION=utf8mb4_general_ci 
    > -DWITH_EXTRA_CHARSETS=all 
    > -DMYSQL_USER=mysql

    注:如果怕输入的时候出现问题,可以把这部分代码编写成脚本通过脚本执行。

        相关参数的说明:

    参数说明:
    cmake . 
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/          安装路径
    -DMYSQL_DATADIR=/usr/local/mysql/data          数据目录
    -DENABLED_LOCAL_INFILE=1              开启加载外部文件功能;1开启,0关闭
    -DWITH_INNOBASE_STORAGE_ENGINE=1          将InnoDB存储引擎静态编译到服务器
    -DMYSQL_TCP_PORT=3306              使用的端口
    -DDEFAULT_CHARSET=utf8mb4              字符集
    -DDEFAULT_COLLATION=utf8_general_ci          字符校验规则
    -DWITH_EXTRA_CHARSETS=all              扩展字符集
    -DMYSQL_USER=mysql                 用户身份mysql

    4)进行编译安装

    make && make install

    5)后续配置

    //更改数据目录权限
    [root@web ~]# chown -R mysql.mysql /usr/local/mysql/
    //清空环境
    [root@web ~]# rm -f /etc/my.cnf
    [root@web ~]# cd /usr/local/mysql/
    //初始化数据库
    [root@web mysql]# ./scripts/mysql_install_db --user=mysql
    …………
    New default config file was created as ./my.cnf and
    will be used by default by the server when you start it.
    You may edit this file to change server settings
    //查看上个操作的返回值是否报错
    [root@web mysql]# echo $?
    0
    //拷贝启动脚本
    [root@web mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    //启动服务前查看端口是否被占用
    [root@web mysql]# netstat -nltp |grep 3306
    //启动服务
    [root@web mysql]# service mysql start
    Starting MySQL.. SUCCESS!
    //设置数据库root密码 
    [root@web mysql]# /usr/local/mysql/bin/mysqladmin -u root password '123'
    Warning: Using a password on the command line interface can be insecure.
    //在环境变量中添加mysql相关启动软件
    [root@web mysql]# echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
    [root@web mysql]# . /etc/profile

    5.编译安装Apache

    1)安装依赖包apr和apr-util

    注:两个压缩包在同一个目录
    安装apr和apr-util软件:
    [root@web ~]# tar xf apr-1.5.2.tar.bz2
    [root@web ~]# cd apr-1.5.2
    [root@web ~]# ./configure
    [root@web ~]# make && make install
    [root@web ~]# cd ../
    [root@web ~]# tar xf apr-util-1.5.4.tar.bz2
    [root@web ~]# cd apr-util-1.5.4/
    [root@web ~]# ./configure --with-apr=/usr/local/apr/bin/apr-1-config  //指定软件apr的路径
    [root@web ~]# make && make install
    把apr放入动态链接库中
    [root@web php-7.2.17]# echo "/usr/local/apr/lib/" >>/etc/ld.so.conf
    [root@web php-7.2.17]# ldconfing

    2)根据需求安装httpd

    [root@web src]# tar -jxf httpd-2.4.37.tar.bz2 
    [root@web src]# cd httpd-2.4.37
    [root@web httpd-2.4.37]# ./configure 
    --enable-modules=all 
    --enable-mods-shared=all 
    --enable-so 
    --enable-rewrite 
    --with-pcre 
    --enable-ssl 
    --with-mpm=prefork 
    --with-apr=/usr/local/apr/bin/apr-1-config 
    --with-apr-util=/usr/local/apr/bin/apu-1-config

    参数的解释:

    --enable-modules=all 加载所有支持模块 --enable-mods-shared=all 共享方式加载大部分常用的模块 --enable-so   启动动态模块加载功能 --enable-rewrite 启用url地址重写功能 --enable-ssl 编译ssl模块,支持https --with-pcre 支持正则表达式 --with-apr=/usr/local/apr/bin/apr-1-config 指定依赖软件apr路径 --with-apr-util=/usr/local/apr/bin/apu-1-config --with-mpm=prefork   插入式并行处理模块,称为多路处理模块,Prefork 是类UNIX平台上默认的MPM

    (1)prefork   多进程模型,每个进程响应一个请求 (2)worker   多进程多线程模型,每个线程处理一个用户请求 (3)event(最优)   事件驱动模型,多进程模型,每个进程响应多个请求

    3)编译并安装

    make && make install

    6.编译安装PHP

    [root@web src]# tar Jxf php-7.2.17.tar.xz
    [root@web src]# cd php-7.2.17
    [root@web src]# ./configure 
    --with-apxs2=/usr/local/apache2/bin/apxs 
    --with-mysqli 
    --with-pdo-mysql 
    --with-zlib 
    --with-curl 
    --enable-zip 
    --with-gd 
    --with-freetype-dir 
    --with-jpeg-dir 
    --with-png-dir 
    --enable-sockets 
    --with-xmlrpc 
    --enable-soap 
    --enable-opcache 
    --enable-mbstring 
    --enable-mbregex 
    --enable-pcntl 
    --enable-shmop 
    --enable-sysvmsg 
    --enable-sysvsem 
    --enable-sysvshm 
    --enable-calendar 
    --enable-bcmath
    [root@web src]# make && make install

    相关参数的解释

    --with-apxs2=/usr/local/apache2/bin/apxs
    #指定apxs路径,apxs是一个为Apache HTTP服务器编译和安装扩展模块的工具
    --with-mysql php7中已被废弃
    --with-mysqli
    --with-pdo-mysql
    #以上三个是php的扩展,用于连接mysql数据库的
    --with-iconv-dir
    --with-freetype-dir
    --with-jpeg-dir
    --with-png-dir
    --with-gd
    --with-zlib
    --with-libxml-dir
    #这些都是在启用对某种文件的支持
    --with-curl 和 --with-curlwrappers
    #用于支持 curl 函数,此函数允许你用不同的协议连接和沟通不同的服务器
    --with-openssl,--with-mhash,--with-mcrypt
    #这都是和加密有关的参数,启用它们是为了让php可以更好的支持各种加密。
    --enable-bcmath 
    #高精度数学运算组件。
    --enable-shmop和 --enable-sysvsem
    #使得你的PHP系统可以处理相关的IPC函数.IPC是一个Unix标准通讯机制,它提供了使得在同一台主机不同进程之间可以互相通讯的方法。
    --enable-inline-optimization 
    #栈堆指针和优化线程。
    --enable-pcntl 
    #多线程优化。
    with-apxs2 
    #调用apache加载模块支持PHP
    gd 
    #画图库
    libiconv 
    #字符变换转换
    libmcrypt 
    #字符加密
    mcrypt 
    #字符加密
    mhash   #哈希运算

    7.配置Apache和php联系

    1. 修改apache主配置文件
    [root@web ~]# vim /usr/local/apache2/conf/httpd.conf
    #配置语言支持
    LoadModule negotiation_module modules/mod_negotiation.so 
    //此模块打开注释
    
    Include conf/extra/httpd-languages.conf //打开此选项,扩展配置文件就生效了
    ...
    //对虚拟主机的支持,后续再打开
    #Include conf/extra/httpd-vhosts.conf
    加载php模块解析php页面,添加两行,告诉httpd把.php文件交给模块去编译
    LoadModule php7_module   modules/libphp7.so //找到这一句,在这句下面加上两句
    AddHandler php7-script .php
    AddType text/html .php
    //默认主页加上index.php,并放在index.html前,支持php的首页文件
    <IfModule dir_module>   DirectoryIndex index.php index.html
    </IfModule>
    注意:默认的网站目录是:/usr/local/apache2/htdocs/
    2. 修改apache的子配置文件,优先支持中文
    [root@web ~]# vim /usr/local/apache2/conf/extra/httpd-languages.conf
    DefaultLanguage zh-CN //打开注释,默认语言集改为中文
    LanguagePriority zh-CN en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-
    BR ru sv tr zh-TW 
    //语言集优先集,把zh-CN 写到前面

    8.部署web应用

    [root@web ~]# mkdir /www/myblog -p
    [root@web ~]# tar -zxf /usr/local/src/wordpress-4.7.3-zh_CN.tar.gz -C /www/myblog/
    [root@web ~]# chown -R daemon:daemon /www/myblog
    [root@web ~]# cd /usr/local/apache2/conf/
    //打开加载虚拟主机配置文件
    [root@web ~]# vim /usr/local/apache2/conf/httpd.conf
    # Virtual hosts
    Include conf/extra/httpd-vhosts.conf 
    //子配置文件目录里修改虚拟主机配置文件
    vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
    <VirtualHost *:80>
            ServerAdmin webmaster@dummy-host2.example.com
            DocumentRoot "/www/myblog"
            ServerName web.jiangfeng.cc
            ErrorLog "logs/myblog-error_log"
            CustomLog "logs/myblog-access_log" common
    </VirtualHost>
    <Directory "/www/myblog">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
    
    网站连接后台数据库配置
    mysql -p
    Enter password: 
    mysql> create database myblog default charset utf8; //创建myblog库来存放wordpress的数据

    9.测试

    在windows的hosts配置文件中绑定web服务器的域名

    在C:WindowsSystem32driversetc目录下的hosts文件中追加如下内容

    192.168.189.128    www.jiangfeng.cc

    在浏览器中输入网址

    image

    四、拓展实验:一台主机部署两个应用

    1.更改/usr/local/apache2/conf/extra/httpd-vhosts.conf配置文件

    [root@web ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
    <VirtualHost *:80>
            ServerAdmin webmaster@dummy-host2.example.com
            DocumentRoot "/www/phpmyadmin"
            ServerName www.php.cc
            ErrorLog "logs/myblog-error_log"
            CustomLog "logs/myblog-access_log" common
    </VirtualHost>
    <Directory "/www/phpmyadmin">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>

    2.把你的网站内容放入相应的目录下

    [root@web src]# cp -a phpMyAdmin-4.8.5-all-languages /www/phpmyadmin/

  • 相关阅读:
    2017-2018-1 20155334第八周课堂实践总结+课下作业+教材内容总结
    移动手机号段区别
    使用Maven搭建Hadoop开发环境
    RunMR.java
    BeanUtils内省工具包
    eclipse和myeclipse中如何关闭自动补全括号,花括号,双引号等功能
    为什么在jsp中写${pageContext.request.contextPath }失效了
    开发WEB项目的步骤
    MVC的职责分工
    关于import中使用*号是否会影响程序性能
  • 原文地址:https://www.cnblogs.com/feng0919/p/11247271.html
Copyright © 2020-2023  润新知