地址链接
安装环境
centos8-64位
保证虚拟机内存4G及以上,内核数量为2及以上,硬盘为40G及以上
需要先装一些常用的编译工具和开发包:
切换阿里的源
yum install -y wget lrzsz
cd /etc/yum.repos.d/
sudo mv CentOS-Base.repo CentOS-Base.repo.bak
sudo wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
yum clean all
yum makecache
yum update -y
安装 epel 源
yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
yum -y install make gcc gcc-c++ git automake libtool openssl openssl-devel expat-devel lrzsz libnghttp2
下面下载的路劲统一放在 /usr/local/src
1、httpd-2.4.46
下载:wget https://mirror.bit.edu.cn/apache//httpd/httpd-2.4.46.tar.gz
2、mysql-8.0.22
下载:wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.22.tar.gz
3、php-8.0.0
下载:wget https://www.php.net/distributions/php-8.0.0.tar.gz
4、apr-1.7.0(是 httpd 的依赖包)
下载:wget https://mirror.bit.edu.cn/apache//apr/apr-1.7.0.tar.gz
5、apr-util-1.6.1(是 httpd 的依赖包)
下载:wget https://mirror.bit.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
6、pcre-8.44
下载:wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz
7、boost-1_73_0(这是 mysql 5.7 版本以后必须的依赖包)
下载:wget https://dl.bintray.com/boostorg/release/1.73.0/source/boost_1_73_0.tar.gz
8、re2c
下载:wget https://github.com/skvadrik/re2c/archive/2.0.3.tar.gz
所有下载好的包都需要先解压
tar zxf xxx.tar.gz
(1)编译安装 apr
cd /usr/local/src/apr-1.7.0/
./configure --prefix=/usr/local/apr // 指定程序存放路径,不存在时会自动创建
make && make install
echo $? // 如果返回0则正确安装
注意:如果没有指定--prefix,那么可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share。
(2)编译安装 apr-util
cd /usr/local/src/apr-util-1.6.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
make && make install
echo $?
注意:apr-util需要指定apr中的一个配置文件bin/apr-1-config
(3)编译安装 pcre
cd /usr/local/src/pcre-8.44
./configure --prefix=/usr/local/pcre
!make // 调用最近一次 make 开头的命令
echo $?
(4)编译安装 Apache
4-1)初始化配置
cd /usr/local/src/httpd-2.4.46/
./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
echo $?
参数说明
--prefix=/usr/local/apache 安装路径
--enable-so 支持动态加载模块
--enable-rewrite 支持网站地址重写
--enable-ssl 支持 sll 加密
--with-apr=/usr/local/apr 指定 apr 路径
--with-apr-util=/usr/local/apr-util 指定 apr-util 路径
--with-pcre=/usr/local/pcre 指定 pcre 路径
--enable-modules=most 选择要编译的模块
--enable-mpms-shared=all 支持当前平台上的动态加载的所有 MPM,并将它们构建为 DSO 模块
--with-mpm=event 选择默认的 MPM
注意:此时的配置文件是/usr/local/apache/conf/httpd.conf,默认网站根目录是/usr/local/apache/htdocs
4-2)生成启动脚本
如果此时重启服务器,那么可以使用 systemctl start|stop|restart|status apachectl 管理 Apache,但是没有办法 enable,因为这不是一个本地服务
cp /usr/local/apache/bin/apachectl /etc/init.d/
chmod +x /etc/init.d/apachectl
4-3)写一个 systemctl 可以调用的 Apache 服务脚本,让它成为本地服务
vim /usr/lib/systemd/system/apache.service
[Unit]
Description=apache
After=network.target
[Service]
Type=forking
ExecStart=/etc/init.d/apachectl start
ExecReload=/etc/init.d/apachectl restart
ExecStop=/etc/init.d/apachectl stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
设置完之后重启服务器 reboot
systemctl start apachectl.service
systemctl enable apache.service // 设置开机启动
ps aux | grep apache
不过可以看到 Apache 使用的是一个叫 daemon 的账户启动的,也可以创建一个专用的用户
useradd -M -s /sbin/nologin apache // -M 不自动建立家目录,-s /sbin/nologin 不允许登录
vim /usr/local/apache/conf/httpd.conf // 修改配置文件
User apache // 167 行
Group apache // 168 行
chown -R apache.apache /usr/local/apache/ // 更改目录权限
注意:如果防火墙没有关闭,请将端口号加到规则中
firewall-cmd --permanent --zone=public --add-port=80/tcp
f