LAMP架构编译安装过程详解
linux Git 安装
1.安装git依赖包
. yum install -y perl-ExtUtils-MakeMaker package
. yum install -y tcl build-essential tk gettext
. yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker #安装gcc编译器
2.下载编译包并安装
#下载git
wget https://www.kernel.org/pub/software/scm/git/git-2.8.1.tar.gz
#解压压缩包
tar -zxvf git-2.8..tar.gz #进入目录
cd git-2.8. #编译安装
./configure -prefix=/usr/local/git
make && make install
3.加入环境变量
echo -e '\nexport PATH=$PATH:/usr/local/git/bin' >> /etc/profile && source /etc/profile
4.验证成功
git --version
LAMP-APR安装
【apache 安装需要的依赖包:apr apr-util pcre 】
下载编译安装:apr
wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7.0.tar.gz
cd ./apr-1.7./
./configure --perfix=/usr/local/apr
make && make install
下载编译安装:apr-util
#安装前需要先安装expat库。否则会报错
yum install expat-devel
#下载源码包
wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
#解压
tar -zxvf apr-util-1.6..tar.gz
#配置编译安装
cd apr-util-1.6.
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr--config
make && make install
下载安装编译:pcre
#下载
wget https://sourceforge.net/projects/pcre/files/pcre/8.43/pcre-8.43.tar.gz
#配置并编译安装
cd pcre-8.43.tar.gz
./configure --prefix=/usr/local/pcre --with-apr=/usr/local/apr/bin/apr--config
make && make install
下载编译安装apache
#下载
wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.41.tar.gz #解压
tar -zxvf httpd-2.4..tar.gz #配置并编译安装
cd httpd-2.4.
./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修改配置文件
编译Apache的unit文件,在/usr/lib/systemd/system/目录下新建一个名为httpd.service的unit文件,其内容为:
[Unit]
Description=apache [Service]
Type=simple #设置service类型为simple
EnvironmentFile=/usr/local/apache/conf/httpd.conf #指定service的环境配置文件
ExecStart=/usr/local/apache/bin/httpd -k start -DFOREGROUND
ExecReload=/usr/local/apache/bin/httpd -k graceful
ExecStop=/bin/kill -WINCH ${MAINPID} #此处的${MAINPID}为特殊变量,对应着相应服务的主进程ID [Install]
WantedBy=multi-user.target
启动httpd服务并设置自动启动
编辑完成后,记得使用systemctl daemon-reload加载新建或编辑过的unit文件
使用systemctl启动httpd服务
[root@localhost /]# systemctl start httpd
[root@localhost /]# systemctl status httpd
第二种httpd启动方式
1. 将apache启动脚本复制到系统服务目录
cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
2. 添加apache的环境变量
echo -e '\nexport PATH=/usr/local/apache/bin:/usr/local/apache/lib:$PATH\n' >> /etc/profile && source /etc/profile
3. 加入自启动服务
#编辑启动脚本
vim /etc/rc.d/init.d/httpd #给脚本中添加注释
#chkconfig: #当进行chkconfig --add httpd操作时,如果没有指定level那么就会来这个注释中取值
#添加到自启服务列表并开启自启
chkconfig --add httpd
chkconfig httpd on
4.修改配置文件
#编辑httpd.conf 文件
vim /usr/local/apache/conf/httpd.conf 将ServerName前面的#去掉,
#ServerName www.example.com:
5.启动服务
[root@localhost httpd-2.4.]# service httpd start
Starting httpd: [ OK ]
下载安装编译:php
1 安装依赖包
yum install -y gcc gcc-c++ make zlib zlib-devel pcre pcre-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
#下载php编译包
wget https://www.php.net/distributions/php-7.3.10.tar.gz #解压
tar -zxvf php-7.3..tar.gz
cd cd php-7.3./ #编译安装
./configure \
--prefix=/usr/local/php7/ \
--with-apxs2=/usr/local/apache/bin/apxs \
--enable-mbstring \
--with-curl \
--with-gd \
--enable-fpm \
--enable-mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-config-file-path=/usr/local/php7/etc/ \
--with-mysqli=mysqlnd make && make install
2. 配置php启动命令
# 复制启动脚本到 init.d 目录
$ cp php-7.3./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
# 增加执行权限
$ chmod +x /etc/init.d/php-fpm
# 配置 php-fpm 文件
$ cd /usr/local/php7/etc/
$ cp php-fpm.conf.default php-fpm.conf
# 进入 php-fpm.conf , 并去除 pid = run/php-fpm.pid 的注释
$ vim php-fpm.conf
===
...
[global]
; Pid file
; Note: the default prefix is /usr/local/php7/var
; Default Value: none
# 取消下面的注释
pid = run/php-fpm.pid
...
===
# 复制 www.conf 文件
$ cp php-fpm.d/www.conf.default php-fpm.d/www.conf
# 重启 php 服务器
$ pkill - php-fpm
$ /usr/local/nginx/php7/sbin/php-fpm
# 测试
$ /etc/init.d/php-fpm stop # 停止服务
Gracefully shutting down php-fpm . done
$ /etc/init.d/php-fpm start # 启动服务
Starting php-fpm done
$ /etc/init.d/php-fpm restart # 重启服务
Gracefully shutting down php-fpm . done
Starting php-fpm done
CentOS 7 配置自启动
# 启动(因为上面已经配置好启动脚本了,并且放到了 /etc/init.d 中所以下面命令是可以用的)
# 在 centos7 中 systemctl 是找 /etc/init.d 中的脚本
$ systemctl start php-fpm # 启动
$ systemctl enable php-fpm # 自启动
php-fpm.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig php-fpm on # 这里他提示我 php-fpm 并不是系统服务所以不能使用 systemctl 推荐我使用 /sbin/chkconfig php-fpm on 来实现自启动
$ /sbin/chkconfig php-fpm on 再次重启即可完成自启动
# 注: 如果不想配置 php-fpm 服务器化到此已经可以结束了,如果想看服务化可以看以下操作
Centos 7 服务化 php-fpm
# 在 centos 之后我们可以使用 systemctl 更好的管理系统服务
# 所以我们也要让 php-fpm 支持
# 因为 php 7.2 源码包里面含有 systemctl 所需要的脚本文件
# 我们只要复制过去即可,我们来开始配置
# 进入下载的 php源码包
$ cd php-7.2./sapi/fpm
# 复制其中的 php-fpm.service 到 /usr/lib/systemd/system/
$ cp php-fpm.service /usr/lib/systemd/system/
# 再次使用 systemctl enable php-fpm 进行配置自启动
$ systemctl enable php-fpm
# 重启测试一下看看自己服务器的 php-fpm 是否成功运行
安装MySQL依赖包
1. 安装boost
[root@node2~]# yum –y install libevent* libtool* autoconf* libstd* ncurse* bison* openssl*
2. 安装 boost_1_59_0.tar.gz
#下载boost
wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz #解压到/usr/local/下
下载更新cmake 【 编译安装mysql - 从mysql5.5起,mysql源码安装开始使用cmake 】
#下载
wget https://cmake.org/files/v3.6/cmake-3.6.2.tar.gz #解压
tar -zxvf cmake-3.6..tar.gz
cd cmake-3.6./ #编译安装
./bootstrap
make && make install #查看版本
#cmake --version
cmake version 3.6. CMake suite maintained and supported by Kitware (kitware.com/cmake).
安装数据库
1. 卸载已有MySQL
[root@node2~]# yum -y remove mariadb
[root@node2~]# yum -y remove mysql
[root@node2~]# rm -rf /usr/local/mysql57
[root@node2~]# rm -rf /var/lib/mysql57/
[root@node2~]# rm -rf /usr/src/mysql-5.7./
[root@node2~]# rm /etc/my.cnf
2. 下载解压MySQL包
[root@node2~]# wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.20.tar.gz # 解压到/usr/src/目录
[root@node2~]# tar zxvf mysql-5.7.20.tar.gz -C /usr/local/src/
3. 添加mysql用户和组
[root@node2 ~]# groupadd mysql
[root@node2 ~]# id myql
id: myql: no such user
[root@node2 ~]# useradd -d /home/myql -g mysql -m mysql
[root@node2 ~]# id mysql
uid=(mysql) gid=(mysql) 组=(mysql)
[root@node2 ~]# passwd mysql
更改用户 mysql 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
4. 新建相关目录,并赋权限给mysql用户
[root@node2 home]# mkdir /home/mysql-5.7.
[root@node2 home]# mkdir /home/mysql-5.7./data
[root@node2 home]# mkdir -p /home/mysql-5.7./log
[root@node2 home]# mkdir -p /home/mysql-5.7./run
[root@node2 home]# mkdir -p /home/mysql-5.7./tmp
[root@node2 home]# chown -R mysql:mysql /home/mysql-5.7.20/
5. 编译安装
###编译时注意内存是否满足编译要求否则会中断编译
[root@node2 ~]# cd /usr/src/mysql-5.7./
#cmke编译
cmake \
-DCMAKE_INSTALL_PREFIX=/home/mysql-5.7. \ #指定安装目录
-DINSTALL_DATADIR=/home/mysql-5.7./data \
-DDEFAULT_CHARSET=utf8 \ #默认字符集
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_SSL=yes \
-DWITH_EMBEDDED_SERVER= \
-DENABLED_LOCAL_INFILE= \
-DWITH_MYISAM_STORAGE_ENGINE= \
-DWITH_INNOBASE_STORAGE_ENGINE= \
-DWITH_ARCHIVE_STORAGE_ENGINE= \
-DWITH_BLACKHOLE_STORAGE_ENGINE= \
-DWITH_FEDERATED_STORAGE_ENGINE= \
-DWITH_PARTITION_STORAGE_ENGINE= \
-DMYSQL_UNIX_ADDR=/home/mysql-5.7./run/mysql.sock \ #用来做网络通信,启动时再会发生
-DMYSQL_TCP_PORT= \
-DENABLED_LOCAL_INFILE= \
-DSYSCONFDIR=/etc \ #配置文件的位置
-DWITH_READLINE=on \
-DWITH_BOOST=/usr/local/boost_1_59_0 make install
6.编写配置文件my.cnf
mkdir /etc/mysql
cd /etc/mysql
vim my.cnf
[mysqld]
basedir=/home/mysql-5.7.
datadir=/home/mysql-5.7./data
socket=/home/mysql-5.7./mysql.sock
user=mysql
symbolic-links=
[mysqld_safe]
log-error=/home/mysql-5.7./log/mysqld.log
pid-file=/home/mysql-5.7./run/mysqld.pid
7. 初始化系统数据库
[root@node2 bin]# ./mysqld –defaults-file=/etc/mysql/my.cnf --initialize --user=mysql --basedir=/home/mysql-5.7./ --datadir=/home/mysql-5.7./data/
#创建密码一定要记下来
8. 启动mysql
[root@node2 bin]# touch /home/mysql-5.7./log/mysqld.log
[root@node2 bin]# chown -R mysql:mysql /home/mysql-5.7./log/mysqld.log
[root@node2 bin]# ./mysqld_safe --defaults-file=/etc/mysql/my.cnf --user=mysql
--15T06::.794898Z mysqld_safe Logging to '/home/mysql-5.7.20/log/mysqld.log'.
--15T06::.826283Z mysqld_safe Starting mysqld daemon with databases from /home/mysql-5.7./data
9. 添加mysql服务
cp /home/mysql-5.7./support-files/mysql.server /etc/init.d/mysqld chmod /etc/init.d/mysqld
10. 启动服务
[root@node2 bin]# service mysqld start
Starting MySQL. SUCCESS!
11. 添加mysql的环境变量
vim /etc/profile
最后一行添加
export PATH=/home/mysql-5.7./bin:$PATH
source /etc/profile
12. 连接mysql
#查看mysql.log日志,查看初始密码
[root@node2 data]# cat /home/mysql-5.7./log/mysqld.log |grep password
--15T03::.137254Z [Note] A temporary password is generated for root@localhost: 1ws;,dEy?kM#
13. 登录
[root@node2 bin]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 5.7. Copyright (c) , , Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
#修改密码
mysql> set PASSWORD=PASSWORD('xxxxxxxx');
Query OK, rows affected, warning (0.01 sec) mysql> alter user 'root'@'localhost' PASSWORD EXPIRE NEVER;
Query OK, rows affected (0.00 sec) mysql> flush privileges;
Query OK, rows affected (0.00 sec)
#重新登录
[root@node2 log]# /home/mysql-5.7./bin/mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 5.7. Source distribution Copyright (c) , , Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show database;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
rows in set (0.00 sec
LAMP架构编译安装过程详解的更多相关文章
- TortoiseGIT的安装过程详解
TortoiseGIT简介 TortoiseGIT 是Git版本控制系统的一个免费开源客户端,它是git版本控制的 Windows 扩展.可以使你避免使用枯燥而且不方便的命令行.它完全嵌入 Windo ...
- linux PHP 编译安装参数详解
linux PHP 编译安装参数详解 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...
- hadoop1.2.1+zk-3.4.5+hbase-0.94.1集群安装过程详解
hadoop1.2.1+zk-3.4.5+hbase-0.94.1集群安装过程详解 一,环境: 1,主机规划: 集群中包括3个节点:hadoop01为Master,其余为Salve,节点之间局域网连接 ...
- 个人用户永久免费,可自动升级版Excel插件,使用VSTO开发,Excel催化剂安装过程详解及安装失败解决方法
因Excel催化剂用了VSTO的开发技术,并且为了最好的用户体验,用了Clickonce的布署方式(无需人工干预自动更新,让用户使用如浏览器访问网站一般,永远是最新的内容和功能).对安装过程有一定的难 ...
- Ubuntu19.04的安装过程详解以及操作系统初始化配置
Ubuntu19.04的安装过程详解以及操作系统初始化配置 ...
- RabbitMQ 集群安装过程详解
一.安装Erlang 1.rabbitMQ是基于erlang的,所以首先必须配置erlang环境. 从erlang官网下载 otp 18.3.下载链接:http://erlang.org/downlo ...
- SAP ECC6安装系列四:安装过程详解
原作者博客 http://www.cnblogs.com/Michael_z/ ======================================== 续接上篇,我们终于按下了 “Next” ...
- CentOS 7下Cloudera Manager及CDH 6.0.1安装过程详解
目录 一.概念介绍 1.CDH 概览 2.Cloudera Manager 概览 二.环境准备 1.软件版本选择 2.节点准备(四个节点) 3.配置主机名和hosts解析(所有节点) 4.关闭防火墙 ...
- nginx源码编译安装(详解)
nginx编译安装 安装步骤: 官网下载合适的版本,建议选择稳定版本. 官网地址:https://nginx.org wget https://nginx.org/download/nginx-1.2 ...
随机推荐
- from sklearn import datasets运行错误:ImportError: DLL load failed: 找不到指定的程序------解决办法
在运行集成学习的多数投票分类代码时,出现错误 from sklearn import datasets from sklearn.model_selection import cross_val_sc ...
- spring boot 和 mybatis集成
1.pom.xml 添加mybatis和mysql依赖 <!-- 添加 MyBatis --> <dependency> <groupId>org.mybatis. ...
- 使用collection查询集合属性
介绍resultMap中使用collection查询集合属性 业务需求,查询部门中的多个人员 public class Department { private Integer id; private ...
- 测开之路一百四十六:WTForms之表单应用
WTForms主要是两个功能:1.生成HTML标签 2.对数据格式进行验证 官网:https://wtforms.readthedocs.io/en/stable/ 这篇介绍用wtform生成htm ...
- 【命令汇总】Windows 应急响应
日期:2019-06-07 16:11:49 作者:Bay0net 介绍:Windows 应急响应.取证及溯源相关内容学习记录 0x00.前言 常见的应急分类: web入侵:网页挂马.主页篡改.Web ...
- 学用 TStringGrid [6] - Options
本例运行效果图: 一般修改 TStringGrid 的 Options 直接在设计时选一下 True 或 False 就行了; 代码中可以像下面操作: StringGrid1.Options := ...
- CMakeLists.txt中使用循环
编译一个安卓下的so,此so依赖其他的库,通过循环简化操作 set(UVC_LIBS UVCCamera uvc usb100 jpeg-turbo1500) FOREACH(UVC_LIB ${UV ...
- 【Bean】标签常用属性
[Bean]标签常用属性 Id 说明:起名称,id属性值名称任意,不能包含特殊符号,根据id得到配置对象. Class 说明:创建对象所在类的全路径. Name 说明:功能和id是一样的,id属性值不 ...
- java通过jna调用so
c++: FirstEliteValidate.h #pragma once void __attribute__((constructor)) startup();void __attribute_ ...
- MySQL学习-入门语句以及增删查改
1. SQL入门语句 SQL,指结构化查询语言,全称是 Structured Query Language,是一种 ANSI(American National Standards Institute ...