title: centos7+腾讯云服务器搭建wordpress
date: 2020-03-04
categories: web
tags: [wordpress]
分两部分:1.搭建LEMP环境 2.安装 wordpress
1.搭建LEMP环境
LEMP 是 PHP 网站应用的运行环境,如果打算在本地或者服务器上去运行一个用 PHP 语言写的网站应用,需要搭建 LEMP 环境。
L 表示 Linux .
这里我购买了腾讯云centos7.6. 学生有优惠^^
E 表示的是 Nginx ,E 取的是 Nginx 的读音(Engine X)。
它是一种 Web 服务器,可以为网站应用提供 Web 服务,也就是接待用户访问的服务,用户请求资源,Nginx 提受用户的请求,处理一下,再把用户需要的资源发送给用户。
M 表示 MySQL/MariaDB ,是网站应用使用的数据库管理系统。数据库管理系统里面创建很多的数据库,然后分配给网站应用去使用。MySQL 跟 MariaDB 可以相互兼容。
P,表示的是 PHP。它是解释 PHP 语言用的解析器,我们可以使用 PHP-FPM 跟 Web 服务相互沟通。
也就是如果也就是如果 Web 服务遇到对 PHP 资源的请求,会把请求交给 PHP-FPM ,它会去解释请求的 PHP,
再把结果交给 Web 服务,然后 Web 服务器(比如:NGINX)会把最后的结果返回给用户。
参考了一点:https://linux265.com/news/3482.html
网上一些搭建环境的教程用到apache也就是httpd,这里我用nginx。Nginx内部没有配置php所以需要一些操作。
下面的操作都是在服务器的命令行进行。
1.1. 安装 nginx
yum install -y nginx
然后
systemctl start nginx # 启动nginx
systemctl enable nginx.service # 设置为开机启动
1.2.安装 Mariadb
yum install mariadb mariadb-server
systemctl start mariadb ==> 启动mariadb
systemctl enable mariadb ==> 开机自启动
mysql_secure_installation ==> 设置 root密码等相关
测试登录:
mysql -u root -p
1.3. 安装php
yum install php php-fpm php-bcmatch php-gd php-mbstring php-mcrypt php-mysql
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum install yum-utils
sudo yum-config-manager --enable remi-php72
sudo yum install php-fpm php-opcache php-cli php-gd php-curl php-mysql
php -v
1.4.配置php 与nginx
sudo yum install php-fpm
vim /etc/php-fpm.d/www.conf
这里修改了user,group,listen。如果原来有,注释掉就好。
;user = apache
;group = apache
user = nginx
group = nginx
;listen = 127.0.0.1:9000
listen = /run/php-fpm/www.sock
listen.owner = nginx
listen.group = nginx
然后启动服务。
sudo systemctl enable php-fpm
sudo systemctl start php-fpm
确保/var/lib/php目录具有正确的权限:
chown -R root:nginx /var/lib/php
保存文件,启用并启动PHP FPM服务:
sudo systemctl enable php-fpm
sudo systemctl start php-fpm
vi /etc/nginx/nginx.conf 打开nginx主配置文件,按i进入编辑模式,修改其中的sever的location ~ .php部分为以下内容。(注释掉上面的location是可选的)
# location /{
#}
location ~ /.php$ {
try_files $uri =404;
root /var/www/wordpress;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
}
重启nginx服务
sudo systemctl restart nginx
测试php-fpm是否安装成功.
vi /usr/share/nginx/html/index.php
<?php
echo "<title>Test Page</title>";
echo "Hello World!";
?>
然后访问 ip/index.php. ip是你服务器的IP
我这里报错
注意:这里可能是上面
sudo systemctl enable php-fpm
sudo systemctl start php-fpm
没有输入的问题。
也可能是另一个问题参考:https://blog.csdn.net/levena/article/details/52712666
使用这个方法遇到问题时建议使用
ps -ef | grep nginx
kill -QUIT 主进程号
退出nginx,和相关进程,然后重新启动nginx和 php-fpm
然后再登录ip/index.php。显示helloword。说明php,nginx配置成功。
2.安装 wordpress
2.1. 创建wordpress数据库
给wordpress创建数据库,然后重启服务
mysql -u root -p # 用上面设置的密码登陆mysql
mysql>create database wordpress; # 创建wordpress数据库
CREATE USER wordpressuser@localhost IDENTIFIED BY 'XXXX(password)' #创建一个用户
GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost #权限
FLUSH PRIVILEGES //更改用户权限
exit //保存并退出
systemctl restart mariadb.service #重启相关服务
2.2. 下载安装wordpress
Cd ~
wget http://wordpress.org/latest.tar.gz
注意过程中任何wget的下载,可能会很慢,解决办法是先下载好然后 rz 命令传到服务器。
比如 https://cn.wordpress.org/latest-zh_CN.tar.gz 。
官网经常429错误,可以去网上找一找安装包。
Zip可以转换成tar.gz。
Rz传用 xshell。
# 解压wordpress
tar zxvflatest.tar.gz
cd wordpress/ # 进入到wordpress目录
cp wp-config-sample.php wp-config.php # 复制wp-config-sample.php并重命名为wp-config.php
vim wp-config.php # 打开该文件
找到mysql设置的配置部分,按i进入编辑模式,将配置的mysql信息修改
/** WordPress数据库的名称 */
define('DB_NAME', 'database_name_here');
/** MySQL数据库用户名 */
define('DB_USER', 'username_here');
/** MySQL数据库密码 */
define('DB_PASSWORD', 'password_here');
/** MySQL主机 */
define('DB_HOST', 'localhost');
/** 创建数据表时默认的文字编码 */
define('DB_CHARSET', 'utf8');
/** 数据库整理类型。如不确定请勿更改 */
define('DB_COLLATE', '');
然后参考https://www.linuxprobe.com/install-wordpress-nginx.html。
复制文件到一个方便的文件夹下。
#创建我们将保留wordpress文件的目录:
sudo mkdir -p /var/www/wordpress
#将解压缩的WordPress文件传输到网站的根目录。
#sudo cp -r ~/wordpress/* /var/www/wordpress
#修改权限/var/www ,使未来的自动的WordPress插件和文件与SFTP编辑的更新。
#如果不执行这些步骤,您可能会在尝试任一任务时收到“要执行请求的操作,需要连接信息”错误消息。
#首先,切换到web目录:
cd /var/www/
#将目录的所有权授予nginx用户,将“用户名”替换为服务器用户的名称。
sudo chown nginx:nginx * -R
sudo usermod -a -G nginx username
2.3修改nginx配置
先修改nginx
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /var/www/wordpress;
include /etc/nginx/default.d/*.conf;
location / {
index index.php index.html index.htm;
try_files $uri $uri/ /index.php index.php;
}
location ~ \.php$ {
try_files $uri =404;
root /var/www/wordpress;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
}
sudo systemctl restart nginx #重启
然后浏览器打开
http://ip/wp-admin/install.php 。
就显示下面的图,可以进行设置了。(下图来源于网络)
步骤 2.3 遇到的问题是403forbidden ,解决是 mginx 的配置文件添加了position的内容(上面的代码是修改好的)。
解决403参考了https://blog.csdn.net/dreamstone_xiaoqw/article/details/78078441 。