【就业班作业】【第十七周】部署wordpress论坛,并实现正常访问登录论坛。
一、概述
fastcgi的方式是,web服务器收到一个请求时,不会重新fork一个进程(因为这个进程在web服务器启动时就开启了,而且不会退出),web服务器直接把内容传递给这个进程(进程间通信,但fastcgi使用了别的方式,tcp方式通信),这个进程收到请求后进行处理,把结果返回给web服务器,最后自己接着等待下一个请求的到来,而不是退出.
Client -- http --> httpd --> libphp5.so () -- mysql --> MySQL server
Client -- http --> httpd -->fastcgi-- mysql --> MySQL server
二、环境
两台主机:
一台部署httpd和php程序;另一台部署maridb数据库;
三、部署过程:
1、部署和数据数据库
二进制安装 #配置用户 useradd -r -s /sbin/nologin -d /data/mysql mysql #配置所需的文件夹 mkdir /data/app/mysql mkdir /data/app/mysqldata chown -R mysql.mysql /data/app/mysql chown -R mysql.mysql /data/app/mysqldata #准备安装源文件 [root@centos7-mysql-server /]# cd /data/src/ wget -c https://mirrors.ustc.edu.cn/mariadb//mariadb-10.5.8/bintar-linux-systemd-x86_64/mariadb-10.5.8-linux-systemd-x86_64.tar.gz [root@centos7-mysql-server src]# ll total 403828 -rw-r--r-- 1 root root 71997847 Nov 18 18:29 mariadb-10.2.25.tar.gz -rw-r--r-- 1 root root 341518238 Nov 18 10:24 mariadb-10.5.8-linux-systemd-x86_64.tar.gz #解压文件 tar -xf mariadb-10.5.8-linux-systemd-x86_64.tar.gz -C /data/app/mysql ln -sv /data/local/mariadb-10.5.8-linux-systemd-x86_64/ /usr/local/mysql chown -R mysql.mysql /usr/local/mysql #配置环境变量 echo "PATH=/usr/local/mysql/bin:$PATH" > /etc/profile.d/mysql.sh #安装初始化数据库 ./mariadb-install-db --datadir=/data/app/mysqldata/ --user=mysql #设置数据配置文件 cat /etc/my.cnf [mysqld] datadir=/data/app/mysqldata socket=/data/app/mysql/mysql.sock skip_name_resolve = on log-bin=/data/app/mysqldata/mysql-bin symbolic-links=0 [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid [client] socket = /data/app/mysqldata/mysql.sock !includedir /etc/my.cnf.d #设置服务启动配置 cp /usr/local/mysql/support-files/systemd/mariadb.service /usr/lib/systemd/system/mariadb.service systemctl daemon-reload systemctl enable mariadb systemctl start mariadb #初始安全配置 mysql_secure_installation #授权 mysql create database wordpressdb; create database discuzdb; grant all on wordpressdb.* to 'wordpressuser'@'192.168.0.%' identified by 'sankeya'; grant all on discuzdb.* to 'discuzuser'@'192.168.0.%' identified by 'sankeya'; show grants for 'wordpressuser'@'192.168.0.%'\G show grants for 'discuzuser'@'192.168.0.%'\G #revoke delete on discuzdb.* from 'discuzuser'@'192.168.0.%'
2、部署和配置HTTPD
编译安装http2.4 安装httpd-2.4,依赖于apr-1.4+, apr-util-1.4+ #报错时考虑升级内核文件(3.10.0-1160.11.1.el7.x86_64) 报错内容:Function not implemented: AH00141: Could not initialize random number generator。 uname -a yum -y update #下载依赖的安装环境以及源码包 yum -y install gcc make pcre-devel openssl-devel expat-devel bzip2 lynx wget https://downloads.apache.org//apr/apr-1.7.0.tar.bz2 wget https://downloads.apache.org//apr/apr-util-1.6.1.tar.bz2 wget http://archive.apache.org/dist/httpd/httpd-2.4.38.tar.bz2 #解压源码包至指定目录 tar -xvf apr-1.7.0.tar.bz2 ; tar -xvf apr-iconv-1.2.2.tar.bz2 ; tar -xvf apr-util-1.6.1.tar.bz2 ;tar -xvf httpd-2.4.38.tar.bz2 mv apr-1.7.0 httpd-2.4.38/srclib/apr mv apr-util-1.6.1 httpd-2.4.38/srclib/apr-util #配置参数及开始编译 cd httpd-2.4.38/ ./configure \ --prefix=/data/app/httpd24 \ --enable-so \ --enable-ssl \ --enable-cgi \ --enable-rewrite \ --with-zlib \ --with-pcre \ --with-included-apr \ --enable-modules=most \ --enable-mpms-shared=all \ --with-mpm=prefork make -j 2 && make install && echo $? 移除历史编译生成的文件 make clean //保留配置文件 make mrproper //清理所有生成的文件,包括config make distclean //同mrproper #新建服务系统账号 useradd -s /sbin/nologin -r apache -d /data/app/httpd24 #配置服务运行账号 vi /data/app/httpd24/conf/httpd.conf user apache group apache #配置支持php类型 vi /data/app/httpd24/conf/httpd.conf AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps DirectoryIndex index.php index.html #配置服务二进制环境变量 echo "PATH=/data/app/httpd24/bin:$PATH" > /etc/profile.d/httpd24.sh #配置关联帮助文档 vi /etc/man_db.conf MANDATORY_MANPATH /data/app/httpd24/man #设置开机启动 vi /etc/rc.d/rc.local /app/httpd24/bin/apachectl start chmod +x /etc/rc.d/rc.local 查看静态编译的模块:httpd -l 查看静态编译及动态装载的模块:httpd -M
3、部署和配置PHP
#官网下载 www.php.net cd /data/src/ wget -c https://www.php.net/distributions/php-8.0.1.tar.xz #解压文件 cd /data/src/ tar xf php-8.0.1.tar.xz ./ #编辑perl安装相关包,依赖EPEL源 (缺少包使用yum search PacketsName查询安装) yum -y install gcc libxml2-devel bzip2-devel libmcrypt-devel oniguruma* libsqlite3x* perl vi /data/app/httpd24/bin/apxs 修改:#!/replace...... 为:#!/usr/bin/perl #配置编译参数及配置文件 cd /data/src/php-8.0.1 ./configure \ --prefix=/data/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 \ --with-apxs2=/data/app/httpd24/bin/apxs \ --with-config-file-path=/etc \ --with-config-file-scan-dir=/etc/php.d \ --enable-maintainer-zts \ --disable-fileinfo make -j 2 && make install && echo $? #为php提供配置文件 cp /data/src/php-8.0.1/php.ini-production /etc/php.ini
4、部署wordpress
#下载解压wordpress wget -c https://cn.wordpress.org/latest-zh_CN.zip cd /data/app/src unzip wordpress-5.2.3-zh_CN.zip mv wordpress /data/app/httpd24/htdocs/ #修改wordpress目录权限 chown -R apache.apache /data/app/httpd24/wordpress/ 或 setfacl –R –m u:apache:rwx /data/app/httpd24/wordpress/ #为wordpress提供安装配置模块 cp /data/app/httpd24/htdocs/wordpress/wp-config-sample.php /data/app/httpd24/htdocs/wordpress/wp-config.php #打开服务器192.168.0.106/wordpress进行页面安装
4、启动和验证服务
(结束)