1.编译安装LNMP,并安装wordpress
1.准备nginx安装环境
[root@lnmp ~]# systemctl stop firewalld
[root@lnmp ~]# setenforce 0
[root@lnmp ~]# yum -y install gcc pcre-devel openssl-devel zlib-devel
[root@lnmp ~]# useradd -r -s /sbin/nologin nginx
[root@lnmp ~]# mkdir /apps/
2.下载nginx包并解压
[root@lnmp ~]# tar -zxvf nginx-1.20.1.tar.gz -C /apps/
3.编译安装nginx
[root@lnmp ~]# cd /apps/nginx-1.20.1/
[root@lnmp nginx-1.20.1]# ll
total 792
drwxr-xr-x. 6 1001 1001 4096 Aug 16 09:42 auto
-rw-r--r--. 1 1001 1001 311503 May 25 20:35 CHANGES
-rw-r--r--. 1 1001 1001 475396 May 25 20:35 CHANGES.ru
drwxr-xr-x. 2 1001 1001 168 Aug 16 09:42 conf
-rwxr-xr-x. 1 1001 1001 2590 May 25 20:35 configure
drwxr-xr-x. 4 1001 1001 72 Aug 16 09:42 contrib
drwxr-xr-x. 2 1001 1001 40 Aug 16 09:42 html
-rw-r--r--. 1 1001 1001 1397 May 25 20:35 LICENSE
drwxr-xr-x. 2 1001 1001 21 Aug 16 09:42 man
-rw-r--r--. 1 1001 1001 49 May 25 20:35 README
drwxr-xr-x. 9 1001 1001 91 Aug 16 09:42 src
[root@lnmp nginx-1.20.1]# ./configure --prefix=/apps/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_ssl_module \
> --with-http_v2_module \
> --with-http_realip_module \
> --with-http_stub_status_module \
> --with-http_gzip_static_module \
> --with-pcre \
> --with-stream \
> --with-stream_ssl_module \
> --with-stream_realip_module
[root@lnmp nginx-1.20.1]# make && make install
4.配置nginx.conf
[root@lnmp conf]# cd /apps/nginx/conf/
[root@lnmp conf]# cp nginx.conf nginx.conf.bak
[root@lnmp conf]# vim nginx.conf
user nginx nginx
[root@lnmp conf]# vim /etc/profile ##最后添加一下两行
PATH=$PATH:/apps/nginx/sbin/
export PATH
[root@lnmp conf]# source /etc/profile
[root@lnmp conf]# nginx -t
nginx: the configuration file /apps/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /apps/nginx/conf/nginx.conf test is successful
5.启动nginx
[root@lnmp conf]# nginx
[root@lnmp conf]# ps -aux |grep nginx
root 33072 0.0 0.0 20572 612 ? Ss 10:21 0:00 nginx: master process nginx
nobody 33073 0.0 0.0 21016 1308 ? S 10:21 0:00 nginx: worker process
root 33082 0.0 0.0 112812 976 pts/0 S+ 10:21 0:00 grep --color=auto nginx
6.安装mariadb依赖包
[root@lnmp ~]# yum install bison bison-devel zlib-devel libcurl-devel libarch ive-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel -y
7.准备mysql用户和数据存放目录
[root@lnmp ~]# useradd -r -s /sbin/nologin -d /data/mysql mysql
[root@lnmp ~]# ll /data/
total 0
[root@lnmp ~]# mkdir /data/mysql
[root@lnmp ~]# chown mysql.mysql /data/mysql/
[root@lnmp ~]# mkdir /apps/mysql
8.编译安装mariadb
[root@lnmp ~]# tar xvf mariadb-10.2.23.tar.gz
[root@lnmp ~]# cd
[root@lnmp mariadb-10.2.23]# cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_DATADIR=/data/mysql/ \
-DSYSCONFDIR=/etc/mysql \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
[root@lnmp mariadb-10.2.23]# make && make install
9.设置环境变量
[root@lnmp ~]# vim /etc/profile
PATH=$PATH:/apps/mysql/bin
export PATH
[root@lnmp ~]# source /etc/profile
10.准备配置文件和生成数据库初始化文件
[root@lnmp ~]# cd /apps/mysql/
[root@lnmp mysql]# ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql
[root@lnmp mysql]# cd /apps/
[root@lnmp apps]# cp /apps/mysql/support-files/my-huge.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y
11.准备启动脚本并启动验证
[root@lnmp apps]# cp /apps/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@lnmp apps]# service mysqld start
Reloading systemd: [ OK ]
Starting mysqld (via systemctl): [ OK ]
[root@lnmp apps]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.2.23-MariaDB-log Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> exit
Bye
12.安装php的依赖包
[root@lnmp ~]# yum install -y libxml2-devel openssl-devel libcurl-devel libjpeg-turbo-devel libpng-devel freetype-devel gmp-devel bzip2-devel libmcrypt-devel libzip-devel sqlite-devel libxslt-devel
13.解压php源码包,并进行编译安装
[root@lnmp ~]# tar xvf php-7.4.7.tar.xz
[root@lnmp php-7.4.7]# ./configure --prefix=/apps/php \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-pear \
--with-curl \
--with-png-dir \
--with-freetype-dir \
--with-iconv \
--with-mhash \
--with-zlib \
--with-xmlrpc \
--with-xsl \
--with-openssl \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--disable-debug \
--enable-mysqlnd \
--enable-zip \
--enable-sockets \
--enable-soap \
--enable-inline-optimization \
--enable-xml \
--enable-ftp \
--enable-exif \
--enable-wddx \
--enable-bcmath \
--enable-calendar \
--enable-shmop \
--enable-dba \
--enable-sysvsem \
--enable-sysvshm \
--enable-sysvmsg
[root@lnmp php-7.4.7]# make -j 4 && make install
14.准备php的配置文件
[root@lnmp apps]# cd /apps/php/etc/php-fpm.d/
[root@lnmp php-fpm.d]# mv www.conf.default www.conf
[root@lnmp php-fpm.d]# cp /root/php-7.4.7/php.ini-production /apps/php/etc/php.ini
[root@lnmp php-fpm.d]# cd ..
[root@lnmp etc]# cp php
php-fpm.conf.default php-fpm.d/ php.ini
[root@lnmp etc]# cp php-fpm.conf.default php-fpm.conf
15.创建php的运行账号并启动php-fpm
[root@lnmp etc]# useradd -r -s /sbin/nologin www
[root@lnmp etc]# /apps/php/sbin/php-fpm -t
[16-Aug-2021 16:44:46] NOTICE: configuration file /apps/php/etc/php-fpm.conf test is successful
[root@lnmp etc]# /apps/php/sbin/php-fpm -c /apps/php/etc/php.ini
[root@lnmp etc]# ps -ef |grep php-fpm
root 83470 1 0 16:45 ? 00:00:00 php-fpm: master process (/apps/php/etc/php-fpm.conf)
www 83471 83470 0 16:45 ? 00:00:00 php-fpm: pool www
www 83472 83470 0 16:45 ? 00:00:00 php-fpm: pool www
root 83483 25945 0 16:45 pts/0 00:00:00 grep --color=auto php-fpm
[root@lnmp etc]# ss -tanlp |grep php-fpm
LISTEN 0 128 127.0.0.1:9000 *:* users:(("php-fpm",pid=83472,fd=5),("php-fpm",pid=83471,fd=5),("php-fpm",pid=83470,fd=7))
16.配置nginx支持php-fpm
[root@lnmp nginx]# vim /apps/nginx/conf/nginx.conf
location / {
root html;
index index.php index.html index.htm;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
[root@lnmp nginx]# nginx -t
nginx: the configuration file /apps/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /apps/nginx/conf/nginx.conf test is successful
17.准备php的测试页面并测试
[root@lnmp nginx]# vim /apps/nginx/html/index.php
cat /apps/nginx/html/index.php
<?php
phpinfo();
?>
18.部署个人博客软件wordpress
[root@lnmp ~]# tar xvf wordpress-5.7.2-zh_CN.tar.gz
[root@lnmp ~]# cp -r wordpress /apps/nginx/html/
[root@lnmp ~]# cd /apps/nginx/html/wordpress/
[root@lnmp wordpress]# cp wp-config-sample.php wp-config.php
[root@lnmp wordpress]# vim wp-config.php
[root@lnmp wordpress]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 10.2.23-MariaDB-log Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> grant all privileges on wordpress.* to 'wpuser'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> create database wordpress;
Query OK, 1 row affected (0.01 sec)
MariaDB [(none)]> exit
Bye
[root@lnmp wordpress]# mysql -uwpuser -p123456
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.2.23-MariaDB-log Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> status
--------------
mysql Ver 15.1 Distrib 10.2.23-MariaDB, for Linux (x86_64) using readline 5.1
Connection id: 12
Current database:
Current user: wpuser@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server: MariaDB
Server version: 10.2.23-MariaDB-log Source distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /data/mysql/mysql.sock
Uptime: 1 hour 12 min 19 sec
Threads: 8 Questions: 10 Slow queries: 0 Opens: 17 Flush tables: 1 Open tables: 11 Queries per second avg: 0.002
--------------
MariaDB [(none)]>
2.配置虚拟主机,www.x.com域名实现首页访问,admin.x.com域名实现wordpress的后台访问。
1.部署LNMP和wordpress参照作业1
2.配置nginx多虚拟主机
[root@lnmp ~]# cd /apps/nginx/conf/
[root@lnmp conf]# vim nginx.conf
server {
listen 80;
server_name www.x.com;
location / {
root /apps/nginx/html;
index index.php;
}
location ~ \.php$ {
root /apps/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
server {
listen 80;
server_name admin.x.com;
location / {
root /apps/nginx/html/wordpress;
index wp-login.php index.php;
}
location ~ \.php$ {
root /apps/nginx/html/wordpress;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
[root@lnmp conf]# nginx -t
nginx: the configuration file /apps/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /apps/nginx/conf/nginx.conf test is successful
[root@lnmp conf]# nginx -s reload