linux 系统下源码编译安装搭建自定义lamp环境(linux+apache+mysql+php)
目地:在linux系统上源码编译安装搭建lamp环境并配置 , 守护进程, 软连接集中管理配置文件, phpmyadmin数据库在线管理
实验操作环境: linux centos7.4 64位 腾讯云服务器
友情连接: LNMP搭建: https://blog.csdn.net/Dong_Alex/article/details/80712018
apache(httpd)使用2.4 官网源码
php使用5.6 官网源码
mysql使用5.7 官网源码
开始
# 一.安装apache (httpd)
# 安装依赖:gcc, apr, apr-util,apr-iconv, pcre
# 安装gcc
yum install gcc
# apr, apr-util, apr-iconv , pcre yum没有, 需要下载源码安装
# 获取apr
wget http://mirror.bit.edu.cn/apache//apr/apr-1.6.3.tar.gz
# 获取apr-util
wget http://mirror.bit.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
# 获取apr-iconv
wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-iconv-1.2.2.tar.gz
# 获取pcre
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
# 获取httpd (apache)
wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.29.tar.gz
# 获取php5.6
wget -c -O php5.6.36.tar.gz http://cn2.php.net/get/php-5.6.36.tar.gz/from/this/mirror
# 获取boost mysql5.7及以上版本需要,5.6不需要
wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
# 获取mysql5.7
wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22.tar.gz
# 1.安装apr
# 解压apr
tar zxvf apr-1.6.3.tar.gz
# 安装依赖libtool
yum install libtool
# 进入配置
cd apr-1.6.3/
./buildconf
# 配置
./configure --prefix=/usr/local/apr-1.6.3
# 编译安装
make && make install
# 2.安装apr-iconv
# 解压
cd apr-iconv-1.2.2/
tar zxvf apr-iconv-1.2.2.tar.gz
# 配置
./configure --prefix=/usr/local/apr-iconv-1.2.2 --with-apr=/usr/local/apr-1.6.3/bin
# 编译安装
make && make install
# 3.安装apr-util
# 解压 apr-util
tar zxvf apr-util-1.6.1.tar.gz
# 解决报类似#include 错误,需yum安装expat: yum install expat-devel
yum install expat-devel
# 配置
cd apr-util-1.6.1/
# --with-apr=apr 安装bin目录
./configure --prefix=/usr/local/apr-util-1.6.1 --with-apr=/usr/local/apr-1.6.3/bin --with-apr-iconv=/usr/local/apr-iconv-1.2.2/bin/apriconv
# 编译安装
make && make install
# 4.安装pcre
# 安装依赖 gcc-c++
yum install gcc-c++
# 解压
tar zxvf pcre-8.39.tar.gz
cd pcre-8.39/
# 配置
./configure --prefix=/usr/local/pcre-8.39
# 编译安装
make && make install
# 5.安装apache (httpd)
# 记录下apr, apr-util, apr-iconv , pcre 的安装路径, 配置apache时需要用到
# 安装并更新locate工具数据库
yum install locate && updatedb
# 查找apr, apr-util,apr-iconv,pcre 安装路径
locate apr | grep bin
locate pcre | grep bin
# 查找结果如下:
# apr 安装路径 /usr/local/apr-1.6.3/bin
# apr-iconv /usr/local/apr-iconv-1.2.2/bin/apriconv
# apr-util 安装路径 /usr/local/apr-util-1.6.1/bin
# pcre 安装路径 /usr/local/pcre-8.39/bin
# 解压httpd
tar zxvf httpd-2.4.29.tar.gz
# 配置 (切换到解压目录) 一定要加上 enable-so
cd httpd-2.4.29/
./configure --prefix=/usr/local/httpd-2.4.29/ --with-apr=/usr/local/apr-1.6.3/bin --with-apr-util=/usr/local/apr-util-1.6.1/bin --with-apr-iconv= /usr/local/apr-iconv-1.2.2/bin/apriconv --with-pcre=/usr/local/pcre-8.39 --enable-so
# 编译安装
make && make install
# 查看安装成功没有
locate httpd | grep bin
# 添加到服务
# 从安装目录bin/下 复制apachectl 到/etc/rc.d/init.d/httpd
cp /usr/local/httpd-2.4.29/bin/apachectl /etc/rc.d/init.d/httpd
# 编辑httpd, 加入下面两句 后两个数字表示启动顺序, 不要超100, 下面两句是带# 注释的, chkconfig是能读到的, 这两个必须要加, Description: 这个是描述, 随便写
# chkconfig: 2345 80 81
# Description: this is httpd server
# 添加到守护进程
chkconfig --add httpd
# 管理
service httpd start|restart|stop|status
# 新建一个目录 /myconfig/ , 以后将所有配置文件建立软链接到此目录, 统一管理
mkdir /myconfig
# 为httpd.conf 创建软连接
ln -s /usr/local/httpd-2.4.29/conf/httpd.conf /myconfig/httpd.conf
# 解决 lynx: command not found
# 这是因为lynx命令不认识,只因缺少lynx包,安装即可:yum install lynx。
yum install lynx
# 安装完lynx , 运行service httpd status 有下面的提示, 该话题属于 apache server-status , 这里不做多的说明, 不影响使用
# 二. 安装php
# 1.安装php依赖
yum install gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel libevent
# 2.安装php
# 解压 (切换到压缩包目录下执行)
tar zxvf php5.6.36.tar.gz
# 配置 配置开启需要开启的扩展比如,pdo, mysql gd 并将php做为apache的模块 --apxs2=指向apache bin下的apxs程序
cd php-5.6.36/
./configure --prefix=/usr/local/php-5.6.36/ --with-apxs2=/usr/local/httpd-2.4.29/bin/apxs --with-mysql --with-pdo-mysql --with-gd
# 更新apache的bin/apxs 文件 将第一行改为perl的位置
# 查看perl 位置
whereis perl
# apxs 文件第一行改为 perl的位置 参数 -w
# ! /usr/bin/perl -w
#编译安装
make && make install
# 查看 php 信息
/usr/local/php-5.6.36/bin/php -m
# 如下说明安装成功
3.php与apache的绑定
编辑apache主配置文件 httpd.conf
配置如下:
1)
LoadModule php5_module modules/libphp5.so
2) 加入以下代码, 告知apache 将php交由php处理
SetHandler application/x-httpd-php
# 在htdoc 站点目录写一个php测试文件 index.php 内容
# 重启服务器访问
service httpd restart
# 拷贝php配置文件
从php源码中复制 php.ini-production 到php安装目录的lib目录下改名为php.ini
cp /root/packages/php-5.6.36/php.ini-production /usr/local/php-5.6.36/lib/php.ini
# 备份php.ini
cp /usr/local/php-5.6.36/lib/php.ini /usr/local/php-5.6.36/lib/php.ini.bak
# 创建软连接 方便管理
ln -s /usr/local/php-5.6.36/lib/php.ini /myconfig/php.ini
修改完, 重启服务器 再访问
service httpd restart
# 三. 安装mysql
# 安装依赖
# gcc, gcc-c++, ncurses-devel, cmake(配置的工具mysql配置不用configure,用cmake)
yum install gcc gcc-c++ cmake ncurses-devel
# 安装boost mysql5.7依赖boost,mysql5.6不依赖
# 在/usr/local/下创建boost目录
mkdir /usr/local/boost
# 进入boost目录
cd /usr/local/boost/
# 下载 boost
wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
# 解压
tar zxvf boost_1_59_0.tar.gz
# 鼠标右键复制下载连接地址, 使用wget 下载
wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22.tar.gz
# 解压
tar zxvf mysql-5.7.22.tar.gz
# 配置安装位置与数据库data位置
# mysql 5.7需要指定 -DWITH_BOOST=/usr/local/boost, mysql5.6及以下不需要
cd mysql-5.7.22/
cmake . -DWITH_BOOST=/usr/local/boost -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.22 -DMYSQL_DATADIR=/usr/local/mysql-5.7.22/data
# 编译安装
make && make install
# 配置mysql
# 修改文件权限,要求必须用独立用户管理, 这个用户就叫mysql
# 添加用户
groupadd mysql && useradd -g mysql mysql
# 在/usr/local/目录执行
# 将mysql目录及文件的用户跟组修改为mysql
chown -R mysql:mysql mysql-5.7.22/
# 初始化用户信息前先删除/etc/my.cnf 配置文件
rm /etc/my.cnf
# 初始化用户信息
# 下面是不建议mysql5.7使用的, mysql5.6可以使用,具体看下面,选择自己的版本
# /usr/local/mysql-5.7.22/bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql-5.7.22/data
# mysql5.6 使用下面的
# /scripts/mysql_install_db --user=mysql
# mysql5.7 建议使用的
/usr/local/mysql-5.7.22/bin/mysqld --initialize
# 初始化完成后, mysql目录下除了data目录保留mysql用户,把其它目录通通改为root用户
chown -R root mysql-5.7.22/ && chown -R mysql mysql-5.7.22/data/
# 如果是mysqsl5.7 手动创建配置文件 touch /etc/my.cnf 写入以下内容,参考:
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
socket=/tmp/mysql.sock
key_buffer_size=16M
max_allowed_packet=8M
[mysqldump]
quick
# 运行mysqld_safe服务
/usr/local/mysql-5.7.22/bin/mysqld_safe --user=mysql &
# 查看进程
ps -e | grep mysqld
# 连接
/usr/local/mysql-5.7.22/bin/mysql -uroot -p
# 修改密码
# mysql5.6 如下:
# update mysql.user set password=password('你的密码') where user='root';
# mysql5.7 如下:
alter user 'root'@'localhost' identified by '你的密码';
# 刷新权限 5.7不需要
# flush privileges
# quit 退出, 重新用新密码登录
# 将其加入守护进程
# 复制/mysqld.server 到/etc/rc.d/init.d/
cp /usr/local/mysql-5.7.22/support-files/mysql.server /etc/rc.d/init.d/mysqld
# 修改权限
chmod a+rx /etc/rc.d/init.d/mysqld
# 添加到守护进程管理
chkconfig --add mysqld
# 查看
chkconfig --list mysqld
# 测试用守护进程管理方式,停用跟启用
service mysqld stop
service mysqld start
# 四. 安装phpmyadmin
# 下载
wget https://files.phpmyadmin.net/phpMyAdmin/4.8.1/phpMyAdmin-4.8.1-all-languages.zip
# 复制到站点根目录
cp phpMyAdmin-4.8.1-all-languages.zip /usr/local/httpd-2.4.29/htdocs/
# 进入站点根目录, 解压
cd /usr/local/httpd-2.4.29/htdocs/
unzip phpMyAdmin-4.8.1-all-languages.zip
# 改名为phpmyadmin
mv phpMyAdmin-4.8.1-all-languages phpmyadmin
# 保存后, 重启httpd服务器
service httpd restart