搭建wordpress电商网站

搭建wordpress电商网站

一、环境搭建

1. 服务器准备

为了方便快速搭建,这里选用阿里云集成的,配置选用  centos7.7 LNMP PHP7.2

2. 安装nginx

2.1 安装nginx相关依赖
# 安装 gcc
yum install gcc-c++
# 安装 pcre-devel
yum install -y pcre pcre-devel
# 安装zlib  
yum install -y zlib zlib-devel
# 安装OpenSSL  
yum install -y openssl openssl-devel
2.1 安装Nginx
# 创建 nginx.repo文件
vi /etc/yum.repos.d/nginx.repo   
# 然后写入配置:
[nginx]
name=nginx repo  
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

yum install nginx
2.3. 启动 Nginx
# 启动 nginx
cd /usr/sbin
./nginx
# 打开防火请
systemctl start firewalld
# 打开防火墙 80 端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 打开防火墙 3306 端口(方便navicate等工具连接)
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重启防火墙  
firewall-cmd --reload
浏览器访问ip,出现 welcome to nginx

3. MySQL安装与配置

3.1 安装MySQL
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum install mysql-server
# 启动mysql
systemctl start mysqld
3.2 MySQL初始化设置
# 运行下面命令进入初始化设置
mysql_secure_installation
# 修改mysql默认密码  初次登陆是默认为空,直接回车
# 删除匿名用户  选择y
# 允许远程连接  默认为不允许, 选择n
# 删除测试数据库  选择 y
# 数据库实时更新  选择  y
3.3 创建mysql用户
# root用户登录
mysql -u root -p
create database wordpress charset utf8;
# 列出数据库(如下图)
show databases;
use mysql;
# 赋予权限,连接数据库
grant all privileges on * . * to 'root'@'%' identified by '密码';
# 退出数据库
exit;
# 重启数据库
systemctl restart mysqld

4.PHP,Vsftpd 安装配置

4.1配置PHP
#  先安装 php-mysql 和 php-fpm
yum –y install php-mysql
yum –y install php-fpm
# 运行
yum -y install php* --skip-broken
# 编辑 php 配置文件
vim /etc/php.ini
# 添加
extension=mysql.so
# 找到 extension_dir  并设为
extension_dir = "/usr/lib64/php/modules"
# 重启 php 服务
systemctl restart php-fpm
4.2 Vsftpd 安装与配置
# 安装
yum -y install vsftpd
# 启动服务
systemctl start vsftpd 
# 新建 ftp home 目录
mkdir  /ftpuserdata
# 为 ftp 创建用户 ftpuser,指定目录 /ftpuserdata/www/
useradd ftpuser -d /ftpuserdata/www/ -s /sbin/nologin
# 设置密码
passwd ftpuser
# 编辑 FTP 配置文件
vim /etc/vsftpd/vsftpd.conf
# 将匿名登录禁用
anonymous_enable=NO
# 保存退出后,给 www 目录设置读写权限
chmod -R 777 /ftpuserdata/www/
# 重启
systemctl restart vsftpd

5. Wordpress安装及相关配置

5.1 安装wordpress
# 安装
# 进入目录
cd /ftpuserdata/www/
#下载
wget https://wordpress.org/latest.zip
# 解压
unzip latest.zip
如果提示不能unzip
yum install -y unzip zip
5.2 配置wordpress
vim /ftpuserdata/www/wordpress/wp-config-sample.php
填写数据库名,数据库用户名,数据库密码
保存退出,重命名配置文件
mv /ftpuserdata/www/wordpress/wp-config-sample.php /ftpuserdata/www/wordpress/wp-config.php
5.3 修改wp相关配置
vim /etc/nginx/conf.d/default.conf
		
在 #charset koi8-r; 之前加
root   /ftpuserdata/www/wordpress/;
index  index.php index.html index.htm;
client_max_body_size 50m;

try_files  $uri $uri/ /index.php index.php;

将下面代码去掉注释,fastcgi_param 改为下面的
location ~ \.php$ {
	root           html;
	fastcgi_pass   127.0.0.1:9000;
	fastcgi_index  index.php;
	fastcgi_param  SCRIPT_FILENAME  /ftpuserdata/www/wordpress$fastcgi_script_name;
	include        fastcgi_params;
	}
5.4 重启相关服务
systemctl restart nginx
systemctl restart php-fpm
systemctl restart vsftpd
# 将服务加入开机启动
systemctl enable mysqld
systemctl enable nginx
systemctl enable php-fpm
systemctl enable vsftpd

二、其他问题

1 版本不匹配

环境配置好以后,访问ip,应该会出现安装wordpress界面,如果提示php版本不匹配,镜像自带的是5.4
		
停止相关服务
systemctl stop nginx
systemctl stop php-fpm

更新源
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

#移除系统自带的php-common
yum remove php-common -y

因为后面wordpress安装插件时,又提示php版本的问题,所以这里直接升级到适合的版本
yum install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-fpm php71w-gd php71w-mbstring php71w-mysqlnd php71w-opcache php71w-pdo php71w-xml php71w-ldap php71w-mcrypt
		
重新启动服务
systemctl restart nginx
systemctl restart php-fpm

2 权限问题

安装插件和主题时提示ftp连接失败,原因是用户没有权限
在wordpress的wp-content文件下,新建tmp文件夹,并给最高权限
chmod -R 777 tmp
将wordpress的权限改为最高(不太安全)
chmod -R 777 /ftpuserdata/www/wordpress
#下面的代码加在 if ( ! defined( 'ABSPATH' ) ) { 代码块下面
define("FS_METHOD", "direct");
define("FS_CHMOD_DIR", 0777);
define("FS_CHMOD_FILE", 0777);

3 镜像问题

vim  /etc/yum/pluginconf.d/fastestmirror.conf
enabled=1 改为 0
vim /etc/yum.conf
plugins=1 改为 0

4 固定链接改变后无法访问

在nginx.conf文件中做修改,在
server {
  ...
  server name  ~^(www\.)?(.+)$;
  root wordpress目录
  if (-f $request_filename/index.html){
		rewrite (.*) $1/index.html break;
	}
  if (-f $request_filename/index.php){
		rewrite (.*) $1/index.php;
	}
  if (!-f $request_filename){
		rewrite (.*) /index.php;
	}
  rewrite /wp-admin$ $scheme://$host$uri/ permanent;
...
}

5 cookies重定向过多问题

开启https后,可能会出现cookies重定向过多的问题,在wp-config.php中添加
define( 'COOKIE_DOMAIN', '' );

如果不行,添加
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

四、域名配置

一、实现任意域名访问
说明:在wp-config.php文件中加下面代码,就能实现绑定解析的域名都能正常访问博客,而且不会串联到其他域名。
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);

二、实现任意域名https访问
define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']);

三、限制特定域名访问
$domain = array('domain1.com','domain2.com',); 
if(in_array($_SERVER['HTTP_HOST'], $domain)){
define('WP_HOME', 'https://'.$_SERVER['HTTP_HOST']);
define('WP_SITEURL', 'https://'.$_SERVER['HTTP_HOST']);
define('WP_CONTENT_URL', '/wp-content');
}
https前提:$_SERVER['HTTPS'] = 'on';
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值