LAMP-分离式部署

实验环境:(注:请务必与以下的实验环境相同,否则可能报错!)

服务

地址

软件包

apache

192.168.200.101

httpd-2.4.37.tar.gz

Php

192.168.200.102

php-7.3.0.tar.gz

Mysql

192.168.200.103

mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

 

前言:

   之前做过LAMP一台式部署,没做过LAMP分离式部署,在网上搜索了很多资料,但是感觉写的都很模糊,不清不楚的,所以我在这里给大家做一做LAMP分离部署。搭建任何服务,我们都需要理解性的去做,如果有什么地方不懂,那就要找资料,一直到将它搞懂为止。

 

一、搭建源代码apache(192.168.200.101)

解压httpd源码包

[root@localhost ~]#tar zxf httpd-2.4.37.tar.gz -C /usr/src

安装httpd所需要的依赖包

[root@localhost ~]#yum -y install apr apr-devel apr-util apr-util-devel pcre pcre-devel openldap-devel libdb-devel expat-devel cyrus-sasl-devel

[root@localhost ~]#cd /usr/src/ httpd-2.4.37

[root@localhost httpd-2.4.37]#./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-cgi --enable-charset-lite && make && make install

编译安装httpd。

--prefix:指定httpd的编译安装路径

--enable-so:启用动态加载模块支持,使httpd具备进一步扩展功能的能力。

--enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护。

--enable-charset-lite:启动字符集支持功能,以便支持使用各种字符集编码的网页。

--enable-cgi:启用cgi脚本程序支持,便于扩展网站的应用访问能力。

 

将httpd下的执行文件软连接到/usr/loca/bin,方便系统路径找到它。方便使用。

[root@localhost httpd-2.4.37]#ln -s /usr/local/httpd/bin/* /usr/local/bin

把httpd下在apachectl复制到/etc/init.d下,将它做成系统服务。

[root@localhost httpd-2.4.37]#cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

[root@localhost httpd-2.4.37]#vim /etc/init.d/httpd

#!/bin/sh

# chkconfig:35 80 20    //设置3跟5等级的系统可以用,80是在80个

(只需在/etc/init.d/httpd 中添加此项)

[root@localhost httpd-2.4.37]#chkconfig --add httpd

[root@localhost httpd-2.4.37]#systemctl start httpd

[root@localhost httpd-2.4.37]#vim /usr/local/httpd/conf/httpd.conf

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

<IfModule dir_module>

     DirectoryIndex index.html index.php

</IfModule>

AddType application/x-httpd-php .php

ProxyRequests off

ProxyPassMatch ^/(.*\.php)$  fcgi://192.168.200.102:9000/var/www/html/$1(此处的IP为安装了php的服务器的IP地址,目录为网站网页的目录,需要手动创建)

 

这里面的ProxyRequests off跟ProxyPassMatch表示代理。这里我们将php结尾的所有文件都代理到 后端的php服务器上面了。

LoadModule所指定的俩个都是为了支持proxy的。这两个在httpd是自带的。将注释去掉就可以了。

 

二、二进制安装mysql(192.168.200.103)

  1. 首先。要有软件包mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

  1. [root@bogon ~]#yum -y install libaio(图形化界面默认已安装)
  2. [root@bogon ~]#tar zxf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz -C /usr/local
  3. [root@bogon ~]# cd /usr/local/
  4. [root@bogon local]# mv mysql-5.7.24-linux-glibc2.12-x86_64/ mysql
  5. [root@bogon local]# useradd -M -s /sbin/nologin mysql
  6. [root@bogon local]# cd mysql/
  7. [root@bogon mysql]# chown -R mysql:mysql ./
  8. [root@bogon mysql]# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
  9. [Note] A temporary password is generated for root@localhost: ho19hx,%sZNq

记住上面这一行的密码。这个是初始密码。每一台机器的初始密码都不一样。

  1. 修改/etc/my.cnf文件(将原有的my.cnf删除或者移动到别的位置,新建一个my.cnf,输入以下内容:)

[mysqld]

datadir=/usr/local/mysql/data

socket=/tmp/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

# Settings user and group are ignored when systemd is used.

# If you need to run mysqld under a different user or group,

# customize your systemd unit file for mariadb according to the

# instructions in http://fedoraproject.org/wiki/Systemd

 

[mysqld_safe]

log-error=/usr/local/mysql/data/mysql.log

pid-file=/usr/local/mysql/data/mysql.pid

到这一步其实就已经做完了,后面的都是起服务跟优化

  1. [root@bogon mysql]# ./support-files/mysql.server start
  2. [root@bogon mysql]# netstat -anpt |grep 3306
  3. [root@bogon mysql]# cp support-files/mysql.server /etc/init.d/mysqld
  4. [root@bogon mysql]# service mysqld restart
  5. [root@bogon mysql]# ./bin/mysqladmin -u root -p password '123123'
  6. [root@bogon mysql]# ln -s /usr/local/mysql/bin/* /usr/local/bin
  7. [root@bogon mysql]#service mysqld restart

 

 

三、php(192.168.200.102)

安装php依赖包

[root@localhost ~]# yum -y install zlib-devel pcre-devel openssl-devel xm-devel libxml2-devel bzip2-devel xz-devel

[root@localhost ~]#tar zxf libmcrypt-2.5.8.tar.gz -C /usr/src

[root@localhost ~]#cd /usr/src/libmcrypt-2.5.8

[root@localhost ~]#./configure && make && make install

[root@localhost ~]#ln -s /usr/local/lib/libmcrypt.* /usr/lib/

[root@localhost ~]#cd

[root@localhost ~]#tar zxf mhash-0.9.9.9.tar.gz -C /usr/src

[root@localhost ~]#cd /usr/src/mhash-0.9.9.9

[root@localhost ~]#./configure && make && make install

[root@localhost ~]#ln -s /usr/local/lib/libmhash* /usr/lib/

[root@localhost ~]#cd 

[root@localhost ~]#tar zxf mcrypt-2.6.8.tar.gz -C /usr/src

[root@localhost ~]#cd /usr/src/mcrypt-2.6.8

[root@localhost ~]#export LD_LIBRARY_PATH=/usr/local/lib

[root@localhost ~]#./configure && make && make install

[root@localhost ~]#ln -s /usr/local/lib/libmhash* /usr/lib/

安装php源码包

[root@localhost ~]# tar zxf php-7.3.0.tar.gz -C /usr/src

[root@localhost ~]# cd /usr/src/php-7.3.0/

[root@localhost php-7.3.0]# ./configure --prefix=/usr/local/php5 --enable-mysqlnd --with-mysqli=mysqlnd --enable-mbstring --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-libxml-dir --enable-xml --enable-fpm --with-config-file-path=/usr/local/php5 --enable-maintainer-zts --disable-fileinfo && make && make install

注:编码详细介绍:

--enable-mysqlnd            mysqln是专门为php优化编写的驱动。默认就是开启的。

--with-mysqli=mysqlnd        是由PHP源码提供的mysql驱动连接代码。

--with-mysql=mysqlnd

--with-pdo-mysql=mysqlnd     pdo是一个应用层抽象类,底层和mysql server连接交互需要mysql驱动支持。Pdo的介绍请查看https://blog.csdn.net/weixin_34133829/article/details/86406061

--enable-mbstring            启用mbstring功能

--with-freetype-dir            打开对freetype字体库的支持

--with-jpeg-dir               打开对jpeg图片的支持

--with-png-dir                打开对png图片的支持

--with-zlib-dir                打开对zlib库的支持

--with-libxml-dir              打开libxml2库的支持

--enable-xml               开启xml库

--enable-fpm              打上PHP-fpm 补丁后才有这个参数,CGI方式安装的启动程序

--with-config-file-path=/usr/local/php5   指定自己的php.ini路径

--enable-maintainer-zts      按照开发需求安装PHP

--disable-fileinfo            fileinfo在5.3以后就被默认安装的,小内存VPS上编译PHP会out of memory Disable fileinfo support

(如果需要对PHP的各参数选项有所了解:https://www.cnblogs.com/hubing/p/3735452.html

[root@localhost php-7.3.0]# cp php.ini-development /usr/local/php5/php.ini

 

php有两个环境,一个是生产环境(php.ini-production)用于实际运营,一个是开发环境(php.ini-development)用于学习,这里我们选择生产环境。

 

[root@localhost php-7.3.0]# vim /usr/local/php5/php.ini

default_charset = "UTF-8"        默认使用的字符集

file_uploads = On               运行通过php上传网页文件

upload_max_filesize = 2M        允许上传文件的大小

max_file_uploads = 20           每个HTTP最多允许请求上传的文件数

post_max_size = 8M             每次通过表单post提交的数据限制

short_open_tag = On            允许识别PHP短语法标记,即<?.....?>

extension=php_mysql.dll         添加MySQL支持

Copy php的执行文件到/etc/init.d下

[root@localhost php-7.3.0]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

给php执行文件权限

[root@localhost php-7.3.0]# chmod +x /etc/init.d/php-fpm

添加为系统服务

[root@localhost php-7.3.0]# chkconfig --add /etc/init.d/php-fpm

创建用户apache

[root@localhost php-7.3.0]# useradd -M -s /sbin/nologin apache

[root@localhost php-7.3.0]# cd /usr/local/php5/etc

为php的主配置文件做一个备份

[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf

修改配置文件php-fpm.conf:

pid = /usr/local/php5/var/run/php-fpm.pid

[root@localhost etc]# cd php-fpm.d/

给php对外提供服务的fgi做备份

[root@localhost php-fpm.d]# cp www.conf.default www.conf

修改文件www.conf的以下几项:

user = apache

group = apache

listen = 192.168.200.102:9000(IP地址为安装php的服务器)

[root@localhost ~]# mkdir -p /var/www/html

[root@localhost ~]# vim /var/www/html/index.php

<?php

phpinfo();

?>

开启php-fpm

[root@localhost ~]# /etc/init.d/php-fpm start

测试:

 

 

 

猜你喜欢

转载自www.cnblogs.com/Vampire-MIn/p/12129751.html