一、安装部署
1.服务对应服务器
服务器A:centos7 IP:172.17.16.173
httpd服务
服务器B:centos7 IP:172.17.17.173
php服务
服务器C:centos6 IP:172.17.16.169
masql服务
centos只能安装mariadb5.5版本
2.安装源
链接: https://pan.baidu.com/s/1eSMrknK 密码: 5ccz
二、服务器A安装httpd服务(httpd2.4)
1.安装开发包
yum groupinstall Development\ Tools
yum -y install openssl-devel pcre-devel expat-devel
2.编译安装
tar xf apr-1.6.2.tar.gz
tar xf apr-util-1.6.0.tar.gz
tar xvf httpd-2.4.28.tar.gz
mv apr-1.6.2 httpd-2.4.28/srclib/apr
mv apr-util-1.6.0 httpd-2.4.28/srclib/apr-util
cd httpd-2.4.28/
./configure --prefix=/app/httpd-2.4 --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
make && make install
3.安装后的配置及服务开启
echo "PATH=/app/httpd-2.4/bin:$PATH" >> /etc/profile.d/newvar.sh
apachectl
二、服务器C mysql数据库服务(maria5.5.7)
1.卸载已经有的maria程序
#查看是否已安装maria程序或mysql程序
rpm -qa mysql*
rpm -qa maria*
#如果提示有
rpm -e `rpm -qa mysql*`
或 rpm -e `rpm -qa maria*`
2.创建系统账户mysql
#创建系统账户
useradd -r -m -d /var/lib/mysql -s /sbin/nologin mysql
#解释
-r:指定创建系统用户
默认系统用户没有家目录
-m:为新用户创建家目录
-d:指定家目录路径
-s:指定新用户的shell
mysql:用户名
家目录用来放mysql管理的数据文件
且家目录的权限的直接创建好属于 mysql的;不用再改权限
3.解压二进制文件到二进制程序的目标路径
#此文件是已经编译好的二进制文件,解压时尽量直接解压到目标二进制文件的路径下
tar -xvf mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local/
mv /usr/local/mariadb-5.5.57-linux-x86_64 /usr/local/mysql
cd /usr/local/mysql
4.配置文件创建
#配置文件都在解压后的support-files目录下;.cnf文件
#有很多中,可以根据不同使用场景选择
my-innodb-heavy-4G.cnf、my-small.cnf、my-large.cnf
my-huge.cnf my-medium.cnf
#我选择my-huge.cnf 重量级的
mkdir /etc/mysql/
cp /usr/local/mysql/support-files/my-huge.cnf /etc/mysql/my.cnf
#修改配置文件
vim /etc/mysql/my.cnf
在[mysqld]下方添加以下3行
#数据文件位置(必须)
datadir = /var/log/mariadb
#实现一张表一个文件,可以便于管理(非必须)
innodb_file_per_table = on
#实现 关闭名字的反向解析,可以优化速度(非必须)
skip_name_resolve = on
或者
sed -r -i.bak "/^\[mysqld\]/s#.*#[mysqld] \n datadir = /var/lib/mysql \n innodb_file_per_table = on \n skip_name_resolve = on#" /etc/mysql/my.cnf
5.数据库文件创建
可以用脚本实现
#注意
#在执行脚本时一定要在/usr/local/mysql/maria-10/路径下执行
scripts/mysql_install_db 命令,不能使用./scripts/mysql_install_db
#执行
cd /usr/local/mysql/
scripts/mysql_install_db --user=mysql --datadir=/var/lib/mysql
6.日志文件创建
touch /var/log/mysqld.log
chown mysql:mysql /var/log/mysqld.log
7.服务脚本创建
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
8.修改PATH路径
echo "PATH=/usr/local/mysql/bin/:$PATH" >> /etc/profile.d/newvar.sh
9.启动mysql服务
因为mysqld的服务脚本是复制到了 /etc/init.d/目录下
所以不能使用centos7.3的systemctl命令启动服务
要使用service命令(centos7.3可以兼容centos的6命令)
service mysqld start
10.安全脚本运行
mysql_secure_installation
四、服务器C:php7.1服务
1.安装开发包
yum -y install bzip2-devel libxml2-devel libmcrypt-devel
2.解压、编译、运行
tar xf php-7.1.10.tar.xz
./configure --prefix=/app/php \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-openssl \
--with-pdo-mysql=mysqlnd \
--enable-mbstring \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--enable-sockets \
--enable-fpm \
--with-mcrypt \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--enable-maintainer-zts \
--disable-fileinfo
make && make install
4.服务脚本
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod u+x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
4.配置文件
cp php-7.1.10/php.ini-production /etc/php/php.ini
cp php-7.1.10/sapi/fpm/php-fpm.conf /app/php/etc/php-fpm.conf
五、连接httpd服务与php服务和mysql服务
1.配置httpd服务(服务器A)
vim /etc/httpd24/httpd.conf
添加以下几行
#加载模块
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
#添加支持的文件类型
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.php
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ \
fcgi://172.17.17.173:9000/app/php/var/run/$1
注意:
fcgi指向的地址一定要是php服务器中有.php 程序的地址
2.配置php服务接受httpd的访问(服务器B)
cd /app/php/etc/php-fpm.d
cp www.conf.default www.conf
vim www.conf 修改下面两行
listen = 9000
listen.allowed_clients = 172.17.16.173
3.mysql服务
创建属于php程序的数据库和数据库管理用户
在phpMyadmin页面中创建
或使用mysql命令创建
create database wordpress
GRANT all privileges on wordpress.* TO 'wordpress_user'@'%'IDENTIFIED BY 'passwd‘;
六、LAMP测试
1.测试脚本
vim /app/php/var/run/index.php
vim /app/php/var/run/index.php
<?php
$mysqli=new mysqli("172.17.16.169","php","centos");
if(mysqli_connect_errno()){
echo "连接数据库失败!";
$mysqli=null;
exit;
}
echo "连接数据库成功!只能连接mysql";
$mysqli->close();
?>