lamp分离式部署
服务器 | IP |
---|
apache | 192.168.30.202 |
mysql | 192.168.30.178 |
php | 192.168.30.214 |
#准备工作#
apache服务要用网络源,mysql和php可以使用本地源
安装yum源
rpm -ivh http://mirror.centos.org/centos/7/os/x86_64/Packages/wget-1.14-18.el7_6.1.x86_64.rpm
[root@zyy ~]#cd /etc/yum.repos.d/
[root@zyy180 yum.repos.d]# curl -o CentOS7-Base-163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
[root@zyy180 yum.repos.d]# sed -i 's/\$releasever/7/g' /etc/yum.repos.d/CentOS7-Base-163.repo
[root@zyy180 yum.repos.d]# sed -i 's/^enabled=.*/enabled=1/g' /etc/yum.repos.d/CentOS7-Base-163.repo
安装所需软件
yum -y install epel-release vim
安装所需工具包
[root@zyy ~]# yum groups mark install 'Development Tools'
A.配置http服务器
1.创建用户
[root@zyy ~]# useradd -r -M -s /sbin/nologin apache
2.下载httpd服务所需包
[root@zyy ~]# yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++
[root@zyy ~]# wget https://mirror.bit.edu.cn/apache/apr/apr-1.7.0.tar.bz2
[root@zyy ~]# wget https://mirror.bit.edu.cn/apache/apr/apr-util-1.6.1.tar.bz2
[root@zyy ~]# wget https://mirror.bit.edu.cn/apache/httpd/httpd-2.4.43.tar.bz2
[root@zyy ~]# yum -y install bzip2
3.解压
[root@zyy ~]# tar xf apr-1.7.0.tar.bz2
[root@zyy ~]# tar xf apr-util-1.6.1.tar.bz2
[root@zyy ~]# tar xf httpd-2.4.43.tar.bz2
4.编译apr工具并安装
[root@zyy ~]# cd apr-1.7.0
[root@zyy apr-1.7.0]# vim configure
$RM "$cfgfile" 注释或者删掉
[root@zyy apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@zyy apr-1.7.0]# make && make install
[root@zyy apr-1.7.0]#cd /usr/src/apr-util-1.6.1
[root@zyy apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@zyy apr-util-1.6.1]# make && make install
5.编译httpd并安装
[root@zyy apr-util-1.6.1]# cd /root/httpd-2.4.43
./configure --prefix=/usr/local/apache \
sysconfdir=/etc/httpd24 \
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=prefork
[root@zyy httpd-2.4.43]# make && make install
6.做环境变量
[root@zyy apache]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
[root@zyy apache]# source /etc/profile.d/httpd.sh
头文件
[root@zyy apache]# ln -s /usr/local/apache/include/ /usr/include/httpd
帮助文件
[root@zyy apache]# vim /etc/man_db.conf
MANDATORY_MANPATH /usr/local/apache/man
[root@zyy apache]# vim /etc/httpd24/httpd.conf
ServerName www.example.com:80
7.启动服务
[root@zyy apache]# apachectl start
[root@zyy180 apache]# ss -anlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 :::80 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
B.配置mysql服务器
安装依赖包
[root@zyy ~]# yum -y install ncurses-devel openssl-devel openssl cmake mariadb-devel
1.创建用户
[root@zyy ~]# useradd -r -M -s /sbin/no -u 306 mysql
2.解压
将二进制数据库拖进来
[root@zyy ~]# tar xf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
3.做链接和改属主
[root@zyy ~]# cd /usr/local/
[root@zyy local]# ln -s mysql-5.7.30-linux-glibc2.12-x86_64/ mysql
[root@zyy local]# chown -R mysql.mysql mysql*
4.做环境变量
[root@zyy local]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@zyy local]# source /etc/profile.d/mysql.sh
[root@zyy local]# cd /usr/local/mysql
[root@zyy mysql]# ln -s include /usr/include/mysql
[root@zyy mysql]# vim /etc/man_db.conf
MANDATORY_MANPATH /usr/local/mysql/man
[root@zyy mysql]# vim /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib
[root@zyy mysql]# ldconfig
5.创建存放目录
[root@zyy mysql]# mkdir /opt/data
[root@zyy mysql]# chown -R mysql.mysql /opt/data/
6.初始化
[root@zyy mysql]# mysqld --initialize-insecure --user=mysql --datadir=/opt/data
7.编译并安装
[root@zyy mysql]# cat > /etc/my.cnf <<EOF
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
EOF
8.配置服务启动脚本
[root@zyy mysql]# cd /usr/local/mysql/support-files
[root@zyy support-files]# cp mysql.server /etc/init.d/mysqld
[root@zyy support-files]# vim /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/opt/data
[root@zyy180 support-files]# service mysqld start
[root@zyy ~]# chkconfig --add mysqld
9.修改密码
[root@zyy support-files]# mysql -uroot
mysql> set password=password('1');
[root@192 lamp]# ss -anlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 80 :::3306 :::*
C.配置php服务器
下载php源
[root@zyy ~]# wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
解压
[root@zyy ~]# tar xf php-7.4.7.tar.xz
启动php包
[root@zyy ~]# rpm -Uvh remi-release-7.rpm
下载缓存
[root@zyy ~]# yum makecache --enablerepo=remi-php74
下载所需依赖包
[root@zyy ~]# yum -y install libxml2 libxml2-devel \
openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libicu-devel libjpeg \
libjpeg-devel libpng libpng-devel openldap-devel pcre-devel \
freetype freetype-devel gmp gmp-devel libmcrypt \
libmcrypt-devel readline readline-devel libxslt libxslt-devel \
mhash mhash-devel php74-php-mysqlnd
1.进到php包
[root@zyy php-7.4.7]# cd php-7.4.7
2.编译并安装
[root@zyy ~]# yum -y install libsqlite3x-devel.x86_64 oniguruma-devel.x86_64
./configure --prefix=/usr/local/php7 \
--with-config-file-path=/etc \
--enable-fpm \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-soap \
--with-openssl \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--enable-exif \
--enable-ftp \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--with-gettext \
--enable-json \
--enable-mbstring \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-readline \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-pcntl \
--enable-posix
使用多核心编译
[root@zyy php-7.4.7]# make -j $(cat /proc/cpuinfo |grep processor|wc -l)
[root@zyy php-7.4.7]# make install
3.环境变量
[root@zyy php-7.4.7]#echo 'export PATH=/usr/local/php7/bin:$PATH' > /etc/profile.d/php7.sh
[[root@zyy php-7.4.7]#source /etc/profile.d/php7.sh
4.配置服务启动脚本
在php解压文件里
[root@zyy php-7.4.7]# cp php.ini-production /etc/php.ini
[root@zyy php-7.4.7]# cd sapi/fpm/
[root@zyy fpm]# cp init.d.php-fpm /etc/init.d/php-fpm
[root@zyy fpm]# chmod +x /etc/init.d/php-fpm
5.配置php-fpm
[root@zyy etc]# cd /usr/local/php7/etc
[root@zyy etc]# cp php-fpm.conf.default php-fpm.conf
[root@zyy etc]# vim php-fpm.conf
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
[root@zyy etc]# cd php-fpm.d/
[root@zyy php-fpm.d]# cp www.conf.default www.conf
[root@zyy php-fpm.d]# vim www.conf
listen = 0.0.0.0:9000
6.启动服务
[root@zyy ~]# service php-fpm start
[root@zyy ~]# chkconfig --add php-fpm
[root@zyy ~]# ss -anlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 128 *:9000 *:*
LISTEN 0 128 :::22 :::*
配置虚拟主机
A.在apache服务器上
1.启动模块
vim /etc/httpd24/httpd.conf
取消注释
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
2.配置虚拟主机
vim /etc/httpd24/httpd.conf
<VirtualHost *:80>
DocumentRoot "/usr/local/apache/htdocs"
ServerName zyy.com
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.30.214:9000/xunxian/$1
<Directory "/usr/local/apache/htdocs/zyy">
Options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
加上去
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
改为index.php
DirectoryIndex index.php index.html
3.更改属主
[root@zyy htdocs]# cd ..
[root@zyy apache]# chown -R apache.apache htdocs/
B.在数据库服务器
grant all on *.* to root@192.168.30.214 identified by '1';
C.在php服务器
将项目下载下来
1.还原数据库
[root@zyy xunxian]# mysql -uroot -p1 -h192.168.30.178 -e 'create database game;'
[root@zyy xunxian]# mysql -uroot -p1 -h192.168.30.178 game < game.sql
2.修改数据库信息
vim pdo.php
$sqlname='root';
$sqlpass='1';
$dbhost='192.168.30.178';
.....
3.将要使用的静态网页传给apache服务器静态目录下
[root@zyy xunxian]# scp -r /xunxian