本次实验的环境是1、httpd-2.4  2、php-fpm-5.6(编译安装无效,只能使用YUM安装)   3、mariadb-5.5.61

httpd-2.4

首先安装开发工具

图片.png

再安装 其他开发工具

图片.png

expat-devel.x86_64 缺少这个组件编译apr-util会报 xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory 这个错

必须源码安装两个开发工具包

apr-devel  apr-util-devel

获取httpd的源码包

图片.png

官网链接:

获取apr相关源码包

参考资料来源:

所以首先源码编译安装apr两个组件

编译apr-devel时会出现以下报错

./configure --prefix=/usr/local/apr

图片.png

这个需要修改下apr 配置文件

图片.png

图片.png

这里标红的地方注释掉即可,重新编译

图片.png

出现这个就表示编译成功。

接下来就是make && make install

图片.png

出现这个表示安装成功

编译apr-util-devel

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

图片.png

出现这个表示安装成功

编译httpd

./configure --prefix=/usr/local/httpd24 --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork

图片.png

出现这个信息,表示httpd源码编译完成

然后就是make && make install

图片.png

出现这个表示httpd安装成功

将httpd的bin文件加入到bash中

图片.png

图片.png

标红的地方就仅仅是由于配置文件中没有指定httpd主机的名称修改下就好了。

图片.png

图片.png

图片.png

图片.png

就不报错了

大概看下效果。

图片.png

注意:编译安装后的配置文件与YUM安装的配置文件内容改变了许多,特别是对额外配置文件的包含动作,在编译安装的配置文件中没有。

Mariadb通用二进制安装

1、获取mariadb数据包

2、解压

图片.png

3、为了操作的统一性 为解压文件建立一个软连接文件

图片.png

4、为了数据库系统的安全性创建专用的用户和组

图片.png

5、修改数据库文件的属主和属组

图片.png

6、创建数据库专用的数据目录和日志目录

图片.png

7、为mysql提供配置文件

图片.png

8、修改主配置文件

/etc/my.cnf

图片.png

9、找到并移动服务启动文件

图片.png

10、初始化数据库

scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql --datadir=/mysql/data

图片.png

如果看到这个就表示初始化成功

11、启动MySQL

图片.png

12、将mysql的bin文件加入到bash中

图片.png

13、查看结果

图片.png

FPM编译安装

php依赖于mariadb 所以编译安装php之前必须先安装mariadb

注意一定要知道自己安装的是PHP 还是PHP-FPM 这是两个不同的软件

参考链接:https://blog.csdn.net/weixin_41167954/article/details/80361249

1、先查看当前httpd加载的MPM模块

图片.png

2、安装开发工具

图片.png

3、编译

我这里提前编译安装了libmcrypt组件,编译方式安装无效,因为这个组件依赖其他的数据包 推荐YUM安装

图片.png

图片.png

参考链接:https://blog.csdn.net/chuang3344/article/details/75115890

./configure --prefix=/usr/local/php-fpm --enable-fpm --with-zlib --with-pdo-mysql --enable-mbstring --with-gd --with-png-dir=/usr/lib64 --with-freetype-dir=/usr/lib64  --with-jpeg-dir=/usr/lib64

编译之前需要安装以下组件

libjpeg-turbo-devel.x86_64

libpng-devel.x86_64

freetype-devel.x86_6

编译完成之后就是然后就是make && make install

图片.png

这个表示安装成功

4、生成配置文件

图片.png

用.default的文件拷贝一份配置文件.conf

5、修改配置文件

图片.png

去掉之前该命令的注释

6、修改httpd的配置文件

开启所需要的modules(我是根据YUM安装后的httpd.conf配置文件来改的)

# LoadModule foo_module modules/mod_foo.so

#
#LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbd_module modules/mod_authn_dbd.so
LoadModule authn_socache_module modules/mod_authn_socache.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_dbd_module modules/mod_authz_dbd.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_form_module modules/mod_auth_form.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so
LoadModule cache_socache_module modules/mod_cache_socache.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule socache_dbm_module modules/mod_socache_dbm.so
LoadModule socache_memcache_module modules/mod_socache_memcache.so
LoadModule watchdog_module modules/mod_watchdog.so
LoadModule macro_module modules/mod_macro.so
LoadModule dbd_module modules/mod_dbd.so
LoadModule dumpio_module modules/mod_dumpio.so
LoadModule buffer_module modules/mod_buffer.so
LoadModule ratelimit_module modules/mod_ratelimit.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule request_module modules/mod_request.so
LoadModule include_module modules/mod_include.so
LoadModule filter_module modules/mod_filter.so
LoadModule substitute_module modules/mod_substitute.so
LoadModule sed_module modules/mod_sed.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule mime_module modules/mod_mime.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule log_debug_module modules/mod_log_debug.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
LoadModule remoteip_module modules/mod_remoteip.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so
LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_express_module modules/mod_proxy_express.so
LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so
#LoadModule session_module modules/mod_session.so
#LoadModule session_cookie_module modules/mod_session_cookie.so
#LoadModule session_dbd_module modules/mod_session_dbd.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
#LoadModule ssl_module modules/mod_ssl.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule unixd_module modules/mod_unixd.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule info_module modules/mod_info.so
#LoadModule cgid_module modules/mod_cgid.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so

7、启动FPM

图片.png

8、测试效果

图片.png

编译安装FPM参考链接:https://blog.csdn.net/weixin_41167954/article/details/80361249