部署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服务
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号