部署LAMP架构

 背景:架构采用源码编译安装,软件版本如下:

Centos:7.2系统

httpd:2.4版本

mysql:5.7版本

php:7.3版本

 

关闭防火墙和selinux机制

systemctl stop firewalld.service

systemctl disable firewalld.service

setenforce 0

 

安装httpd服务

检查是否存在httpd服务的rpm包,如果有要卸载

rpm -qa | grep http

卸载rpm包

rpm -e httpd --nodeps

 

确认编译安装所所需要的包

rpm -q  make gcc gcc-c++

 

安装httpd2.4版本需要提前安装一些依赖包:apr、apr-util、pcre 源码包、和expat-develrpm包(yum安装即可,这个包是xml的解释器,要在apr-util前安装)

源码包下载地址:http://apr.apache.org/download.cgi

安装apr

tar -xzvf apr-1.7.0.tar.gz -C /usr/local/
cd /usr/local/apr-1.7.0/
./configure --prefix=/usr/local/apr && make && make install

安装apr-util

tar -xzvf apr-util-1.6.1.tar.gz -C /usr/local/
cd /usr/local/apr-util-1.6.1/
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install

安装pcre程序,推荐pcre-8.38版本,新版本会遇到好多问题

源码下载地址:http://pcre.org/ 

找到下载链接地址:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

unzip pcre-8.38.zip
cd pcre-8.38
./configure --prefix=/usr/local/pcre && make && make install

安装httpd,下载地址:http://httpd.apache.org/download.cgi

tar -xzvf httpd-2.4.39.tar.gz -C /usr/local/
cd /usr/local/httpd-2.4.39/
./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --enable-so --enable-rewrite --enable-charset-lite --enable-cgi &&make && make install

模块说明:

 

  --enable-so 启用动态加载模块支持
  --enable-rewrite 启用网页地址重写功能
  --enable-charset-lite 启动字符集支持
  --enable-cgi 启用 CGI 脚本程序支持

确认安装结果及目录说明:

  /usr/local/httpd/bin 存放 httpd 的执行程序文件
  /usr/local/httpd/conf 存放 httpd 的各种配置文件
  /usr/local/httpd/htdocs 存放网页文档
  /usr/local/httpd/logs 存放 httpd 的日志文件
  /usr/local/httpd/modules 存放 httpd 的模块文件
  /usr/local/httpd/cgi-bin 存放各种 CGI 程序文件

优化执行路径

通过源码包编译安装的 httpd 服务,程序路径并不在默认的搜索路径中,为了使该服务在使用时更加方便,可以为相关程序添加符号链接(软链接)到/usr/local/bin 下。
ln -s /usr/local/httpd/bin/* /usr/local/bin/

ll /usr/local/bin |grep ^l

 

添加httpd系统服务

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
chmod +x /etc/init.d/httpd
sed -i -e '1a#chkconfig: 35 85 21\n#description: Startup script for the Apache HTTP Server' /etc/init.d/httpd
sed -n '1,3p' /etc/init.d/httpd
chkconfig --add httpd
chkconfig --list httpd

安装mysql

确认没有以rpm方式安装的mysql-server、mysql软件包,如果有请卸载。

使用源码安装mysql需要cmake编译安装,所以要先安装cmake包

源码包下载地址:https://cmake.org/download/

编译安装cmake

tar -xzvf cmake-3.13.5
cd cmake-3.13.5/
./configure && make && make install

创建mysql的用户和组

groupadd mysql

useradd -M -s /sbin/nologin -g mysql mysql

由于mysql5.7开始依赖于boost库,所有要先安装boost库

在/usr/local/ 下创建一个名为boost的目录
mkdir -p /usr/local/boost
下载boost源码包
wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
解压
tar -xzvf boost_1_59_0.tar.gz -C /usr/local/boost/

安装依赖包ncurses-devel

yum -y install ncurses-devel

解压编译安装mysql

tar -xzvf mysql-5.7.26.tar.gz
cd mysql-5.7.26/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc -DWITH_BOOST=/usr/local/boost && make && make install

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //主程序安装目录
-DDEFAULT_CHARSET=utf8 //默认字符集为 utf8
-DDEFAULT_COLLATION=utf8_general_ci //默认的字符集校对规则
-DWITH_EXTRA_CHARSETS=all //安装所有字符集
-DSYSCONFDIR=/etc //配置文件存放目录

安装后的其他调整

对数据库目录进行权限设置
chown -R mysql:mysql /usr/local/mysql/
配置文件及参数优化: 从5.7.18开始不在二进制包中提供my-default.cnf文件 由于在5.7.18开始,二进制包不再包含示例文件my-default.cnf,所以我从5.7.17版本中提取了样例,但是发现里面也没有太多项配置)
修改配置文件
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
配置环境变量
echo "PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile
source /etc/profile
初始化数据库
/usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
添加到系统服务
chkconfig --add mysqld 

安装PHP

1、卸载rpm包方式安装的php及相关依赖包,卸载 php、php-cil、php-ldap、php-common、php-mysql 等。

安装扩展工具库(数据加密工具 libmcrypt 、mhash 、mcrypt)

安装libmcrypt

tar -xzvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure && make && make install

安装mhash

tar -xzvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure && make && make install

安装mcrypt

tar -xzvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH
./configure && make && make install

 编译安装php

tar -xzvf php-7.3.6.tar.gz
cd php-7.3.6
./configure --prefix=/usr/local/php7 --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php7 --enable-mbstring && make && make install

解释:

--prefix=/usr/local/php7 :指定 php 安装目录
--with-mcrypt :让 php 支持 mcrypt 加密
--with-apxs2 :指定对 apache 的支持
--with-mysql : 让 php 支持 mysql
--with-config-file-path :指定 php 的主配置文件 php.ini 放置目录
--enable-mbstring :指定 php 支持多字节字符串

建立主配置文件php.ini,并进行调整

[root@bogon php-7.3.6]# cp php.ini-development /usr/local/php7/php.ini
[root@bogon php-7.3.6]# awk '/^short_open_tag/{print NR,$0}' /usr/local/php7/php.ini 
192 short_open_tag = Off
[root@bogon php-7.3.6]# sed -i '192 s/Off/On/' /usr/local/php7/php.ini 
[root@bogon php-7.3.6]# sed -n '192p' /usr/local/php7/php.ini 
short_open_tag = On

调整httpd.conf配置文件,使httpd服务器支持PHP页面解析功能

[root@bogon php-7.3.6]# awk '/LoadModule php/{print NR,$0}' /usr/local/httpd/conf/httpd.conf
158 LoadModule php7_module        modules/libphp7.so
[root@bogon php-7.3.6]# sed -i '158aAddType application/x-httpd-php .php' /usr/local/httpd/conf/httpd.conf
[root@bogon php-7.3.6]# sed -n '159p' /usr/local/httpd/conf/httpd.conf
AddType application/x-httpd-php .php
[root@bogon php-7.3.6]# awk '/DirectoryIndex/{print NR,$0}' /usr/local/httpd/conf/httpd.conf
255 # DirectoryIndex: sets the file that Apache will serve if a directory
259     DirectoryIndex index.html
[root@bogon php-7.3.6]# sed -i '259 s/$/ index.php/' /usr/local/httpd/conf/httpd.conf
[root@bogon php-7.3.6]# sed -n '259p' /usr/local/httpd/conf/httpd.conf
    DirectoryIndex index.html index.php

启动httpd服务

 

 

 



 

posted @ 2019-06-04 15:51  fighting-go  阅读(264)  评论(0)    收藏  举报