在Linux系统中安装LAMP出现的错误总结

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介:

      在linux系统中使用源代码安装虽然是最好的,但但出现的问题也是最多的,现在我总结一下用源代码安装LAMP环境中遇到常见的错误,一般错误是没有安装依赖库文件所导致的.

 

错误1.checking for termcap functions library... configure: error: No curses/termcap library found

解决方法:yum install ncurses      --缺少ncurses安装包

 

错误2.安装gd库出现以下错误:
In file included from /root/php-5.3.6/ext/gd/libgd/gd_compat.c:8:
/usr/local/jpeg/include/jpeglib.h:938: error: expected declaration specifiers or ‘...’ before ‘FILE’
/usr/local/jpeg/include/jpeglib.h:939: error: expected declaration specifiers or ‘...’ before ‘FILE’
make: *** [ext/gd/libgd/gd_compat.lo] Error 1
解决方法:vim  php-5.3.6/ext/gd/libgd/gd_compat.c
             #include <png.h>     --修改为#include </usr/local/libpng/include/png.h>
             #include <stdio.h>               --添加这行

 

错误3. Configure: error: xml2-config not found. Please check your libxml2 installation.

解决方法:yum install libxml2 libxml2-devel 

 

错误4. Configure: error: Please reinstall the BZip2 distribution

解决方法:yum install bzip2 bzip2-devel

 

错误5. Configure: error: libjpeg.(also) not found.

解决方法:yum install libjpeg libjpeg-devel

 

错误6.没有安装snmp开发包

checking for SNMP support... yes
checking OpenSSL dir for SNMP... no
checking whether to enable UCD SNMP hack... no
checking for net-snmp-config... (cached) /usr/bin/net-snmp-config
configure: error: snmp.h not found. Check your SNMP installation.
[root@redhat1 php-5.2.17]#

解决方法:yum install net-snmp net-snmp-devel

 

错误7.apache端口被占用了

[root@redhat1 bin]# ./httpd
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
[root@redhat1 bin]#

解决方法:80端口被占用了,杀掉占用80端口的进程  

 

错误8.没有指定主机IP地址

[root@redhat1 bin]# ./httpd
httpd: Could not reliably determine the server's fully qualified domain name, using 2.2.2.117 for ServerName
[root@redhat1 bin]#

解决方法:vim /usr/local/apache/conf/httpd.conf

                  ServerName localhost          --添加这一行就可以了

 

错误9.访问网站时出现下载页面

151400980.jpg

解决方法:vim /usr/local/apache/conf/httpd.conf     --加载php模块

                   LoadModule php5_module        modules/libphp5.so

 

错误10.访问网站出现“could not find driver”,提示没有设备

解决方法:http://localhost/index.php

wKioL1LGmuLCQDAmAACqMEgGvzI262.jpg查看PDO中是否支持mysql数据库,如果不支持则编译安装要添加--with-pdo-mysql --with-pdo-pgsql   --without-pdo-sqlite,详细参数如下:

./configure --prefix=/usr/local/php-5.2.17 --with-apxs2=/usr/local/apache/bin/apxs  --with-mysql=/usr/local/mysql/  --with-mysqli=/usr/local/mysql/bin/mysql_config  --with-gd --with-jpeg-dir  --with-freetype-dir  --with-ldap --with-snmp --with-curl  --with-openssl  --enable-ftp  --enable-xml  --enable-mbstring --with-pdo-mysql --with-pdo-pgsql  --without-pdo-sqlite

 

错误11.提示没有apr包

checking target system type... x86_64-unknown-linux-gnu
configure:
configure: Configuring Apache Portable Runtime library...
configure:
checking for APR... configure: error: --with-apr requires a directory or file to be provided
[root@node2 httpd-2.4.9]#

解决方法(需要安装apr包):

[root@node2]# wget http://mirrors.hust.edu.cn/apache//apr/apr-1.5.1.tar.gz
[root@node2]# tar xvf apr-1.5.1.tar.gz
[root@node2]# cd apr*
[root@node2 apr]# ./configure --prefix=/usr/local/apr
[root@node2 apr]# make
[root@node2 apr]# make install
[root@node2 apr]# cd httpd-2.4.9
[root@node2 httpd-2.4.9]# ./configure --prefix=/usr/local/apache \
--enable-cache --enable-cache-disk  --enable-so   --enable-proxy  \
-enable-proxy-http  --enable-dav  --enable-cgi    --enable-rewrite \
-with-pcre --with-apr=/usr/local/apr/bin/apr-1-config

 

错误12.显示没有apr-util包

exports.c:1890: note: previous definition of 'ap_hack_apr_gid_get' was here
exports.c:2630: error: redefinition of 'ap_hack_apr_version'
exports.c:1908: note: previous definition of 'ap_hack_apr_version' was here
exports.c:2631: error: redefinition of 'ap_hack_apr_version_string'
exports.c:1909: note: previous definition of 'ap_hack_apr_version_string' was here
make[2]: *** [exports.lo] Error 1
make[2]: Leaving directory `/root/httpd-2.4.9/server'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/httpd-2.4.9/server'
make: *** [all-recursive] Error 1
[root@node2 httpd-2.4.9]#

解决方法:

[root@node2 ~]# wget http://apache.fayea.com/apache-mirror//apr/apr-util-1.5.3.tar.gz
[root@node2 ~]# tar xvf apr-util-1.5.3.tar.gz
[root@node2 ~]# cd apr-util-1.5.3
[root@node2 apr-util-1.5.3]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
[root@node2 ~]# cd httpd-2.4.9
[root@node2 httpd-2.4.9]# ./configure --prefix=/usr/local/apache \
--enable-cache --enable-cache-disk  --enable-so   --enable-proxy  \
--enable-proxy-http  --enable-dav  --enable-cgi    --enable-rewrite  \
--with-pcre --with-apr=/usr/local/apr/bin/apr-1-config  \
--with-apr-util=/usr/local/apr-util/      \
--加入这个选项--with-apr-util=/usr/local/apr-util/

 

错误13.apache服务启动正常,端口打不开

[root@node2 bin]# ./apachectl start
[root@node2 bin]# netstat -anp |grep :80
[root@node2 bin]# ./httpd
[root@node2 bin]# netstat -anp |grep :80
[root@node2 bin]#

解决方法:

[root@node2 bin]# vim ../logs/error_log      --从日志上看文件没有加载slotmem模块
[Tue Apr 29 12:05:02.234125 2014] [mpm_event:notice] [pid 653:tid 140181975127808] AH00491: caught SIGTERM, shutting down
[Tue Apr 29 12:05:07.320259 2014] [proxy_balancer:emerg] [pid 1239:tid 139638802343680] AH01177: Failed to lookup provider 'shm' for 'slotmem': is mod_slotmem_shm loaded??
[Tue Apr 29 12:05:07.320943 2014] [:emerg] [pid 1239:tid 139638802343680] AH00020: Configuration Failed, exiting
[Tue Apr 29 12:05:34.708499 2014] [proxy_balancer:emerg] [pid 1243:tid 140149584029440] AH01177: Failed to lookup provider 'shm' for 'slotmem': is mod_slotmem_shm loaded??
[Tue Apr 29 12:05:34.709235 2014] [:emerg] [pid 1243:tid 140149584029440] AH00020: Configuration Failed, exiting
[root@node2 bin]# vim ../conf/httpd.conf
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so    --打开这个模块
[root@node2 bin]# ./apachectl start
[root@node2 bin]# netstat -anp |grep :80     --成功了
tcp        0      0 :::80                       :::*                        LISTEN      1415/httpd
[root@node2 bin]#

 

错误14.安装php5.3.28出错

checking for poll... yes
checking for select... yes
configure: error:
+--------------------------------------------------------------------+
|                        *** ATTENTION ***                           |
|                                                                    |
| You've configured multiple SAPIs to be build. You can build only   |
| one SAPI module and CLI binary at the same time.                   |
+--------------------------------------------------------------------+
[root@node2 php-5.3.28]#

解决方法:

[root@node2 php-5.3.28]# ./configure  --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache/bin/apxs  \
--with-mysql=/usr/local/mysql/      --with-zlib   --with-curl   \
--enable-dba  --enable-ftp   --with-jpeg-dir   --with-png-dir   \
--with-freetype-dir    --with-ldap     --enable-mbstring  \
--with-mcrypt   --with-mysqli=/usr/local/mysql/bin/mysql_config  \
--with-pdo-mysql    --with-pdo-pgsql     --without-pdo-sqlite   \
--with-pgsql   --with-pcre-dir    --enable-zip
--将enable-fpm和-with-apxs2=.......只须加一个就行了

 

错误15.缺少postgresql-devel包

checking for mysql_sqlstate... yes
checking for PDO includes... checking for PDO includes... /root/php-5.3.28/ext
checking Oracle OCI support for PDO... no
checking for ODBC v3 support for PDO... no
checking for PostgreSQL support for PDO... yes
checking for pg_config... not found
configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path
[root@node2 php-5.3.28]#

解决方法:

[root@node2 php-5.3.28]# yum install postgresql-devel
[root@node2 php-5.3.28]# yum install pdo*

 

错误16.在编译php5.3.28时出错

hp-5.3.28/ext/mbstring/libmbfl -I/root/php-5.3.28/ext/mbstring/libmbfl/mbfl -I/usr/local/mysql//include/mysql -I/usr/local/my3.28/Zend  -D_REENTRANT  -I/usr/include -g -O2 -fvisibility=hidden -pthread -DZTS   -c /root/php-5.3.28/ext/standard/basic_fu
In file included from /root/php-5.3.28/ext/standard/basic_functions.c:49:
/root/php-5.3.28/Zend/zend_language_parser.h:317: error: conflicting types for ?.endparse?
/root/php-5.3.28/Zend/zend_globals_macros.h:35: note: previous declaration of ?.endparse?.was here
make: *** [ext/standard/basic_functions.lo] Error 1
[root@node2 php-5.3.28]#

解决方法:

把zend_language_parser.h文件中317行的内容int zendparse(void *)与zend_globals_macros.h 35行 int zendparse(void *compiler_globals);弄成一致。再进行make可以成功。

 










本文转自 z597011036 51CTO博客,原文链接:http://blog.51cto.com/tongcheng/1339336,如需转载请自行联系原作者
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
235
分享
相关文章
|
13天前
|
Linux系统资源管理:多角度查看内存使用情况。
要知道,透过内存管理的窗口,我们可以洞察到Linux系统运行的真实身姿,如同解剖学家透过微观镜,洞察生命的奥秘。记住,不要惧怕那些高深的命令和参数,他们只是你掌握系统"魔法棒"的钥匙,熟练掌握后,你就可以骄傲地说:Linux,我来了!
83 27
在Rocky Linux 9上安装JDK并配置环境变量!
本教程介绍在Rocky Linux 9上安装JDK并配置环境变量的完整步骤。首先更新系统,清理旧版本JDK相关包及残留文件,确保环境干净。接着搜索并安装所需版本的JDK(如OpenJDK 17),验证安装是否成功。然后查找JDK安装路径,配置全局环境变量`JAVA_HOME`和`PATH`,最后验证环境变量设置。按照此流程操作,可顺利完成Java开发环境搭建,支持多版本切换(如JDK 8/11/17)。生产环境请谨慎操作,避免影响现有服务。
84 21
YashanDB Linux客户端安装
本文详细介绍了YashanDB客户端在Linux系统中的安装、使用与卸载步骤。安装方法包括适用于所有Linux平台的脚本安装和专用于CentOS的rpm安装。脚本安装需解压软件包并配置环境变量,而rpm安装则需以root用户执行相关命令。此外,文章还说明了如何通过yasql连接YashanDB并进行数据库操作,以及两种安装方式对应的卸载方法,帮助用户顺利完成客户端的管理与维护。
Linux 手动安装快速部署 LNMP 环境实战
本文详细记录了在阿里云ECS上手动搭建LNMP环境的过程,系统选用Ubuntu 24.04。主要内容包括:1) 使用`apt`安装Nginx和MySQL,并更新软件源;2) 编译安装PHP 8.4.5,配置PHP-FPM及环境路径;3) 配置MySQL root用户密码;4) 调整Nginx支持PHP解析并测试整体环境。通过此过程,重现手动配置服务器的细节,帮助熟悉各组件的安装与协同工作。
|
16天前
|
Linux系统ext4磁盘扩容实践指南
这个过程就像是给你的房子建一个新的储物间。你需要先找到空地(创建新的分区),然后建造储物间(格式化为ext4文件系统),最后将储物间添加到你的房子中(将新的分区添加到文件系统中)。完成这些步骤后,你就有了一个更大的储物空间。
75 10
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
28天前
|
Linux系统中如何查看CPU信息
本文介绍了查看CPU核心信息的方法,包括使用`lscpu`命令和读取`/proc/cpuinfo`文件。`lscpu`能快速提供逻辑CPU数量、物理核心数、插槽数等基本信息;而`/proc/cpuinfo`则包含更详细的配置数据,如核心ID和处理器编号。此外,还介绍了如何通过`lscpu`和`dmidecode`命令获取CPU型号、制造商及序列号,并解释了CPU频率与缓存大小的相关信息。最后,详细解析了`lscpu`命令输出的各项参数含义,帮助用户更好地理解CPU的具体配置。
84 8
深度体验阿里云系统控制台:SysOM 让 Linux 服务器监控变得如此简单
作为一名经历过无数个凌晨三点被服务器报警电话惊醒的运维工程师,我对监控工具有着近乎苛刻的要求。记得去年那次大型活动,我们的主站流量暴增,服务器内存莫名其妙地飙升到90%以上,却找不到原因。如果当时有一款像阿里云 SysOM 这样直观的监控工具,也许我就不用熬通宵排查问题了。今天,我想分享一下我使用 SysOM 的亲身体验,特别是它那令人印象深刻的内存诊断功能。
|
18天前
|
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
50 0
安装【银河麒麟V10】linux系统--并挂载镜像
安装【银河麒麟V10】linux系统--并挂载镜像
3243 0