LAMP动静分离安装(源码安装)
环境:
| 版本 | IP地址 | 源码包版本 |
|---|---|---|
| Centos7.5_mysql | 192.168.111.3 | mysql-5.7.24.tar.gz,cmake-3.13.1.tar.gz,boost_1_59_0 |
| Centos7.5_httpd | 192.168.111.4 | apr-1.6.5,apr-util-1.6.1,httpd-2.4.37 |
| Centos7.5_php | 192.168.111.5 | php-7.3.1 |
目录
一、安装配置MySQL
二、安装配置httpd
三、安装配置PHP
一、安装配置MySQL
[root@localhost ~]# yum -y install ncurses-devel
#这个是cmake的依赖包
- 安装MySQL
[root@localhost ~]# tar xf cmake-3.13.1.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/cmake-3.13.1/
[root@localhost cmake-3.13.1]# ./configure && gmake && gmake install
#这步时间较长
[root@localhost cmake-3.13.1]# useradd -M -s /sbin/nologin mysql
#创建一个程序用户并且指定参数
[root@localhost cmake-3.13.1]# mkdir /usr/local/boost
#创建一个目录,并将boost_1_66_0.tar.gz解压后放到这个目录里
[root@localhost ~]# tar zxf boost_1_59_0.tar.gz -C /usr/local/boost/
[root@localhost ~]# tar xf mysql-*.tar.gz -C /usr/src/
#解压MySQL包
[root@localhost boost_1_59_0]# cd /usr/src/mysql-5.7.24/
[root@localhost mysql-5.7.24]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA
_CHARSETS=all -DSYSCONFDIR=/etc -DWITH_BOOST=/usr/local/boost && make && make install
#这步时间较长
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql #数据库程序安装目录
-DDEFAULT_CHARSET=utf8 #指定字符集编码
-DDEFAULT_COLLATION=UTF8_GENERAL_CI #默认的字符集校对规则,utf8_general_ci适用于utf-8字符集的通用规则
-DWITH_EXTRA_CHARSETS=all #指定额外支持的字符集编码
-DSYSCONFDIR=/etc #指定配置文件存放目录
[root@localhost mysql-5.7.24]# cd /usr/local/mysql/
[root@localhost mysql]# chown -R mysql:mysql *
#将该目录下的所有文件和目录的属主和属组修改为mysql
- 配置MySQL
[root@localhost mysql]# vim /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
[mysqld_safe]
log-error=/usr/local/mysql/data/mysql.log
pid-file=/usr/local/mysql/data/mysql.pid
- 初始化数据库
[root@localhost mysql]# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
--user #指定用户身份运行
--datadir #指定安装目录
--basedir #指定数据目录
执行该命令后注意会出现下面这一行,密码是最后的字符,保存好,待会儿可以进行修改
2019-04-18T08:06:48.532352Z 1 [Note] A temporary password is generated for root@localhost: 4PUsoq3O=rjs
- 设置环境变量
[root@localhost mysql]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@localhost mysql]# . /etc/profile
- 服务启动文件
[root@localhost mysql]# cp support-files/mysql.server /usr/local/mysql/bin/mysqld.sh
#将配置文件添加到系统服务
[root@localhost mysql]# chmod +x /usr/local/mysql/bin/mysqld.sh
[root@localhost data]# vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
PIDFile=/usr/local/mysql/data/mysqld.pid
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Execute pre and post scripts as root
PermissionsStartOnly=true
# Needed to create system tables
#ExecStartPre=/usr/bin/mysqld_pre_systemd
# Start main service
ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/data/mysqld.pid
#注意这里要加上 --daemonize
# Use this to switch malloc implementation
#EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
LimitNOFILE = 5000
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false
[root@localhost data]# systemctl start mysqld
[root@localhost data]# systemctl enable mysqld
[root@localhost data]# mysqladmin -u root -p4PUsoq3O=rjs password 123456
#修改密码,-p后为旧密码,即初始化时出现的哪个,后面为新密码,有空格
[root@localhost data]# mysql -u root -p123456
#使用新密码,登录数据库,-p后无空格
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
#给用户授权远程连接,稍后在别的服务器上可以通过PHP使用该用户及密码
二、安装配置httpd
- 安装
[root@localhost ~]# useradd -r -s /sbin/nologin -M apache
#创建用户
[root@localhost ~]# ls
anaconda-ks.cfg apr-1.6.5.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.37.tar.gz initial-setup-ks.cfg
[root@localhost ~]# yum -y install pcre-devel openssl-devel expat-devel libxml2-devel bzip2-devel
#安装依赖
[root@localhost ~]# mv apr-1.6.5 apr
[root@localhost ~]# tar zxf apr-util-1.6.1.tar.gz
[root@localhost ~]# mv apr-util-1.6.1 apr-util
#配置所需的包
[root@localhost ~]# tar zxf httpd-2.4.37.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/httpd-2.4.37/
[root@localhost httpd-2.4.37]# mv /root/{apr-util,apr} srclib/
[root@localhost httpd-2.4.37]# ./configure --prefix=/usr/local/httpd --enable-so --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-includ
ed-apr=/root/apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork && make && make install
- 配置
修改配置文件
[root@localhost httpd-2.4.37]# vim /usr/local/httpd/conf/httpd.conf
171 User apache
172 Group apache
202 ServerName 192.168.111.4:80
#也可填自身域名,并将注释删除
259 <IfModule dir_module>
260 DirectoryIndex index.html index.php
261 </IfModule>
#添加PHP的
484 # Virtual hosts
485 Include conf/extra/httpd-vhosts.conf
#启用虚拟主机配置
119 LoadModule proxy_module modules/mod_proxy.so
123 LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
#取消注释
[root@localhost httpd-2.4.37]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
#将原来文件内容删除
<VirtualHost 192.168.111.4:80>
DocumentRoot "/usr/local/httpd/htdocs"
ServerName www.join.com
ErrorLog "/usr/local/httpd/logs/error_log"
CustomLog "/usr/local/httpd/logs/access_log" common
<Directory "/usr/local/httpd/htdocs">
Options None
AllowOverride None
Require all granted
</Directory>
ProxyRequests Off
#关闭代理请求
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.111.5:9000/usr/local/httpd/htdocs/$1
#访问PHP结尾的网页,匹配PHP地址和目录以及端口
</VirtualHost>
[root@localhost httpd-2.4.37]# vim /usr/lib/systemd/system/httpd.service
#服务启动配置文件
[Unit]
#控制单元的定义
Description=The Apache HTTP Server
#设置服务单元描述字符串
After=network.target
#After:设置服务单元的启动先后顺序。(如,httpd.service单元文件中出现“After=network.target”表示先“network.target”后 “httpd.service“;出现”Before“则
相反顺序启动)
[Service]
#服务定义
Type=forking
#设置服务进程的启动类型。为forking是需同时设置PIDFile配置项,以帮助systemd精确定位到服务的主进程。
PIDFile=/usr/local/httpd/logs/httpd.pid
#设置服务的守护进程的PID文件
ExecStart=/usr/local/httpd/bin/apachectl $OPTIONS
#设置服务启动时执行的命令
ExecReload=/bin/kill -HUP $MAINPID
#设置服务重新加载时执行的命令
KillMode=process
#设置在单元停止时,杀死进程的方法;process表示仅杀死主进程。
Restart=on-failure
#设置服务进程正常退出、异常退出、被杀死、超时时候,是否重启服务。on-failure表示异常退出重启。
RestartSec=42s
#重启服务钱暂停多长时间,默认100ms
[install]
#安装部分
WantedBy=graphical.target
#设置该服务所在的(target)运行目标。WantedBy=graphical.target,是指httpd所在的运行目标是图形界面多用户系统;改配置项还有multi-user.target(非图形界>面多用户系统)
[root@localhost httpd-2.4.37]# systemctl start httpd
[root@localhost httpd-2.4.37]# systemctl enable httpd
三、安装配置PHP
- 安装
[root@localhost ~]# yum install -y pcre-devel openssl-devel expat-devel libxml2-devel bzip2-devel
#安装依赖包
[root@localhost ~]# tar zxf php-7.3.1.tar.gz -C /usr/src/
[root@localhost php-7.3.1]# cd /usr/src/php-7.3.1/
[root@localhost etc]# ./configure --prefix=/usr/local/php --enable-mysqlnd --with-mysqli=mysqlnd --with-openssl --with-pdo-mysql=mysqlnd --enable-mb
string --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-maintainer-zts --disable-fileinfo && make && make install
#编译安装
[root@localhost php-7.3.1]# cp php.ini-production /etc/php.ini
#生成配置文件
[root@localhost php-7.3.1]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
#生成服务文件
[root@localhost php-7.3.1]# chmod +x /etc/init.d/php-fpm
[root@localhost php-7.3.1]# chkconfig --add php-fpm
#添加到服务启动
[root@localhost php-7.3.1]# useradd -r -s /sbin/nologin -M apache
#创建运行用户
[root@localhost php-7.3.1]# cd /usr/local/php/etc/
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf
[root@localhost etc]# cp php-fpm.d/www.conf.default php-fpm.d/www.conf
#php-fpm配置文件
[root@localhost etc]# vim php-fpm.d/www.conf
23 user = apache
24 group = apache
#修改用户和组
36 listen = 192.168.111.5:9000
#监听的地址
[root@localhost etc]# vim php-fpm.conf
17 pid = run/php-fpm.pid
#将前面;号去掉(取消注释)
[root@localhost etc]# mkdir -pv /usr/local/httpd/htdocs
mkdir: 已创建目录 "/usr/local/httpd"
mkdir: 已创建目录 "/usr/local/httpd/htdocs"
#创建之前在httpd服务器上指定的目录,存放动态网页
[root@localhost ~]# /etc/init.d/php-fpm start
Starting php-fpm done
#启动php
[root@localhost ~]# netstat -lnpt | grep php
tcp 0 0 192.168.111.5:9000 0.0.0.0:* LISTEN 54111/php-fpm: mast
四、测试
PHP上新建如下测试文件,测试数据库连通性
[root@localhost etc]# vim /usr/local/httpd/htdocs/mysql.php
<?php
$link=mysqli_connect('192.168.111.3','root','123456');
#MySQL数据库的主机地址,登录数据库的用户和密码,注意不是系统用户和密码
if($link) echo "<h1>完全分离成功<h1>";
mysqli_close($link);
?>
over……
LAMP动静分离安装(源码安装)的更多相关文章
- 2apt-get命令,deb包安装,源码安装
1 安装卸载软件 更新源服务器列表 sudovi /etc/apt/sources.list 更新完服务器列表后需要更新下源 sudoapt-get update 更新源 sudoapt-get in ...
- Windows 环境下于虚拟环境安装源码安装 cx_oracle
安装前提条件: (1).安装 instantclient-basic-nt (2).安装 instantclient-sdk-nt (3).安装 Microsoft Visual C++ Compil ...
- linux安装-----源码安装步骤--zlib软件安装
该zlib 可以对许多其他软件的编译代码起着优化 压缩作用. 解压压缩包: .tar.gz------------->tar zxvf 压缩包.tar.gz .tar.bz2---------- ...
- salt源码安装软件和yum安装软件
上面简单列出了源码安装的sls文件书写思路. 涉及到一些固定的思路:如, 1,拷贝 解压安装时候需要依赖tar.gz存在 如果已安装则无需再次安装. 2,启动脚本 加入chk时候需要文件存在,如果已添 ...
- Python并发编程-redis-3.0.5 源码安装
1.简介 Remote Dictionary Server(Redis)是一个基于 key-value 键值对的持久化数据库存储系统.redis 和 Memcached 缓存服务很像,但它支持存储的 ...
- [svc]salt源码安装软件和yum安装软件
上面简单列出了源码安装的sls文件书写思路. 涉及到一些固定的思路:如, 1,拷贝 解压安装时候需要依赖tar.gz存在 如果已安装则无需再次安装. 2,启动脚本 加入chk时候需要文件存在,如果已添 ...
- 实验 1:Mininet 源码安装和可视化拓扑工具
实验 1:Mininet 源码安装和可视化拓扑工具 一.实验目的 掌握 Mininet 的源码安装方法和 miniedit 可视化拓扑生成工具. 二.实验任务 使用源码安装 Mininet 的 2.3 ...
- 实验1:Mininet源码安装和可视化拓扑工具
一.实验目的 掌握 Mininet 的源码安装方法和 miniedit 可视化拓扑生成工具. 二.实验任务 使用源码安装 Mininet 的 2.3.0d6 版本,并使用可视化拓扑工具生成一个最简拓扑 ...
- 源码安装的应用 rpm 命令无法查询
源码安装:一大堆源码文件,需要编译后才能使用(编译需要安装编译器 :yum install gcc) rpm 安装:redhat 官网或其它开源网站编译好发布,已经编译好的安装包,使用 rpm -iv ...
- 实验 1 :Mininet 源码安装和可视化拓扑
实验 1 : Mininet 源码安装和可视化拓扑工具 一 .实验目的 掌握 Mininet 的源码安装方法和 miniedit 可视化拓扑生成工具. 二 .实验任务 使用源码安装 Mininet 的 ...
随机推荐
- 软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)
一.网络编程 软件开发架构 C/S架构 C:客户端 想体验服务的时候才会去找服务端体验服务 S:服务端 24小时不间断的提供服务,即时监听,随时待命 B/S架构 B:浏览器 想体验服务的时候 ...
- C# 替换Word文本—— 用文档、图片、表格替换文本
编辑文档时,对一些需要修改的字符或段落可以通过查找替换的方式,快速地更改.在C# 在word中查找及替换文本一文中,主要介绍了在Word中以文本替换文本的方法,在本篇文章中,将介绍如何用一篇Word文 ...
- pod command
pod 基础使用命令 创建Podfile文件 1 pod init 使用命令打开Podfile文件 1 open -a Xcode Podfile 搜索pod 库 1 pod search 库名 更新 ...
- nginx通过域名访问项目(不接项目名称),cookie丢失问题详解
最近搞了个域名,想用它直接去访问Tomcat上部署的项目,开始一直必须加上项目名称,经过短暂配置,成功了. 访问一次,到达登陆页面,结果死活登录不进去,一直在登陆界面,原来是由于cookie丢失,现配 ...
- .NET 机器学习生态调查
机器学习是一种允许计算机使用现有数据预测未来行为.结果和趋势的数据科学方法. 使用机器学习,计算机可以在未显式编程的情况下进行学习.机器学习的预测可以使得应用和设备更智能. 在线购物时,机器学习基于历 ...
- SpringBoot基础系列一
SpringBoot基础知识概览 特性 核心理念:约定优于配置 特点: 1. 开箱即用,根据项目依赖自动配置 2. 功能强大的服务体系,如嵌入式服务.安全 3. 绝无代码生成,不用写.xml配置,用注 ...
- Windows10系统:任务栏中电池图标消失问题的解决方法
一.问题: 电池图标对我们来说,基本是没有什么操作对它进行的,但这并不代表它不重要. 持续充电的时候自然觉得没什么,但一旦电脑脱离充电状态,我们还是会经常性地把鼠标放在电池图标上.只有清楚地了解电脑的 ...
- 【Netty】(5)源码 Bootstrap
[Netty]5 源码 Bootstrap 上一篇讲了AbstractBootstrap,为这篇做了个铺垫. 一.概述 Bootstrap 是 Netty 提供的一个便利的工厂类, 我们可以通过它来完 ...
- ToolbarDemo【Toolbar作为顶部导航栏的简单使用】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 简单记录ToolBar作为导航栏的使用.关键点在于如何在dialogfragment中使用toolbar! Toolbar的图标.标 ...
- [翻译] Linux 内核中的位数组和位操作
目录 Linux 内核里的数据结构 原文链接与说明 Linux 内核中的位数组和位操作 位数组声明 体系结构特定的位操作 通用位操作 链接 Linux 内核里的数据结构 原文链接与说明 https:/ ...