三台主机CentOS7 编译安装lamp

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三台主机CentOS7 编译安装lamp相关的知识,希望对你有一定的参考价值。

作业题:三台主机编译安装http、php,二进制源码安装mariadb
环境:
A主机:192.166.0.161,编译安装httpd
B主机:192.166.0.162,编译安装php-fpm
C主机:192.166.0.163,二进制格式安装mariadb

三台主机均关闭了firewalld、selinux,软件存放目录均为/root/tools/

一:安装http
安装扩展组件

yum -y groupinstall "开发工具" "服务器平台开发"
yum install -y pcre-devel openssl-devel gcc 

安装apr

 wget http://archive.apache.org/dist/apr/apr-1.5.2.tar.bz2
  tar -jxvf apr-1.5.2.tar.bz2
  cd apr-1.5.2/
  ./configure --prefix=/usr/local/apr
  make -j 2 && make install

安装apr-util

null
null
null
null
wget http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz
   tar -zxvf apr-util-1.5.4.tar.gz 
   cd apr-util-1.5.4/
   ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
   make -j 2 && make install

安装 httpd-2.4

 wget http://archive.apache.org/dist/httpd/httpd-2.4.23.tar.bz2
  tar -jxvf httpd-2.4.23.tar.bz2 
  cd httpd-2.4.23/
  ./configure --help  // 根据需要选择对应的模块
  ./configure   --prefix=/usr/local/apache   --sysconfdir=/etc/httpd   --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=event  //指定httpd的MPM方式,分别是prefork、event和worker

  
  make -j 2 && make install

设置 开机启动

 cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
    vim /etc/init.d/httpd
      添加:
                #chkconfig: 2345 70 30   //2345是运行级别,70是启动顺序,30是关闭顺序
    chkconfig --add httpd   //添加httpd服务
    chkconfig --list httpd  //查看httpd是否开机启动

添加环境变量:
vim /etc/profile.d/httpd.sh,添加以下内容
export PATH=/usr/local/apache/bin:$PATH

导出头文件
ln -sv /usr/local/apache/include /usr/include/apache

启动httpd服务

  systemctl start httpd
  systemctl status httpd

修改配置文件

vim /etc/httpd/httpd.conf 
    注释 #DocumentRoot "/usr/local/apache/htdocs" 
    并打开启用 include /etc/httpd/conf.d/*.conf
     添加 ServerName www.200.com
    同时定位 AddType;添加下面两行
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    并且定位至DirectoryIndex
    <IfModule dir_module>
    DirectoryIndex index.php index.html #添加index.php(最好添加在最前面)
    </IfModule>
    还要启用proxy_module proxy-fcgi_module等
    LoadModule proxy_module modules/mod_proxy.so #开启
    LoadModule proxy_connect_module modules/mod_proxy_connect.so
    LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so #开启  

    
   mkdir /etc/httpd/conf.d
   vim /etc/httpd/conf.d/vhost.conf
    添加两台虚拟主机
    <VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName www1.200.com
        DocumentRoot ‘/var/www1‘
        ErrorLog  ‘/var/log/httpd/www1_error_log‘
        CustomLog  ‘/var/log/httpd/www1_access_log‘ combined
        ProxyRequests off //关闭正向代理
        ProxyPassMatch ^/(.*\.php)$ fcgi://192.166.0.162:9000/var/www1/$1
        <Directory ‘/var/www1‘>
                Options FollowSymLinks
                AllowOverride none
                Require all granted
        </Directory>
    </VirtualHost>

    
    <VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName www2.200.com
        DocumentRoot ‘/var/www2‘
        ErrorLog  ‘/var/log/httpd/www2_error_log‘
        CustomLog  ‘/var/log/httpd/www1_access_log‘ combined
        ProxyRequests off //关闭正向代理
        ProxyPassMatch ^/(.*\.php)$ fcgi://192.166.0.162:9000/var/www2/$1
        <Directory ‘/var/www2‘>
                Options FollowSymLinks
                AllowOverride none
                Require all granted
        </Directory>
    </VirtualHost>

    
    mkdir -pv /var/www{1,2}
    mkdir -pv /var/log/httpd
添加测试文件:
 vim /var/www1/index.html
      <h1> this is www1.200.com </h1>
    vim /var/www2/index.html
      <h1> this is www2.200.com </h1>
检查语法错误
/usr/local/apache/bin/apachectl -t`




二、安装php

yum -y groupinstall "开发工具" "服务器平台开发"
    yum -y install libxml2-devel libmcrypt-devel gcc
    tar -jxvf php-5.4.16.tar.bz2
    cd php-5.4.16/

    
    ./configure 
    --prefix=/usr/local/php     --enable-fpm     --with-mysql=mysqlnd      --with-openssl     --with-mysqli=mysqlnd      --enable-mbstring     --with-freetype-dir     --with-jpeg-dir     --with-png-dir     --with-zlib     --with-libxml-dir=/usr     --enable-xml      --enable-sockets     --with-mcrypt=/usr/local/mcrypt      --with-config-file-path=/etc     --with-config-file-scan-dir=/etc/php.d     --with-bz2      --enable-maintainer-zts
    `make -j 2 && make install`


注意:
一、安装gcc 由于是独立的主机 需要配置环境 yum -y install gcc
二、 –with-mysql几个选项都要为mysqlnd;因为mysql服务器单独为另一台主机
三、为了支持apache的worker或event这两个MPM,编译时使用了–enable-maintainer-zts选项

配置php
cp php.ini-production /etc/php.ini


配置fpm 
为php-fpm提供Sysv init脚本,并将其添加至服务列表:
cp sapi/fpm/init.d.php-fpm  /etc/rc.d/init.d/php-fpm
chmod +x /etc/rc.d/init.d/php-fpm
chkconfig –add php-fpm
chkconfig php-fpm on
chkconfig –list php-fpm




为php-fpm提供配置文件:
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf  

编辑php-fpm的配置文件:
vim /usr/local/php/etc/php-fpm.conf


修改配置php-fpm的文件vim /usr/local/php/etc/php-fpm 
定位到listen =192.166.0.162:9000
配置fpm的相关选项为你所需要的值:


pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8 

接下来就可以启动php-fpm了:
service php-fpm start
可以使用netstat -tunlp 查看 9000端口


安装Xchache
安装xcache
wget http://xcache.lighttpd.net/pub/Releases/3.1.0/xcache-3.1.0.tar.gz
tar zxvf xcache-3.1.0.tar.gz 
cd xcache-3.1.0/
/usr/local/php/bin/phpize
./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
make && make install
/usr/local/php/bin/php -m       //查看是否启用xcache,此时并未启用
cp ./xcache.ini /etc/php.d/
mkdir /etc/php.d
cp ./xcache.ini /etc/php.d/     
systemctl restart php-fpm
/usr/local/php/bin/php -m       
    [Zend Modules]
    XCache
    XCache Cacher           //表示已经启用xcache




三、二进制格式安装mariadb

groupadd -r mysql
useradd -r -g mysql mysql
tar -axf mariadb-10.1.13-linux-x86_64.tar.gz -C /usr/local/
cd /usr/local/
ln -s mariadb-10.1.13-linux-x86_64/ mysql
cd /usr/local/mysql
chown -R root:mysql ./*
mkdir /mydata   //备注:数据库存放目录。
chown -R mysql.mysql /mysqldata
cp  support-files/mysql.server   /etc/init.d/mysqld
ll /etc/init.d/mysqld 
chkconfig --add mysqld
chkconfig --list mysqld
mv /etc/my.cnf{,.bak}
mkdir /etc/mysql
cp support-files/my-large.cnf /etc/mysql/my.cnf
vim /etc/mysql/my.cnf
    datadir = /mydata
    innodb_file_per_table = on
    skip_name_resolve = on


vi /etc/profile.d/mysql.sh
    export PATH=/usr/local/mysql/bin:$PATH  
source /etc/profile.d/mysql.sh
mysql_secure_installation //初始化安全设置
scripts/mysql_install_db  --user=mysql  --datadir=/mysqldata
mysql -uroot -hlocalhost -p


MariaDB [(none)]> create user ‘test‘@‘192.166.%.%‘ identified by ‘123456‘;
MariaDB [(none)]> create database wordpress_db;     //创建WordPress的数据库,为后面wp-config.php里面填入的数据库
MariaDB [(none)]> grant all privileges on *.* to ‘test‘@‘192.166.%.%‘;
MariaDB [(none)]> grant all privileges on *.* to ‘root‘@‘192.166.%.%‘;  //运行root用户在远程主机上登陆,即能在PhpMyadmin上登陆root账号
vi /etc/ld.so.conf.d/mysql.conf
    /usr/local/mysql/lib
ldconfig
ldconfig -p | grep mysql
ln -sv /usr/local/mysql/include/ /usr/include/mysql



四、安装WordPress和PhpMyAdmin


安装WordPress
        在httpd主机和php主机上均安装一次,静态资源http主机之间响应,动态资源http服务器发送给php处理后响应

    
    http主机上
    unzip wordpress-4.9.1-zh_CN.zip -d /var/www1/
    ls /var/www1/
    cd /var/www1/
    mv wordpress/* ./
    cp wp-config-sample.php wp-config.php
    vim wp-config.php
        // define(‘DB_NAME‘, ‘database_name_here‘);
        define(‘DB_NAME‘, ‘wordpress_db‘);


        /** MySQL数据库用户名 */
        define(‘DB_USER‘, ‘test‘);


        /** MySQL数据库密码 */
        define(‘DB_PASSWORD‘, ‘123456‘);


        /** MySQL主机 */
        define(‘DB_HOST‘, ‘192.166.0.163‘);     

    
    scp wordpress-4.9.1-zh_CN.zip [email protected]:/root/tools/  

    
    在php主机上
    unzip wordpress-4.9.1-zh_CN.zip -d /var/www1/
    ls /var/www1/
    cd /var/www1/
    mv wordpress/* ./
    cp wp-config-sample.php wp-config.php
    vim wp-config.php
        // define(‘DB_NAME‘, ‘database_name_here‘);
        define(‘DB_NAME‘, ‘wordpress_db‘);


        /** MySQL数据库用户名 */
        define(‘DB_USER‘, ‘test‘);


        /** MySQL数据库密码 */
        define(‘DB_PASSWORD‘, ‘123456‘);


        /** MySQL主机 */
        define(‘DB_HOST‘, ‘192.166.0.163‘);

        
    安装PhpMyadmin
        在httpd主机和php主机上均安装一次,静态资源http主机之间响应,动态资源http服务器发送给php处理后响应
    unzip phpMyAdmin-4.4.14.1-all-languages.zip 
    mv phpMyAdmin-4.4.14.1-all-languages/* /var/www2/
    cd /var/www2/
    cp config.sample.inc.php config.inc.php
    openssl rand -base64 15 //产生15位随机数
    vim config.inc.php  
        $cfg[‘blowfish_secret‘] = ‘cG//9oBhIt/t2rfm6AVW‘; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
        /* Authentication type */
        $cfg[‘Servers‘][$i][‘auth_type‘] = ‘cookie‘;
        /* Server parameters */
        $cfg[‘Servers‘][$i][‘host‘] = ‘192.166.0.163‘;
        $cfg[‘Servers‘][$i][‘connect_type‘] = ‘tcp‘;
        $cfg[‘Servers‘][$i][‘compress‘] = false;
        $cfg[‘Servers‘][$i][‘AllowNoPassword‘] = false;

    
    两台主机安装好后,访问测试,root用户和test用户均能登陆



    
    mariadb二进制包安装详细参考:http://blog.51cto.com/wuqingcong/2059013

以上是关于三台主机CentOS7 编译安装lamp的主要内容,如果未能解决你的问题,请参考以下文章

编译安装基于FASTCGI模式LAMP架构多虚拟主机WEB应用及loganalyzer图形化日志

LAMP的分布式实现——安装WordPressphpMyAdmin

LAMP 建立 Wordpress 站点 Linux Apache MariaDB PHP

CentOS 7 yum安装lamp,三者位于不同服务器,并为之安装WordPress及phpmyadmin

CentOS 7 yum安装lamp,三者位于不同服务器,并为之安装WordPress及phpmyadmin

实战案例:编译安装基于 FastCGI 模式LAMP架构多虚拟主机WEB应用(WordPress 和Discuz)