一、概述
操作系统采用CentOS 7,Web服务采用Nginx,数据库采用MySQL CE。以下教程只描述主要步骤,并假定你以有一定Linux、MySQL和百度使用基础。
二、安装MySQL
安装
1、下载安装MySQL官方的Yum源
yum -y install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
2、安装MySQL
yum install mysql-community-server
3、启动MySQL服务
systemctl start mysqld
4、设置为开机启动服务
systemctl enable mysqld
5、此时MySQL已经开始正常运行,需要找出它的root账户的临时密码
grep "password" /var/log/mysqld.log
6、修改MySQL的root密码
登录MySQL
mysql -u root -p
这里会遇到一个问题,新密码设置过于简单会报错,可通过如下命令修改密码规则。
set global validate_password.policy=0;
set global validate_password.length=1;
修改密码:
ALTER USER root@localhost IDENTIFIED BY 'sqlrootpassword';
创建WordPress用的数据库
create database test_com;
创建WordPress专用的MySQL用户
create user testuser@localhost identified by 'testpassword';
grant all on test_com.* to testuser@localhost;
alter user testuser@localhost identified with mysql_native_password by 'testpassword';
三、安装nginx
1、设置yum源
CentOS的官方源并没有nginx,因此我们需要添加nginx官方提供的yum源。
在/etc/yum.repos.d目录下创建repo文件:
vim /etc/yum.repos.d/nginx.repo
从官网http://nginx.org/en/linux_packages.html#stable 拷贝对应linux版本的yum源,这里使用稳定版(stable)。
[nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true
2、安装
yum -y install nginx
3、配置
编辑/etc/nginx/conf.d/default.conf,对照着下面操作:
设置默认首页为index.php
location / { root /usr/share/nginx/html; index index.php index.html index.htm; }
设置上传文件的最大大小
server { client_max_body_size 10M; }
修改php配置
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ .php$ { root /usr/share/nginx/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
解决wordpress设置固定链接后404问题
在某个server{}
里添加/修改如下字段:
location / { 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;
设置用户nginx对html目录的所有权限
chown -R nginx:nginx /usr/share/nginx/html/
运行
systemctl start nginx
设置为开机启动服务
systemctl enable nginx
四、安装PHP
安装
CentOS官方源的PHP版本是5.4,远远不够,因此我们要使用第三方yum源(epel和Remi)。
1、安装epel源
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
2、安装Remi源
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
3、启用PHP7.4的repo
编辑/etc/yum.repos.d/remi-php74.repo
,将[remi-php74]区块下enabled=0
改为enabled=1
,保存退出。
4、安装PHP 7.4
yum -y install php
5、安装PHP扩展模块
yum -y install php-cli php-common php-devel php-fpm php-mysqlnd php-gd php-opcache php-mbstring php-bcmath php-imagick
配置
编辑/etc/php-fpm.d/www.conf,修改用户为nginx
user = nginx
group = nginx
编辑/etc/php.ini,修改上传文件的最大限制
upload_max_filesize = 10M
post_max_size = 10M
运行
systemctl start php-fpm
设置为开机启动服务
systemctl enable php-fpm
测试
创建一个简易php文件,测试PHP运行是否正常。
在网站根目录(/usr/share/nginx/html/)下创建1.php文件,加入以下代码并保存。
<?php phpinfo(); ?>
然后用浏览器访问1.php,如果出现PHP详细信息的表格,说明一切正常。
五、安装WordPress
1、下载
wget https://cn.wordpress.org/wordpress-latest-zh_CN.zip -O /usr/share/nginx/html/wordpress.zip
2、解压缩
将压缩包解压:
unzip /usr/share/nginx/html/wordpress.zip
移动wordpress目录下的所有文件至网站根目录下:
mv /usr/share/nginx/html/wordpress/* /usr/share/nginx/html/
3、安装
访问站点,按提示操作即可,如http://192.168.1.100/index.php
如果在访问站点时,默认没有打开index.php而是打开index.html文件,则删了index.html文件即可O(∩_∩)O
六、常见问题
在遇到运行错误时(例如HTTP ERROR 500),打开调试模式,可以打开WordPress的调试模式以显示错误信息。
编辑wp-config.php文件,修改 define(‘WP_DEBUG’, falase);
为 define(‘WP_DEBUG’, true);
更新失败:因为我们不能复制一些文件,升级未被安装
有时更新插件时会遇到更新失败,提示“更新失败:因为我们不能复制一些文件,升级未被安装”。一般是由于权限设置错误引起的,当你用SSH或者FTP直接上传插件到Wordpress目录中,那么你上传的文件所属的所有组和所有人就是root或者ftp user。而如果你的php或者nginx的运行者不是这两者,就会出现这个错误。
既然如此,那么我们将插件目录的所有子目录的拥有者改为与nginx相同的用户即可。
例如,用ps aux|grep nginx
查得nginx
是以nginx用户运行的。
接着切换至网站wordpress的根目录下,然后运行chown -R nginx:nginx wp-content/plugins
即可。