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 <expat.h>错误,需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  , 这里不做多的说明, 不影响使用



# 启动后只要访问出现这个就说明安装apache 成功!


# 二. 安装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处理
<FilesMatch \.php$>
 SetHandler application/x-httpd-php
</FilesMatch>


如图:

# 在htdoc 站点目录写一个php测试文件 index.php 内容 <?php phpinfo();?>
# 重启服务器访问
service httpd restart 






# date 警告处理, 配置php时区



从phpinfo 获取到php的配置目录及文件 (/usr/local/php-5.6.36/lib)

# 拷贝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

# 我把所有配置文件统一建立软连接在/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


# mysql官网下载mysql源码
https://dev.mysql.com/downloads/mysql/5.7.html#downloads



# 鼠标右键复制下载连接地址, 使用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


# 修改mysql程序权限, 把组改成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


# 初始化结束后, 会随机生成一个root的密码, 切记保持此密码,后续用到
如图:

本次生成的密码是: 1%fjXAMjDPb6 
# 查看data目录下有没有件, 有说明初始化成功了

# 初始化完成后, mysql目录下除了data目录保留mysql用户,把其它目录通通改为root用户
chown -R root mysql-5.7.22/ && chown -R mysql mysql-5.7.22/data/

# 查看

# 如果是mysql5.6 复制一个配置文件过来 参考


# 如果是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


# 访问站点 
http://58.87.95.128/phpmyadmin/index.php

如图:




输入密码登录


#解决一个问题 , 设置不让访问目录



# 编辑httpd.conf
Options Indexes FollowSymLinks
修改为:
Options FollowSymLinks


# 保存后, 重启httpd服务器
service httpd restart


# 访问


# 再配置httpd.conf, 让自动访问index.php


<IfModule dir_module>
     DirectoryIndex index.html index.php
</IfModule>

# 再次访问



LNMP搭建https://blog.csdn.net/Dong_Alex/article/details/80712018

/END


GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:22 天前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐