WordPress安装教程PHP、MySQL、Nginx

204 阅读5分钟

安装前准备事项

为确保系统最新执行命令:yum update

安装php

参考资料: Linux下安装php环境并且配置Nginx支持php-fpm模块 Linux编译安装PHP7.4.24及启动

  1. 点击下载php安装包
  2. 上传并解压安装包tar -xzvf php-7.4.24.tar.gz
  3. 安装依赖包
    yum install gcc-c++ libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel gd sqlite sqlite-devel net-snmp net-snmp-devel oniguruma oniguruma-devel
    
  4. 执行php的配置命令
    ./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip
    
  5. 执行make命令make
  6. 执行安装命令make install
  7. 在解压后的目录下找到php.ini-production文件,执行命令
    • cp /opt/php7.4.33/php.ini-development /usr/local/php/lib/php.ini
    • cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
  8. 修改php.ini文件,执行命令vim /usr/local/php/lib/php.ini,找到cgi.fix_pathinfo配置项,修改为cgi.fix_pathinfo=0

    这一项默认被注释并且值为1,根据官方文档的说明,这里为了当文件不存在时,阻止Nginx将请求发送到后端的PHP-FPM模块,从而避免恶意脚本注入的攻击,所以此项应该去掉注释并设置为0,设置完毕保存并退出

  9. 创建用户及用户组
    • groupadd www-data
    • useradd -g www-data www-data
  10. 修改php-fpm.conf
    • vim /usr/local/php/etc/php-fpm.conf
    • 修改include为php安装的实际目录include=/usr/local/php/etc/php-fpm.d/*.conf
  11. 配置php-fpm
    • cd /usr/local/php/etc/php-fpm.d
    • 备份原配置文件cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
    • vim /usr/local/php/etc/php-fpm.d/www.conf,修改user = www-datagroup = www-data
  12. 启动php-fpm:/usr/local/sbin/php-fpm
  13. 启动完毕后,php-fpm服务默认使用9000端口,使用netstat -tln | grep 9000查看端口使用情况

安装nginx

  1. 上传nginx安装包
  2. 解压安装包tar -xzvf nginx-1.26.1.tar.gz
  3. 安装依赖yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
  4. 执行configure命令生成MakeFile文件,[options]配置项可忽略./configure [options]
  5. 执行make命令make
  6. 执行安装命令make install
  7. 查看是否安装完成(查看是否有nginx进程)ps -ef | grep nginx,或者使用./nginx -v查看nginx版本,可以把nginx加入系统环境变量,在任何目录下都可以通过nginx命令操作ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
  8. 若存在进程则代表安装成功,则可以切换到/sbin目录下验证在当前目录下验证 nginx 配置文件是否正确./nginx -t
  9. nginx命令
    • 启动nginx:./nginx
    • 停止nginx:./nginx -s stop
    • 重启nginx:./nginx -s reload
    • 查看nginx进程:ps -ef | grep nginx

安装wordpress

  1. 点击下载WordPress安装包,上传wordpress安装包至服务器/app/wordpress/目录下,并解压
  2. 修改wordpress目录权限chown -R www /app/wordpress/;给站点目录权限,nginx可读写chown -R nginx.nginx /app/wordpress

配置nginx

  1. /usr/local/nginx/conf/nginx.conf中添加以下内容
    #user  nobody;
    worker_processes  1;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
        server {
            listen       80;
            server_name  服务器IP地址;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                root   /app/wordpress; #指定网站根目录
                index  index.html index.htm index.php;
            }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ \.php$ {
            #    proxy_pass   http://127.0.0.1;
            #}
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            location ~ \.php$ {
                root           /app/wordpress;#指定网站根目录
                fastcgi_pass   127.0.0.1:9000;#指定php-fpm监听端口
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
            }
        }
    }
    
  2. 重新启动nginx

安装MySQL

参考资料: Linux环境下安装部署MySQL8.0以上(内置保姆级教程)- 离线模式 Linux 安装Mysql 详细教程(图文教程)

  1. 下载MySQL安装包mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz,上传至服务器/usr/local/目录下,并解压tar -xvf mysql-8.3.0-linux-glibc2.28-x86_64.tar.xz
  2. 检查是否有mysql用户组和mysql用户groups mysql
  3. 创建mysql用户组和用户groupadd mysql && useradd -g mysql mysql
  4. 创建数据目录并赋予权限mkdir /data/mysql/data && chown -R mysql.mysql /data/mysql
  5. 修改配置文件vim /etc/my.cnf
    [mysqld]
    bind-address=0.0.0.0
    port=3306
    user=mysql
    basedir=/usr/local/mysql
    datadir=/data/mysql
    socket=/tmp/mysql.sock
    log-error=/data/mysql/mysql.err
    pid-file=/data/mysql/mysql.pid
    #character config
    character_set_server=utf8mb4
    symbolic-links=0
    explicit_defaults_for_timestamp=true
    
  6. 安装并初始化,cd /usr/local/mysql/bin
    • ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
  7. 查看mysql密码cat /data/mysql/mysql.err | grep password
  8. mysql.server放置到/etc/init.d/mysql中,/etc/init.d目录通常用于存放启动脚本,这些脚本用于管理系统服务的启动、停止和重启:cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
  9. 启动mysql服务service mysql start,并查看进程ps -ef | grep mysql
  10. 开启免密登录:vim /etc/my.cnf,添加skip-grant-tables,退出保存,重启服务service mysql restart,配置生效
  11. 修改账号密码
    • cd /usr/local/mysql/bin
    • ./mysqladmin -u root -p不用输入密码直接敲回车进去mysql
  12. 允许外部访问,默认是localhost,导致navicat工具不能链接数据库
    • update mysql.user set host = '%' where user = 'root';
    • 刷新flush privileges;
  13. 修改数据库密码ALTER USER "root"@"%" IDENTIFIED BY "你的密码";(密码要包含大小写特殊符号和数字,否则会出现错误提示),刷新FLUSH PRIVILEGES;
  14. 去掉登录免密vim /etc/my.cnf#skip-grant-tables,重启mysql服务service mysql start
  15. 创建wordpress数据库CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  16. 创建wordpress用户CREATE USER 'wordpress'@'localhost' IDENTIFIED BY '密码';
  17. 授权wordpress用户访问wordpress数据库grant all privileges on wordpress.* to 'wordpress'@'%';