1、编译安装LNMP,并安装wordpress
node-1:192.168.10.3:编译安装nginx,php-fpm
node-2:192.168.10.4:编译安装mariadb-10.0.38
node-2编译安装mariadb-10.0.38:
安装相关依赖包
yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel
准备用户和数据目录
[root@node-2 ~]# useradd -r -s /sbin/nologin -d /data/mysql/ mysql
[root@node-2 ~]# ls /data/mysql/
[root@node-2 ~]# chown mysql.mysql /data/mysql
[root@node-2 ~]# ll -d /data/mysql
drwxr-xr-x 2 mysql mysql 6 May 7 08:43 /data/mysql
解压安装包:
[root@node-2 ~]# tar xvf mariadb-10.0.38.tar.gz
cmake 编译安装
cd mariadb-10.2.18/
cmake . \
-DCMAKE_INSTALL_PREFIX=/app/mysql \
-DMYSQL_DATADIR=/data/mysql/ \
-DSYSCONFDIR=/etc/ \
-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
make -j 4&& make install
提示:如果出错,执行rm -f CMakeCache.txt
准备环境变量
echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh
生成数据库文件
cd /app/mysql/
scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql
准备配置文件
cp /app/mysql/support-files/my-huge.cnf /etc/my.cnf
准备启动脚本
cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld
启动服务
chkconfig --add mysqld ;service mysqld start
创建数据库并授权
[root@node-2 ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 10.0.38-MariaDB 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)]> create database wordpress;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on wordpress.* to "wordpress"@"192.168.10.%" idenfied by "123456";
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'idenfied by "123456"' at line 1
MariaDB [(none)]> grant all privileges on wordpress.* to "wordpress"@"192.168.10.%" identified by "123456";
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| wordpress |
+--------------------+
5 rows in set (0.05 sec)
编译安装php7.2.15:
yum install libxml2-devel bzip2-devel libmcrypt-devel (epel)
tar xvf php-7.3.5.tar.bz2
cd php-7.3.5/
./configure --prefix=/app/php \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--enable-mbstring \
--enable-xml \
--enable-sockets \
--enable-fpm \
--enable-maintainer-zts \
--disable-fileinfo
make && make install
准备PHP配置文件:
cp php.ini-production /etc/php.ini
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
cd /app/php/etc
cp php-fpm.conf.default php-fpm.conf
cp php-fpm.d/www.conf.default php-fpm.d/www.conf
service php-fpm start
修改PHP配置文件:
[root@node-1 php-fpm.d]# grep -v ";" www.conf |grep -v "^$"
[www]
user = www
group = www
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 50
pm.start_servers = 30
pm.min_spare_servers = 30
pm.max_spare_servers = 35
pm.status_path = /pm_status
ping.path = /ping
ping.response = pong
access.log = log/$pool.access.log
slowlog = log/$pool.log.slow
[root@node-1 php-fpm.d]# mkdir /app/php/log 创建日志文件
[root@node-1 php-fpm.d]# /app/php/sbin/php-fpm -t 验证php-fpm
[07-May-2020 12:40:33] NOTICE: configuration file /app/php/etc/php-fpm.conf test is successful
编译安装nginx:
useradd -r -s /sbin/nologin nginx 创建nginx用户
./configure --prefix=/apps/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_dav_module --with-http_stub_status_module --with-threads --with-file-aio
make -j 4 && make install
准备环境变量
echo 'PATH=/apps/nginx/sbin/:$PATH' > /etc/profile.d/nginx.sh
. /etc/profile.d/nginx.sh
准备PHP测试页面:
[root@node-1 nginx-1.12.2]# mkdir /data/nginx/wordpress -p
[root@node-1 nginx-1.12.2]# vim /data/nginx/wordpress/index.php
[root@node-1 nginx-1.12.2]# vim /data/nginx/wordpress/index.php
phpinfo();
?>
配置nginx
server {
listen 80;
server_name www.magedu.net;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /data/nginx/wordpress;
index index.php index.html index.htm;
if ($http_user_agent ~ "ApacheBench|WebBench|TurnitinBot|Sogou web spider|GridServer") {
return 403;
}
location ~ \.php$ {
proxy_pass http://127.0.0.1;
root /data/nginx/wordpress;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
测试PHP
部署wordpress:
[root@node-1 ~]# cd /data/nginx/wordpress/
[root@node-1 ~]# tar xvf wordpress-5.0-zh_CN.tar.gz
[root@node-1 wordpress]# mv index.php /opt
[root@node-1 wordpress]# mv wordpress/* .
[root@node-1 wordpress]# mv wordpress-5.0-zh_CN.tar.gz /root
[root@node-1 wordpress]# cp wp-config-sample.php wp-config.php
[root@node-1 wordpress]# vim wp-config.php
define('DB_NAME', 'wordpress');
/** MySQL数据库用户名 */
define('DB_USER', 'wordpress');
/** MySQL数据库密码 */
define('DB_PASSWORD', '123456');
/** MySQL主机 */
define('DB_HOST', '192.168.10.4');
[root@node-1 wordpress]# chown www.www /data/nginx/wordpress/ /apps/nginx/ -R
[root@node-1 wordpress]# /apps/nginx/sbin/nginx -s reload
2、配置虚拟主机,www.x.com域名实现首页访问,admin.x.com域名实现wordpress的后台访问。
server {
listen 80;
server_name www.x.com;
location / {
root /data/nginx/wordpress;
index index.php index.html index.htm;
}
location ~ \.php$ {
root /data/nginx/wordpress;
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 / {
rewrite / http://www.x.com/wp-login.php;