从零开始Apache2配置php服务并支持网页访问
后台-插件-广告管理-内容页头部广告(手机) |
前言
最近打算再做一版服务器状态查看的dashboard,采用“子服务器主动向主服务器推送自己的状态”的方案。一种方案是用php写,Apache作为后台服务器。简单写一下构建过程。
TL;DR
github有个docker compose做的lamp全套环境,只需要git clone 和 docker compose up -d两个命令就能直接搭好linux端的apache+mysql+php环境。试了下确实直接能用,可以参考https://github.com/sprintcube/docker-compose-lamp。
准备Apache2环境
以下均为Ubuntu 22.04的wsl,以root运行。配置apache2需要apr、apr-util的runtime包,可以从https://apr.apache.org/download.cgi下载,以及正则、压缩传输、加密、xml的库。
wget https://dlcdn.apache.org/apr/apr-1.7.4.tar.gz wget https://dlcdn.apache.org/apr/apr-util-1.6.3.tar.gz wget https://dlcdn.apache.org/httpd/httpd-2.4.58.tar.gz tar xf httpd-2.4.58.tar.gz tar xf apr-util-1.6.3.tar.gz tar xf apr-1.7.4.tar.gz mv apr-util-1.6.3 httpd-2.4.58/srclib/apr-util mv apr-1.7.4 httpd-2.4.58/srclib/apr apt install libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev libexpat1 libexpat1-dev cd httpd-2.4.58 && ./configure --prefix=/usr/local/apache2 # 可以设置下path # 系统里已经有过别的apr版本,可能报错configure: error: Cannot use an external APR with the bundled APR-util。此时可以为configure添加一个--with-included-apr参数 make install- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
准备PHP环境
从https://www.php.net/downloads.php下载最新的php包,从https://pkgconfig.freedesktop.org/releases/下载最新的php-config包,比如
# 准备php所需要的一些环境 wget https://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz tar xf pkg-config-0.29.2.tar.gz cd pkg-config-0.29.2 && ./configure --with-internal-glib make install # 非常重要 export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/x86_64-linux-gnu/pkgconfig # 最简化安装,详细方式见下方 apt install libxml2 libxml2-dev sqlite3 libsqlite3-dev wget https://www.php.net/distributions/php-8.2.12.tar.gz tar xf php-8.2.12.tar.gz cd php-8.2.12 ./configure --prefix=/usr/local/src/php-8.2.12 --sysconfdir=/etc/php-8.2.12 --with-apxs2=/usr/local/src/apache2/bin/apxs- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
也可以参考这篇文章,配置更丰富的configure,以下的部分为参考该文章配置的,即
apt install build-essential autoconf automake libtool libsqlite3-dev pkg-config libjpeg-dev libpng-dev libxml2-dev libbz2-dev libcurl4-gnutls-dev libssl-dev libffi-dev libwebp-dev libonig-dev libzip-dev libjpeg-dev cd php-8.2.12 && ./configure --prefix=/usr/local/src/php-8.2.12 --sysconfdir=/etc/php-8.2.12 --with-openssl --with-zlib --with-bz2 --with-curl --enable-bcmath --enable-gd --with-webp --with-jpeg --with-mhash --enable-mbstring --with-imap-ssl --with-mysqli --enable-exif --with-ffi --with-zip --enable-sockets --with-pcre-jit --enable-fpm --with-pdo-mysql --enable-pcntl --with-apxs2=/usr/local/src/apache2/bin/apxs- 1
- 2
- 3
配置服务器
如果按以上方式安装,则修改/usr/local/apache2/conf/httpd.conf文件的ServerName选项到实际ip和端口。比如ServerName 172.19.202.144:80。这里的ip可以运行ifconfig看一下。
为了使apache对php文件进行解释执行,在httpd.conf文件添加:
- 1
- 2
- 3
设置文档目录,比如
# # DirectoryIndex: sets the file that Apache will serve if a directory # is requested. #- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
检查下php模块是不是打开了:
LoadModule php_module modules/libphp.so- 1
启动服务器
apachestl start # 假设在准备环境阶段设置了path- 1
随后本地浏览器直接访问localhost即可。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |