linux运维

centos7源码包安装LNMP+wordpress论坛

2018-06-10  本文已影响44人  dabule

前期准备:

关闭防火墙于selinux:

iptables -F #关闭防火墙
setenforce 0  #关闭selinux
getenforce    #查看selinux状态
vim /etc/selinux/config  #在配置文件中修改selinux
[root@localhost html]# vim /etc/selinux/config 


# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled   #改成disabled 
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

:wq

下载源码包:
将源码包下载到/usr/local/src路径中,源码包可以在软件官网中有下载,这里不再一一列出下载地址,需要下载的源码包有mysql,nginx,php,wordpress.

[root@localhost src]# ls
mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz  php-5.6.30         wordpress-4.9.4-zh_CN.tar.gz
nginx-1.12.1                               php-5.6.30.tar.gz
mysql-5.6.35-linux-glibc2.5-x86_64  nginx-1.12.1.tar.gz                        wordpress

开发环境与编译工具:

yum -y groupinstall Development Tools
yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel perl-Data-Dumper net-tools 
yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel libxml2*

1.安装mysql并配置:

查看并删除系统的mysql服务:

rpm -qa | grep mysql  #如果查询到mysql,就是用rpm -e命令来卸载了原来的mysql
rm -rf /etc/my.cnf    #删除原来mysql的配置文件

解压并复制文件:

tar -zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz  #在下载目录中解压文件
mkdir /usr/local/mysql   #创建安装目录,方便以后管理
cp  -R ./mysql-5.6.35-linux-glibc2.5-x86_64/* /usr/local/mysql/  #复制解压文件的目录中

切换目录并安装:

cd /usr/local/mysql/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
#使用cmake工具进行安装mysql

创建数据目录,执行用户并执行初始化脚本:

 mkdir /data
 useradd -s /sbin/nologin mysql
 ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql  #初始化脚本

复制配置文件并配置:

cp support-files/my-default.cnf /etc/my.cnf  #配置文件
cp support-files/mysql.server /etc/init.d/mysql.server  #启动脚本
在vim /etc/my.cnf配置如下:
[root@localhost mysql]# vim /etc/my.cnf

# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
datadir =/data/mysql   #添加这个数据存放路径
# port = .....
# server_id = .....
# socket = .....
socket = /tmp/mysql.sock   #还有这个,其他暂时不用动
...省略...

:wq

启动mysql并初始设置:

/etc/init.d/mysql.server start   #启动mysql
/usr/local/mysql/bin/mysql_secure_installation  #初始设置,包含root密码设置等等

检查服务是否启动:

[root@localhost html]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      7102/nginx: master  
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1427/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1032/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1026/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1268/master         
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      7304/sshd: root@pts 
tcp        0      0 127.0.0.1:6011          0.0.0.0:*               LISTEN      7304/sshd: root@pts 
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::22                   :::*                    LISTEN      1032/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1026/cupsd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      1268/master         
tcp6       0      0 ::1:6010                :::*                    LISTEN      7304/sshd: root@pts 
tcp6       0      0 ::1:6011                :::*                    LISTEN      7304/sshd: root@pts 
tcp6       0      0 :::3306                 :::*                    LISTEN      39096/mysqld 

#3306已经启动监听

看到mysql启动了就算安装mysql完成了.

2.安装php并配置:

解压并进入目录:

cd /usr/local/src/  #进入下载目录
tar -zxvf php-5.6.30.tar.gz 
cd php-5.6.30/  #进入解压目录

添加用户并编译安装:

 useradd -s /sbin/nologin php-fpm  #添加php-fpm用户
  ./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock 
#可以通过./configure --help来按需要进行添加编译选项
  make && make install  

复制配置文件并设置权限:

cp php.ini-production /usr/local/php-fpm/etc/php.ini
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm #启动脚本
chmod 755 /etc/init.d/php-fpm

创建配置文件:
创建vim /usr/local/php-fpm/etc/php-fpm.conf,内容如下:

[root@localhost php-5.6.30]# vim /usr/local/php-fpm/etc/php-fpm.conf

[global]
pid = /usr/local/php-fpm/var/run/php-fpm.pid
error_log = /usr/local/php-fpm/var/log/php-fpm.log
[www]
listen = /tmp/php-fcgi.sock   #监听ip和端口,端口默认为9000
listen.mode = 666    #用来定义php-fcgi.sock文件的权限
user = php-fpm  
group = php-fpm
pm = dynamic   #后面这些都是关于进程的信息
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
               
:wq

检查配置文件并启动:

/usr/local/php-fpm/sbin/php-fpm -t  #检查配置文件错误
chkconfig --add php-fpm  #加入开机自启
chkconfig php-fpm on  #开机启动
service php-fpm start  #启动php-fpm

检查服务是否启动:

[root@localhost src]# ps aux | grep php
root       3023  0.0  0.1  55896  3492 ?        Ss   Jun09   0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm    3024  0.0  0.5  62032  9940 ?        S    Jun09   0:00 php-fpm: pool www
php-fpm    3025  0.0  0.4  61264  8940 ?        S    Jun09   0:00 php-fpm: pool www
php-fpm    3026  0.0  0.5  61836 11016 ?        S    Jun09   0:00 php-fpm: pool www
php-fpm    3027  0.0  0.6  64164 11620 ?        S    Jun09   0:00 php-fpm: pool www
php-fpm    3028  0.0  0.5  62116  9772 ?        S    Jun09   0:00 php-fpm: pool www
php-fpm    3029  0.0  0.5  61580 10912 ?        S    Jun09   0:00 php-fpm: pool www
php-fpm    3030  0.0  0.4  59300  8432 ?        S    Jun09   0:00 php-fpm: pool www
php-fpm    3031  0.0  0.2  58292  5380 ?        S    Jun09   0:00 php-fpm: pool www
php-fpm    3032  0.0  0.6  64164 11620 ?        S    Jun09   0:00 php-fpm: pool www
php-fpm    3033  0.0  0.4  61256  8912 ?        S    Jun09   0:00 php-fpm: pool www
php-fpm    3034  0.0  1.5  81572 29416 ?        S    Jun09   0:00 php-fpm: pool www
php-fpm    3035  0.0  0.5  61580 10924 ?        S    Jun09   0:00 php-fpm: pool www
php-fpm    3036  0.0  1.3  76660 25900 ?        S    Jun09   0:00 php-fpm: pool www
php-fpm    3037  0.0  0.6  62248 11820 ?        S    Jun09   0:00 php-fpm: pool www
php-fpm    3038  0.0  0.5  61580 10912 ?        S    Jun09   0:00 php-fpm: pool www
php-fpm    3039  0.0  0.6  62500 12120 ?        S    Jun09   0:00 php-fpm: pool www
php-fpm    3040  0.0  0.4  59300  8428 ?        S    Jun09   0:00 php-fpm: pool www
php-fpm    3041  0.0  0.5  62116  9776 ?        S    Jun09   0:00 php-fpm: pool www
php-fpm    3042  0.0  0.6  64452 12880 ?        S    Jun09   0:00 php-fpm: pool www
php-fpm    3043  0.0  0.5  62116  9772 ?        S    Jun09   0:00 php-fpm: pool www
root       8573  0.0  0.0 112708   976 pts/3    S+   00:12   0:00 grep --color=auto php

这里看到php已经启动,说明安装成功了.

3.安装并配置nginx:

解压并进入目录:

cd /usr/local/src/  #进入下载目录
tar -zxvf nginx-1.12.1.tar.gz 
cd nginx-1.12.1/

编译安装:

./configure --prefix=/usr/local/nginx #可以使用./configure --help查看更多信息
make && make install

创建启动脚本并修改权限:
在vim /etc/init.d/nginx中创建脚本

#!/bin/bash
# chkconfig: - 30 21   #这个和下面的选项好正确,否则会报service nginx does not support chkconfig的错误,
# description: http service.
# Source Function Library
. /etc/init.d/functions
# Nginx Settings
NGINX_SBIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
NGINX_PID="/usr/local/nginx/logs/nginx.pid"
RETVAL=0
prog="Nginx"
start() 
{
    echo -n $"Starting $prog: "
    mkdir -p /dev/shm/nginx_temp
    daemon $NGINX_SBIN -c $NGINX_CONF
    RETVAL=$?
    echo
    return $RETVAL
}
stop() 
{
    echo -n $"Stopping $prog: "
    killproc -p $NGINX_PID $NGINX_SBIN -TERM
    rm -rf /dev/shm/nginx_temp
    RETVAL=$?
    echo
    return $RETVAL
}
reload()
{
    echo -n $"Reloading $prog: "
    killproc -p $NGINX_PID $NGINX_SBIN -HUP
    RETVAL=$?
    echo
    return $RETVAL
}
restart()
{
    stop
    start
}
configtest()
{
    $NGINX_SBIN -c $NGINX_CONF -t
    return 0
}
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  reload)
        reload
        ;;
  restart)
        restart
        ;;
  configtest)
        configtest
        ;;
  *)
        echo $"Usage: $0 {start|stop|reload|restart|configtest}"
        RETVAL=1
esac
exit $RETVAL

:wq


chmod 755 /etc/init.d/nginx

加入服务列表并开机启动:

chkconfig --add nginx

chkconfig nginx on


修改nginx.conf文件:
在/usr/local/nginx/conf/目录下修改nginx.conf文件,为了保证安全先备份原来conf文件并创建新的配置文件.


mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak

配置新的vim /usr/local/nginx/conf/nginx.conf文件,内容如下:

user nobody nobody;
worker_processes 2;
error_log /usr/local/nginx/logs/nginx_error.log crit;
pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events
{
    use epoll;
    worker_connections 6000;
}
http
{
    include mime.types;
    default_type application/octet-stream;
    server_names_hash_bucket_size 3526;
    server_names_hash_max_size 4096;
    log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
    ' $host "$request_uri" $status'
    ' "$http_referer" "$http_user_agent"';
    sendfile on;
    tcp_nopush on;
    keepalive_timeout 30;
    client_header_timeout 3m;
    client_body_timeout 3m;
    send_timeout 3m;
    connection_pool_size 256;
    client_header_buffer_size 1k;
    large_client_header_buffers 8 4k;
    request_pool_size 4k;
    output_buffers 4 32k;
    postpone_output 1460;
    client_max_body_size 10m;
    client_body_buffer_size 256k;
    client_body_temp_path /usr/local/nginx/client_body_temp;
    proxy_temp_path /usr/local/nginx/proxy_temp;
    fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
    fastcgi_intercept_errors on;
    tcp_nodelay on;
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 8k;
    gzip_comp_level 5;
    gzip_http_version 1.1;
    gzip_types text/plain application/x-javascript text/css text/htm 
    application/xml;
    server
    {
        listen 80;
        server_name localhost;
        index index.html index.htm index.php;
        root /usr/local/nginx/html;
        location ~ \.php$ 
        {
            include fastcgi_params;
            fastcgi_pass unix:/tmp/php-fcgi.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
        }    
    }
}


:wq

检查配置文件语法错误并启动服务:

/usr/local/nginx/sbin/nginx -t 

service nginx start

检查服务是否启动:

[root@localhost src]# netstat -lntp |grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      7102/nginx: master 

到这里LNMP已经搭建完成了,可以测试一下

测试LNMP环境:
在/usr/local/nginx/html/目录中添加一个test.php 的文件,内容如下:


[root@localhost php-5.6.30]# vim /usr/local/nginx/html/test.php 

<?php
        phpinfo();
?>
      

:wq

通过客户端访问LNMP服务器,结果如下:


Nginx的php功能生效.jpg

证明LNMP已经搭建完成了.

4.安装wordpress:

解压并复制文件:
进入下载目录并解压

cd /usr/local/src
tar -zxvf wordpress-4.9.4-zh_CN.tar.gz 

删除nginx服务主页目录/usr/local/nginx/html/中的所有文件,并将解压目录的文件全部复制过去

rm -rf /usr/local/nginx/html/*

cp -a /usr/local/src/wordpress/* /usr/local/nginx/html/

在mysql中设置wordpress的账号密码,数据库:
登陆mysql

/usr/local/mysql/bin/mysql -uroot -p

设置用户密码权限等等

mysql> GRANT ALL ON wordpress.* TO 'wpuser'@'%' IDENTIFIED BY 'wppass';  #设置用户密码权限
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE DATABASE wordpress;  #创建wordpress数据库

复制配置文件模版并配置:

cd /usr/local/nginx/html/
cp wp-config-sample.php wp-config.php  #配置文件名称不要改其他的,会报错

[root@localhost html]# vim wp-config.php   
/**#@+
 * 身份认证密钥与盐。
 *
 * 修改为任意独一无二的字串!
 * 或者直接访问{@link https://api.wordpress.org/secret-key/1.1/salt/
 * WordPress.org密钥生成服务}
 * 任何修改都会导致所有cookies失效,所有用户将必须重新登录。
 *
 * @since 2.6.0
 */
define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

/**#@-*/

/**
 * WordPress数据表前缀。
 *
 * 如果您有在同一数据库内安装多个WordPress的需求,请为每个WordPress设置
 * 不同的数据表前缀。前缀名只能为数字、字母加下划线。
 */
$table_prefix  = 'wp_';
 * * ABSPATH
 *
 * @link https://codex.wordpress.org/zh-cn:%E7%BC%96%E8%BE%91_wp-config.php
 *
 * @package WordPress
 */

// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define('DB_NAME', 'wordpress');     #改为数据库的名称

/** MySQL数据库用户名 */
define('DB_USER', 'wpuser');    #改为数据库用户名

/** MySQL数据库密码 */
define('DB_PASSWORD', 'wppass');    #数据库的密码

/** MySQL主机 */
define('DB_HOST', 'localhost');   #允许访问的主机地址

/** 创建数据表时默认的文字编码 */
define('DB_CHARSET', 'utf8');   

/** 数据库整理类型。如不确定请勿更改 */
define('DB_COLLATE', '');

/**#@+
 * 身份认证密钥与盐。
 *
...省略...


:wq

客户端登陆wordpress论坛:
配置完成了就 可以通过客户端去登陆论坛,按页面提示来操作就可以了,

wordpress登陆界面.jpg

填写相应的信息,包括之前数据库创建的用户密码,自己的邮箱等等,格式正确就可以点安装wordpress了

wordpress安装成功.png

安装成功直接点登录

wordpress最终界面.jpg

用户和密码正确了,就可以看到论坛的先过出来了.到这里就全部完成了LNMP+wordpress的搭建了

上一篇 下一篇

猜你喜欢

热点阅读