zoukankan      html  css  js  c++  java
  • 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);
        ?>
    

    image

    over……

  • 相关阅读:
    CSS
    网络通信
    模块与包
    python异常处理
    python基础考试一整理
    面向对象最后进阶
    面向对象-反射和__getattr__系列
    property、staticmethod和classmethod
    多态和封装
    scala构造器实战
  • 原文地址:https://www.cnblogs.com/jojoword/p/10732231.html
Copyright © 2011-2022 走看看