一、安裝部署
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();
?>