当前位置:网站首页>LAMP环境 源码编译安装(Apache 2.4.52 +mysql 8.0.28+php 8.1.3)
LAMP环境 源码编译安装(Apache 2.4.52 +mysql 8.0.28+php 8.1.3)
2022-08-02 14:15:00 【China-P】
一、升级软件及Centos 内核
1、yum clean all
2、yum update -y #升级系统及内核
3、cat /etc/redhat-release #升级后查看版本
4、yum install lrzsz vim wget dnf -y #安装系统常用工具包
二、安装LAMP 环境依赖包
2.1 yum groupinstall "Development tools" -y
yum install pcre-devel expat-devel zlib zlib-devel openssl-devel expat-devel -y #安装依赖包
三、编译安装Apache(2.4.52)
3.1编译安装apr (arp-1.7.0)
3.1.1 yum install -y wget
3.1.2 wget https://dlcdn.apache.org//apr/apr-1.7.0.tar.gz
3.1.3 tar xf apr-1.7.0.tar.gz
3.1.4 cd apr-1.7.0
3.1.5 ./configure --prefix=/usr/local/apr
3.1.6 make && make install
3.1.7 echo $? #测试是否有错
问题:rm: cannot remove 'libtoolT': No such file or directory
解决:vim configure 注释掉 #$RM "$cfgfile
3.2 编译安装apr-util(apr-util-1.6.1)
3.2.1 wget https://dlcdn.apache.org//apr/apr-util-1.6.1.tar.gz
3.2.2 tar xf apr-util-1.6.1.tar.gz
3.2.3 cd apr-util-1.6.1
3.2.4 ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
3.2.5 make && make install
3.3 编译安装httpd(httpd-2.4.52)
3.3.1 yum install gcc gcc-c++ pcre pcre-devel -y # 安装依赖环境
3.3.2 wget https://dlcdn.apache.org//httpd/httpd-2.4.52.tar.bz2
3.3.3 tar xf httpd-2.4.52.tar.bz2
3.3.4 cd httpd-2.4.52
3.3.5 vim apache.sh (将下列信息复制到apache.sh)
./configure --prefix=/usr/local/apache \
--sysconfdir=/etc/httpd \
--enable-so \
--enable-rewrite \
--with-pcre \
--enable-ssl \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/ \
--enable-expires \
--enable-deflate \
--with-mpm=event
参数说明:
./configure --prefix=/usr/local/apache \ #指定Apache 安装目录
--sysconfdir=/etc/httpd \ #指定Apacche 配置文件目录
--enable-so \ #启动动态加载模块
--enable-rewrite \ #启用url地址重写功能
--with-pcre \ #支持正则表达式
--enable-ssl \ #编译ssl模块,支持https
--with-apr=/usr/local/apr \ #指定依赖软件apr 路径
--with-apr-util=/usr/local/apr-util/ \ #指定依赖软件apr-util 路径
--enable-expires \
--enable-deflate \
--with-mpm=event # 插入并行处理模块(最优)
3.3.6 chmod +x apache.sh (赋予脚本可执行权限)
3.3.7 ./apache.sh
3.3.8 make && make install
3.3.9 cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
3.3.10 ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc3.d/S61httpd
3.3.11 vim /etc/rc.d/init.d/httpd 在 #!/bin/sh 下面添加
#chkconfig: 35 61 61
#description: Apache
3.3.12 [[email protected] bin]# chkconfig --add httpd #将httpd配置自启并加入到liunx服务监控
问题:#systemctl start httpd 提示-bash: apachectl: 未找到命令
解决:cp /usr/local/apache/bin/apachectl /bin/ 或ln -s /usr/local/apache/bin/apachectl /bin/
问题:#apachectl start 提示 AH00558: 错误
解决:find / . -name "httpd.conf"
vim /etc/httpd/httpd.conf
搜索:ServerName关键字 去掉开头的#号,将www.example.com替换为localhost
问题:httpd -v 显示命令未找到
解决:添加环境变量 # vim /etc/profile
找到export行,在下面新增加一行,内容为:export PATH=$PATH:/usr/local/apache/bin
执行# source /etc/profile 立即生效
netstat -anpt |grep httpd
3.3.13 firewall-cmd --zone=public --add-port=80/tcp --permanent 防火墙放行80端口
3.3.14 firewall-cmd --reload 重新加载防火墙策略
3.3.15 systemctl restart firewalld.service 重启防火墙
四、源码安装mysql 8.0.28
4.1rpm -qa | grep mariadb # 通过rpm -qa | grep mariadb 命令查看mariadb 的安装包
4.2 rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
4.3 yum -y remove mysql* mariadb* boost* #卸载系统自带的mysql 和 mariadb,还有boost
4.4 安装依赖包
yum install -y make cmake gcc gcc-c++ bison ncurses ncurses-devel libtirpc-devel libaio libaio-devel
yum install devtoolset-10-gcc devtoolset-10-gcc-c++ devtoolset-10-binutils -y
4.5 升级cmake3
4.5.1wget https://github.com/Kitware/CMake/releases/download/v3.18.2/cmake-3.18.2.tar.gz
4.5.2 tar xf cmake-3.18.2.tar.gz
4.5.3 cd cmake-3.18.2
4.5.4 ./bootstrap
4.5.5 gmake && gmake install
4.5.6 cmake --version #查看版本号
4.5 解压数据库包添加数据库用户赋权
tar xf mysql-boost-8.0.28.tar.gz
cd mysql-8.0.28
4.6 useradd -r -s /sbin/nologin mysql #创建一个mysql 系统账户
4.7 mkdir -p /usr/local/mysql/data #创建安装及数据目录
4.8 chown -R mysql.mysql /usr/local/mysql 更改目录权限为mysql 用户及组
4.9 升级gcc
4.9.1 yum install centos-release-scl -y
4.9.2 yum install devtoolset-8-gcc* -y
4.9.3 scl enable devtoolset-8 bash
4.9.4 gcc -v
4.9.5 直接替换旧的gcc
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++
4.9.6 gcc -v g++ -v
4.10 编译安装mysql (mysql8.0.28 编译时间很长,需要几个小时)
4.10.1 vim mysql.sh (将下列内容写入shell 脚本)
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 指定 Mysql 程序的安装目录
-DMYSQL_DATADIR=/usr/local/mysql/data \ 指定 Mysql 程序的数据目录
-DSYSCONFDIR=/etc \
-DWITH_BOOST=/root/mysql-8.0.28/boost \ 指定 boost 的地址
-DDOWNLOAD_BOOST=1 \
-DENABLED_LOCAL_INFILE=1 \ 指定是否允许本地执行 LOAD DATA INFILE
-DWITH_INNODB_MEMCACHED=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ 安装 innodb 存储引擎
-DWITH_FEDERATED_STORAGE_ENGINE=1 \ 安装 federated 存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ 安装 blackhole 存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ 安装 archive 存储引擎
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_TCP_PORT=3306 \ #指定默认端口
-DDEFAULT_CHARSET=utf8 \ #编码方式utf8
-DDEFAULT_COLLATION=utf8_general_ci \ #字符校验规则
-DWITH_EXTRA_CHARSETS=all \ #扩展字符集
-DFORCE_INSOURCE_BUILD=1 \ #强制使用源码安装
-DMYSQL_USER=mysql #指定数据库用户
4.10.2 chmod +x mysql.sh
4.10.3 ./mysql.sh
4.10.4 make
4.10.5 make install
4.11 初始化数据库
4.11.1 cd /usr/local/mysql
4.11.2 rm -rf /etc/my.cnf #删除该文件,否则数据库会初始化失败
4.11.3 chown -R mysql.mysql /usr/local/mysql 更改目录权限为mysql 用户及组
4.11.4 cd /usr/local/mysql/bin/
4.11.5 ./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
4.11.6 cp support-files/mysql.server /etc/init.d/mysqld
#把mysql启动脚本拷贝至 /etc/init.d 目录下 更名为mysqld
4.11.7 echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
4.11.8 source /etc/profile
4.11.9 vim /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
4.11.10 chmod +x /etc/init.d/mysqld
4.11.11 service mysqld start 启动mysql 服务器
4.11.12 mysql -u root -p
4.11.13 alter user "root"@"localhost" identified by "talk"; #修改密码(talk)
五、源码安装PHP 8
5.1 安装依赖环境
5.1.1 yum -y install libxml2-devel openssl-devel openssl bzip2-devel libmcrypt libmcrypt-devel mcrypt sqlite-devel.x86_64 libcurl-devel autoconf automake libtool libpng-devel
5.1.2 wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz
5.1.3 tar xf oniguruma-6.9.4.tar.gz
5.1.4 cd oniguruma-6.9.4
5.1.5 ./autogen.sh && ./configure --prefix=/usr
5.1.6 ./configure --prefix=/usr --libdir=/lib64
5.1.7 make
5.1.8 make install
5.1.9 wget https://hqidi.com/big/libzip-1.2.0.tar.gz
5.1.10 tar xf libzip-1.2.0.tar.gz
5.1. 11 cd libzip-1.2.0
5.1.12 ./configure
5.1.13 make && make install
5.1.14 echo $PKG_CONFIG_PATH
5.1.15 export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
5.2 下载解压PHP8
5.2.1 wget https://www.php.net/distributions/php-8.1.3.tar.gz
5.2.2 tar xzf php-8.1.3.tar.gz
5.2.3 cd php-8.1.3
5.5.4 mkdir -p /usr/local/php8
5.3 编译安装PHP8
5.3.1 vim php8.sh
./configure \
--prefix=/usr/local/php8 \
--with-config-file-path=/usr/local/php8/etc \
--with-apxs2=/usr/local/apache/bin/apxs \
--enable-mbstring=all \
--enable-ftp \
--enable-gd \
--enable-gd-jis-conv \
--enable-mysqlnd \
--enable-pdo \
--enable-sockets \
--enable-fpm \
--enable-xml \
--enable-soap \
--enable-pcntl \
--enable-cli \
--with-openssl \
--with-mysqli \
--with-pdo-mysql \
--with-pear \
--with-zlib \
--with-iconv \
--with-curl \
--with-pdo-mysql=/usr/local/mysql \
--with-config-file-scan-dir=/usr/local/php8/etc/php.d
5.3.2 chmod +x php8.sh
5.3.3 ./php8.sh
5.3.4 make
5.3.5 make install
5.4 添加环境变量
5.4.1 vim /etc/profile
5.4.2 export PATH=$PATH:/usr/local/php8/bin/
5.4.3 source /etc/profile
5.4.4 php -v
5.5 PHP 环境配置
5.5.1 cp /root/php-8.1.3/php.ini-production /usr/local/php8/etc/php.ini
#生成php.ini
5.5.2 cp /usr/local/php8/etc/php-fpm.conf.default /usr/local/php8/etc/php-fpm.conf
#复制一份php-fpm的配置模版文件到同级目录 方便备份和修改
5.5.3 cp /usr/local/php8/etc/php-fpm.d/www.conf.default /usr/local/php8/etc/php-fpm.d/www.conf
#复制一份php-fpm的扩展配置模板文件到同级目录 方便备份和修
5.5.4 cp /root/php-8.1.3/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
#复制开启自起脚本到系统启动自动加载脚本目录
5.5.4 chmod +x /etc/init.d/php-fpm 添加可执行权限
5.5.5 service php-fpm start #检验服务启动
5.5.6 ps -ef | grep php
5.5.7 service php-fpm stop # 检验服务关闭
5.5.8 systemctl status php-fpm -l #查看php 运行状态
5.5.9 chkconfig php-fpm on #设置开机自动执行php-fpm开机自启动脚本
六、配置Apache 解析 PHP8
6.1 vim /etc/httpd/httpd.conf (添加)
找到LoadModule php_module modules/libphp.so 在下面添加
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
找到 LoadModule 在后面追加
LoadModule php_module modules/libphp.so
找到 DirectoryIndex 在中间添加
DirectoryIndex index.php index.html
6.2 vim测试PHP
vim /usr/local/apache/htdocs/index.php (添加php配置信息文档)
<?php
phpinfo();
?>
6.3 systemctl restart httpd #重启apache
边栏推荐
猜你喜欢

【软件测试】性能测试理论

深入理解负载均衡

CDH (computational Diffie-Hellman) problem and its differences with discrete logarithm and DDH problems

【软件测试】概念篇

net start mysql 服务名无效。

抽象类和接口 基本知识点复习

Vert.x web 接收请求时反序列化对象 Failed to decode 如何解决?

SkyWalking Agent数据采集和上报原理浅析

Doubly linked list (normal iterators and const iterators)

JCMsuite应用:四分之一波片
随机推荐
打包项目上传到PyPI
Qt | 播放音频文件 QMediaplayer
WEB自动化之多窗口操作、切换frame、弹窗处理
WEB自动化之键盘、鼠标操作
The use of a semaphore/interprocess communication 】 【 Shared memory
【软件测试】selenium自动化测试2
Class template/assignment operations and add operations
炒鸡好用的音乐平台(插件)
许多代码……
在mininet中测试arp欺骗
转行软件测试,从零收入到月薪过万,人生迎来新转折
软件测试之WEB自动化
Oauth2.0 custom response values and exception handling
Oauth2.0 认证服务器搭建
hybrid 实现同网段但不同vlan之间通讯
change the available bandwidth of tcp flow dynamically in mininet
MySQL协议长什么样子
The relationship between base classes and derived classes [inheritance] / polymorphism and virtual functions / [inheritance and polymorphism] abstract classes and simple factories
OpenPose Basic Philosophy
ssm整合