国产麒麟(Kylin)系统编译Openldap

0 背景

本文章基于国产麒麟(Kylin)操作系统编译Openldap-2.4.44

cat /etc/os-release 

查看当前麒麟(Kylin)系统版本信息:
在这里插入图片描述

1 条件准备

1.1 安装openldap依赖的rpm包

这里需要配置yum源,如阿里/网易等,或者可以配置使用离线yum源,详情可看这篇文章

yum install ibtool-ltdl -y
yum install libtool-ltdl-devel -y

注意:
① 涉及libtool-ltdl与libtool-ltdl-devel,如不安装,在编译时报错:configure: error: could not locate libtool ltdl.h
② 安装的时候不要使用yum install *ltdl* -y 命令安装,欧拉系统的yum识别不出libtool-ltdl-devel
在这里插入图片描述

1.2 解压openldap源码包

tar -zxvf openldap-2.4.44.tgz
cd openldap-2.4.44

在这里插入图片描述

2 编译openldap

2.1 执行编译命令

./configure --prefix=/usr/local/openldap-2.4.44 --enable-modules=yes --
<think>我们正在麒麟系统Kylin 10上从源码编译安装LAMP环境。注意,用户要求从源码编译安装,而不是使用yum等包管理器安装。 步骤将包括: 1. 准备编译环境:安装编译工具和依赖库。 2. 下载所需源码包:Apache, MySQL, PHP的源码。 3. 分别编译安装这三个组件。 4. 配置环境,使三者协同工作。 注意:由于麒麟系统基于Linux,我们可以参考一般的Linux编译安装步骤,但要注意系统差异(如依赖包名称可能不同)。 我们将使用最新的稳定版本(以当前日期2023年为例,但实际中应选择最新稳定版): - Apache: 2.4.x (如2.4.57) - MySQL: 8.0.x (注意:从源码编译MySQL较复杂,也可以选择MariaDB,但用户要求MySQL,这里我们使用MySQL) 或者用户可以选择MariaDB,但问题中写的是MySQL,我们按MySQL处理。不过注意,引用中提到了mariadb,但用户明确要求MySQL,所以我们将安装MySQL。 - PHP: 8.1.x (如8.1.21) 由于编译安装需要,我们先安装编译工具和依赖。 步骤概览: 1. 安装开发工具和依赖 2. 编译安装Apache 3. 编译安装MySQL(这里我们选择MySQL 8.0) 4. 编译安装PHP 5. 配置LAMP环境 详细步骤: 第一步:安装编译环境 在麒麟系统上,我们需要安装gcc, make, cmake等工具,以及一些开发库。 由于麒麟系统使用yum作为包管理器,我们首先配置好yum源(用户已经提供了麒麟官方yum源,我们可以使用)。 安装开发工具组和依赖: ```bash sudo yum groupinstall "Development Tools" sudo yum install wget pcre-devel openssl-devel expat-devel ncurses-devel libxml2-devel bzip2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel gmp-devel libmcrypt-devel readline-devel libxslt-devel ``` 第二步:下载源码包 我们到官方网站下载最新的源码包,并解压。 下载Apache (httpd): ```bash wget https://downloads.apache.org/httpd/httpd-2.4.57.tar.gz tar -xzvf httpd-2.4.57.tar.gz ``` 下载MySQL:由于MySQL社区版下载需要登录,我们可以使用其镜像或直接下载。这里我们使用MySQL社区版(使用Boost依赖的版本,注意MySQL编译需要Boost)。 注意:MySQL编译需要Boost,我们可以先下载Boost并放在MySQL源码目录中,或者让MySQL自动下载(但可能不稳定)。这里我们选择单独下载Boost。 下载MySQL源码(例如8.0.34): ```bash wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.34.tar.gz tar -xzvf mysql-boost-8.0.34.tar.gz ``` 或者,如果不想使用Boost捆绑包,可以单独下载Boost(但需要确保版本匹配),然后解压到MySQL源码目录下的boost目录。 下载PHP(例如8.1.21): ```bash wget https://www.php.net/distributions/php-8.1.21.tar.gz tar -xzvf php-8.1.21.tar.gz ``` 第三步:编译安装Apache 进入httpd源码目录: ```bash cd httpd-2.4.57 ./configure --prefix=/usr/local/apache2 --enable-so --enable-ssl --with-mpm=prefork make sudo make install ``` 这里我们指定安装目录为`/usr/local/apache2`,并启用了DSO(动态共享对象)、SSL和prefork多处理模块。 第四步:编译安装MySQL MySQL使用cmake进行编译。首先安装cmake(如果未安装): ```bash sudo yum install cmake ``` 进入MySQL源码目录: ```bash cd mysql-8.0.34 ``` 创建编译目录(MySQL建议在单独的目录中编译): ```bash mkdir build cd build ``` 运行cmake配置(注意:这里需要指定Boost的路径,如果使用捆绑包则Boost在源码目录下,否则需要指定): 假设我们下载的是带Boost的源码包,则Boost在源码目录的boost目录下。 ```bash cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_BOOST=../boost -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci ``` 然后编译并安装: ```bash make sudo make install ``` 注意:编译过程可能需要较长时间。 安装完成后,初始化数据库并设置权限: ```bash cd /usr/local/mysql sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data sudo bin/mysql_ssl_rsa_setup sudo chown -R mysql:mysql /usr/local/mysql ``` 第五步:编译安装PHP 进入PHP源码目录: ```bash cd php-8.1.21 ``` 配置编译选项(这里我们启用一些常用扩展,并指定Apache的apxs位置): ```bash ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-zlib --enable-mbstring --with-curl --with-gd --with-jpeg --with-png-dir --with-freetype --enable-opcache ``` 注意:`--with-apxs2`选项用于生成Apache模块,所以路径要指向我们安装的Apache的apxs。 然后编译并安装: ```bash make sudo make install ``` 第六步:配置LAMP环境 1. 配置Apache以加载PHP模块:编辑Apache的配置文件`/usr/local/apache2/conf/httpd.conf`,确保有以下行(通常安装PHP模块后会自动添加,但检查一下): ``` LoadModule php_module modules/libphp.so ``` 并在`<IfModule mime_module>`块中添加: ``` AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps ``` 同时,修改`DirectoryIndex`,添加index.php: ``` DirectoryIndex index.html index.php ``` 2. 配置PHP:复制PHP的配置文件: ```bash sudo cp php.ini-development /usr/local/php/lib/php.ini ``` 3. 启动Apache: ```bash sudo /usr/local/apache2/bin/apachectl start ``` 4. 配置MySQL:创建配置文件(可以从安装目录中复制一个模板): ```bash sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld sudo chmod +x /etc/init.d/mysqld sudo systemctl enable mysqld # 如果麒麟系统使用systemd,则可能需要创建服务文件,这里使用init.d脚本 sudo /etc/init.d/mysqld start ``` 5. 设置环境变量:将Apache和MySQL、PHP的可执行文件路径添加到PATH中,可以编辑`/etc/profile`,添加: ```bash export PATH=$PATH:/usr/local/apache2/bin:/usr/local/mysql/bin:/usr/local/php/bin ``` 然后执行`source /etc/profile`使生效。 最后,测试: 在Apache的htdocs目录(`/usr/local/apache2/htdocs`)中创建一个info.php文件,内容为: ```php <?php phpinfo(); ?> ``` 然后访问http://localhost/info.php,查看PHP信息,并检查MySQL模块是否已加载。 注意:以上步骤是简化的,实际编译中可能会遇到依赖问题,需要根据错误提示安装相应的开发包。另外,安全设置(如MySQL的root密码)也需要在安装后进行配置。 由于编译安装的复杂性,建议用户根据实际情况调整。 生成相关问题: 1.编译安装过程中遇到依赖问题如何解决? 2. 如何配置Apache虚拟主机? 3. 如何优化MySQL的编译参数以提高性能? 4. 如何设置麒麟系统开机自启动Apache和MySQL? 5. 如何升级通过源码安装的Apache、MySQL和PHP?</think>### 在麒麟系统 Kylin 10 上编译安装 LAMP 环境 以下是**从源码编译安装** LAMP 环境的完整步骤,基于麒麟 Kylin 10 SP1 系统(架构:aarch64/x86_64): #### 一、环境准备 1. **安装编译依赖** ```bash sudo yum groupinstall "Development Tools" -y sudo yum install pcre-devel openssl-devel expat-devel libxml2-devel bzip2-devel \ libcurl-devel libpng-devel libjpeg-turbo-devel freetype-devel gmp-devel \ libicu-devel libxslt-devel ncurses-devel cmake -y ``` 2. **创建安装目录** ```bash sudo mkdir /usr/local/lamp sudo chown $(whoami):$(whoami) /usr/local/lamp ``` #### 二、源码编译安装 Apache 1. **下载源码** ```bash wget https://downloads.apache.org/httpd/httpd-2.4.57.tar.gz tar -zxvf httpd-2.4.57.tar.gz ``` 2. **编译安装** ```bash cd httpd-2.4.57 ./configure --prefix=/usr/local/lamp/apache \ --enable-so --enable-rewrite --with-ssl --enable-ssl make -j$(nproc) sudo make install ``` #### 三、源码编译安装 MySQL 1. **下载源码** ```bash wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.34.tar.gz tar -zxvf mysql-8.0.34.tar.gz ``` 2. **编译安装** ```bash cd mysql-8.0.34 mkdir build && cd build cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/lamp/mysql \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_general_ci \ -DWITH_BOOST=../boost make -j$(nproc) sudo make install ``` 3. **初始化数据库** ```bash cd /usr/local/lamp/mysql sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/lamp/mysql --datadir=/usr/local/lamp/mysql/data sudo chown -R mysql:mysql /usr/local/lamp/mysql ``` #### 四、源码编译安装 PHP 1. **下载源码** ```bash wget https://www.php.net/distributions/php-8.1.21.tar.gz tar -zxvf php-8.1.21.tar.gz ``` 2. **编译安装** ```bash cd php-8.1.21 ./configure --prefix=/usr/local/lamp/php \ --with-apxs2=/usr/local/lamp/apache/bin/apxs \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-openssl \ --with-zlib \ --enable-mbstring \ --with-curl \ --with-gd make -j$(nproc) sudo make install ``` #### 五、配置整合 1. **Apache 配置 PHP** 编辑 `/usr/local/lamp/apache/conf/httpd.conf`: ```apacheconf LoadModule php_module modules/libphp.so AddType application/x-httpd-php .php DirectoryIndex index.php index.html ``` 2. **创建测试文件** ```bash echo "<?php phpinfo(); ?>" > /usr/local/lamp/apache/htdocs/info.php ``` 3. **环境变量配置** ```bash echo 'export PATH=/usr/local/lamp/apache/bin:/usr/local/lamp/mysql/bin:/usr/local/lamp/php/bin:$PATH' >> ~/.bashrc source ~/.bashrc ``` #### 六、启动服务 ```bash # 启动 Apache sudo /usr/local/lamp/apache/bin/apachectl start # 启动 MySQL sudo /usr/local/lamp/mysql/bin/mysqld_safe --user=mysql & ``` #### 七、验证安装 1. 访问 `http://localhost/info.php` 查看 PHP 信息 2. 连接 MySQL: ```bash /usr/local/lamp/mysql/bin/mysql -u root -p ``` > **关键注意事项**: > 1. 编译参数需根据实际需求调整(如内存优化、扩展模块) > 2. 安全加固:安装后删除测试文件,配置 MySQL root 密码 > 3. 麒麟系统特有依赖:若遇到缺失库,使用 `yum provides */<库名>.so` 查找 > 4. 服务管理:建议创建 systemd 服务文件实现开机自启[^1][^3] --- ### 相关问题 1. 如何解决编译 PHP 时出现的 `undefined reference to 'libiconv'` 错误? 2.麒麟系统上如何为源码安装的 MySQL 配置 systemd 服务? 3. 编译安装的 Apache 如何添加 HTTP/2 支持? 4. 如何优化麒麟系统下源码安装的 PHP-FPM 性能参数? 5. 源码安装的 LAMP 环境如何进行安全加固? [^1]: 麒麟系统官方源配置参考 [^2]: 目录结构管理建议 [^3]: LAMP 服务器应用实践 [^4]: Apache 安装验证方法
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值