Linux编译安装主要体现在提高软件性能、自由度高、更新方便、系统兼容性好以及学习成本低等方面。
实验:使用编译安装安装一个lamp架构
编译安装
下载需要的编译环境
[root@node1 ~]# yum -y install bzip2 vim make wget openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ libxml2-devel
apr包
将apr软件包解压后更改配置文件
[root@node1 apr-1.7.0]# cd ..
[root@node1 software]# ls
apr-1.7.0 apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.54.tar.gz
进入 apr-1.7.0中configure 配置文件 删掉$RM "$cfgfile"
安装apr,将他放到/usr/local/apr
安装完成对他进行编译
[root@node1 apr-1.7.0]# make
进行编译安装
[root@node1 apr-1.7.0]# make install
apr-util
第二个安装apr-util-1.6.1.tar.gz,与上同理
[root@node1 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util \
> --with-apr=/usr/local/apr // 将他与apr关联
使用make进行编译,再使用make install进行编译安装
apache
与上同理,设置参数
[root@node1 software]# cd httpd-2.4.54/
[root@node1 httpd-2.4.54]# ./configure --prefix=/usr/local/apache \
> --sysconfdir=/etc/httpd24 \
> --enable-so \
> --enable-ssl \
> --enable-cgi \
> --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
使用make进行编译,再使用make install进行编译安装
启动apache,此时没有配置环境变量
[root@node1 apache]# /usr/local/apache/bin/apachectl start
[root@node1 apache]#
访问apache
mysql
useradd -r -M -s /sbin/nologin mysql //创建一个mysql用户 不让他登录
安装mysql需要的依赖包
[root@node1 software]# yum -y install libncurses*
将mysql安装到指定目录下
[root@node1 software]# tar -xzvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz -C /usr/local
配置mysql
[root@node1 local]# ln -sn mysql-5.7.37-linux-glibc2.12-x86_64/ mysql //给mysql创建一个软链接
[root@node1 local]# ls
apache bin include libexec sbin
apr etc lib mysql share
apr-util games lib64 mysql-5.7.37-linux-glibc2.12-x86_64 src
[root@node1 local]# chown -R mysql.mysql /usr/local/mysql // 更改所属主属组
[root@node1 local]# mkdir -p /opt/data // 创建mysql存放数据的目录
[root@node1 local]# chown -R mysql.mysql /opt/data/ // 更改所属主属组
[root@node1 local]#
对mysql进行初始化,在此之前需要下载libaio
[root@node1 local]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/opt/data/
配置数据库
[root@node1 local]# vim /etc/my.cnf
[root@node1 local]# cat /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
[root@node1 local]#
配置服务启动的文件
[root@node1 support-files]# pwd
/usr/local/mysql/support-files
[root@node1 support-files]# vim mysql.server
// 更改其中的两个地方
basedir= /usr/local/mysql // 工作目录
datadir=/opt/data // 数据存放目录
二进制安装没有配置systemctl restart 启动,手动编辑一个
[root@node1 support-files]# cat /usr/lib/systemd/system/mysqld.service
[Unit]
Description=mysql server daemon
After=network.targe
[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecStop=/usr/local/mysql/support-files/mysql.server stop
ExecReload=/bin/kill -HUP \$MAINPID
[Install]
WantedBy=multi-user.target
[root@node1 support-files]#
此时就可以使用
[root@node1 support-files]# systemctl restart mysqld
[root@node1 support-files]# systemctl enable mysqld
给mysql设置一个环境变量
vim /etc/profile
export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH // 把它添加进去
设置mysql的密码
[root@node1 support-files]# mysql -u root -e "set password=password('linux')"
php
安装php所需要的依赖包
[root@node1 ~]# yum -y install wget gcc gcc-c++ autoconf automake libtool make libxml2 libxml2-devel openssl openssl-devel sqlite-devel libpng libpng-devel libpsl libpsl-devel libicu-devel libcurl-devel
编译安装前会报错,就先把这些依赖包装好。
yum install openldap openldap-devel -y
cp -frp /usr/lib64/libldap* /usr/lib/
yum install oniguruma oniguruma-devel -y
yum --enablerepo=devel -y install oniguruma-devel
配置编译安装php
./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-mysql-sock=/tmp/mysql.sock \
--enable-fpm \
--enable-mysqlnd \
--enable-mysqlnd-compression-support \
--with-zlib \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-mbregex \
--enable-mbstring \
--enable-intl \
--enable-ftp \
--enable-gd-jis-conv \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--enable-soap \
--with-gettext \
--enable-fileinfo \
--enable-opcache \
--with-pear \
--with-ldap=shared \
--without-gdbm \
--with-curl \
--enable-ctype \
--without-pear --disable-phar
使用make进行编译,再使用make install进行编译安装
配置php
#测试环境时使用php.ini-development文件,生产环境使用php.ini-production文件
cp php.ini-development /usr/local/php/lib/php.ini
将/usr/local/php/lib/php.ini 中的时区修改成Asia/Shanghai
#修改httpd服务配置文件,让apache支持php
将 AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php
添加到/etc/httpd24/httpd.conf
默认网页加上index.php
写一个新的网页
[root@node1 htdocs]# pwd
/usr/local/apache/htdocs
[root@node1 htdocs]# cat index.php
<?php
phpinfo();
?>
[root@node1 htdocs]#
重启apache服务
访问网址成功