源码编译部署LAMP环境

选择源码编译安装软件有以下几个原因:

  1. 满足不同的运行平台。linux发行版众多,但是每个版本采用的软件或者内核版本都不一样,而而二进制包所依赖的环境不一定能够正常运行,所以大部分软件直接提供源码。
  2. 方便定制所需的模块,满足不同的需求。大多数二进制代码都是一键装完所有,自由度并不高;而源码编译需要安装哪个模块都是可以自由定制的。
  3. 方便运维人员和开发人员的维护。我们的源码是可以打包二进制的,但是对于这个软件的打包都会有一 份代价不小的额外工作,包括维护,所以如果是源码的话,软件产商会直接维护,但是如果是二进制的话, 一般都是Linux 发行商提供!

安装和配置apache

准备环境:

yum -y install make gcc gcc-c++ openssl openssl-devel

分别编译安装一下依赖包
注:httpd2.4版本以后要求apr的版本为1.5以上

apr-1.6.2.tar.gz、apr-util-1.6.0.tar.gz 、 pcre-8.41.tar.gz

[root@localhost ~]# tar xf apr-1.6.2.tar.gz -C /usr/local/src/	 
[root@localhost ~]# cd /usr/local/src/apr-1.6.2/ 
[root@localhost apr-1.6.2]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.6.2]# make && make install

[root@localhost ~]# tar xf apr-util-1.6.0.tar.gz -C /usr/local/src/
[root@localhost ~]# cd /usr/local/src/apr-util-1.6.0/
[root@localhost apr-util-1.6.0]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
[root@localhost apr-util-1.6.0]# make -j 8 && make install

报错解决:xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory

yum install -y expat

[root@localhost ~]# tar xf pcre-8.41.tar.gz -C /usr/local/src/
[root@localhost ~]#cd /usr/local/src/pcre-8.41/
[root@localhost pcre-8.41]# ./configure --prefix=/usr/local/pcre [root@localhost pcre-8.41]# make && make install

编译安装apache

[root@localhost ~]# tar zxvf httpd-2.4.37.tar.gz -C /usr/local/src/ [root@localhost ~]# cd /usr/local/src/httpd-2.4.37/

[root@localhost httpd-2.4.37]#./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 \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=event

make && make install

报错:make[1]: Leaving directory `/root/httpd-2.4.41/support’

解决
把你下载的apr、apr-util复制到/root/httpd-2.4.41/srclib/apr(apr-util)在重新./configure make make install

生成启动脚本

[root@localhost httpd-2.4.37]# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
chomod +x /etc/init.d/httpd

写个httpd系统服务启动脚本,以754的权限保存此文件

cat >/etc/systemd/system/httpd.service<<EOF
[Unit]
Description=httpd
After=network.target
[Service]
Type=forking
ExecStart=/etc/init.d/httpd start
ExecReload=/etc/init.d/httpd restart
ExecStop=/etc/init.d/httpd stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF

单独创建一个用户来运行服务

useradd -M -s /sbin/nologin www

修改vim /usr/local/apache/conf/httpd.conf的166行的User为www

编译安装mysql

注:mysql从5.7版本后boost是必须的,建议把系统自带的boost卸载掉,其中cmake的版本不低于2.8

安装依赖包

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

添加用户和组

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

解压源码包

[root@localhost ~]# tar xf mysql-boost-5.7.28.tar.gz -C /usr/local/src/
[root@localhost ~]# cd /usr/local/src/mysql-5.7.28

创建数据目录和安装目录

[root@localhost ~]# mkdir -p /var/lib/mysql/data
[root@localhost ~]# chown -R mysql:mysql /var/lib/mysql

编译安装MySQL

[root@localhost ~]#  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=utf8mb4 \ 
-DDEFAULT_COLLATION=utf8_general_ci \ 
-DDOWNLOAD_BOOST=1 \ 
-DWITH_BOOST=/usr/local/src/mysql-5.7.28/boost/boost_1_59_0/

[root@localhost ~]# make
[root@localhost ~]# make install

编辑配置文件

[root@localhost ~]# vim /etc/my.cnf
[mysqld] port=3306
user=mysql basedir=/var/lib/mysql
datadir=/var/lib/mysql/data
socket=/tmp/mysql.sock
character-set-server=utf8
log-error=/var/log/mysqld.log
[mysql] socket=/tmp/mysql.sock

配置环境变量

[root@localhost ~]# vim /etc/profile.d/mysql.sh
PATH=/var/lib/mysql/bin:$PATH
[root@localhost ~]# source /etc/profile.d/mysql.sh

生成服务启动脚本

[root@localhost ~]# cp /var/lib/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost ~]# chmod +x /etc/init.d/mysqld
[root@localhost ~]# chown -R mysql:mysql /var/lib/mysql

初始化数据库

[root@localhost ~]# mysqld --defaults-file=/etc/my.cnf --initialize

编译安装php

安装epel源

[root@localhost ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache

安装所需依赖

[root@localhost ~]# yum -y install php-mcrypt libmcrypt libmcrypt-devel autoconf freetype freetype-devel gd libmcrypt libpng libpng-devel libjpeg libxml2 libxml2-devel zlib curl curl-devel libjpeg-devel freetype-devel libmcrypt-devel

解压文件

[root@localhost ~]# tar xf php-7.1.24.tar.gz -C /usr/local/src

[root@localhost ~]# cd /usr/local/src/php-7.1.24/
[root@localhost ~]# ./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=/etc/ \
–with-mysqli=mysqlnd \
–with-mysql-sock=/tmp/mysql.sock \
–enable-maintainer-zts
[root@localhost ~]# make && make install

生成配置文件

cp /php.ini.production /etc/php.ini

编辑apache的配置文件以支持php的文件

vim /usr/local/apache/conf/httpd.conf

在393行后添加

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

测试是否可以连接mysql

<?php
$mysqli = new mysqli("localhost", "root", "123456");     if(!$mysqli)  {echo"database error";
   			  }
else{echo"php连接mysql successful";
	}
$mysqli->close();
phpinfo(); 
?> 

猜你喜欢

转载自blog.csdn.net/nmb_jiang/article/details/105983996