• Linux-lnmp分离部署


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

    服务

    地址

    软件包

    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

    测试:

     

     

     

  • 相关阅读:
    2020杭电HDU-6756多校第一场Finding a MEX(图的分块)
    2020杭电HDU-6768多校第二场Lead of Wisdom(暴力DFS)
    牛客-Matrix(二维Hash-矩阵匹配)
    牛客-白兔的字符串(Hash+二分)
    2020杭电HDU-6768多校第二场The Oculus(假斐波那契数列真Hash)
    2020杭电HDU-6767多校第二场New Equipments(三分+费用流)
    使用 xmllint 验证 odoo xml文件
    odoo 的时差 坑
    请问如何突破”所选文件超出了文件的最大值设定:25.00 Mb“限制
    仓库打包作业超出分拣单数量时,发警报邮件
  • 原文地址:https://www.cnblogs.com/Vampire-MIn/p/12129751.html
Copyright © 2020-2023  润新知