WordPress是全球最受欢迎的开源博客和CMS平台,为当今互联网上所有网站的四分之一提供支持。它基于PHP和MySQL,并包含大量功能,可以使用免费和高级插件和主题进行扩展。WordPress是创建在线商店,网站或博客的最简单方法。 本教程描述了如何在CentOS 7上安装WordPress。这是一个非常简单的过程,只需不到十分钟即可完成。 我们将使用带有Nginx 的[LEMP堆栈](https://linuxize.com/series/install-lemp-stack-on-centos-7/)作为Web服务器,SSL证书,最新的PHP 7.2和MySQL / MariaDB作为数据库服务器。 ## 先决条件 在继续本教程之前,请确保满足以下先决条件: * 将域名指向您的服务器公共IP地址。在本教程中,我们将使用`example.com`。 * 以[具有sudo特权](https://linuxize.com/post/create-a-sudo-user-on-centos/)的[用户](https://linuxize.com/post/create-a-sudo-user-on-centos/)身份登录。 * 按照[以下说明](https://linuxize.com/post/how-to-install-nginx-on-centos-7/)安装Nginx 。 * 您已经为您的域安装了SSL证书。您可以按照[以下说明](https://linuxize.com/post/secure-nginx-with-let-s-encrypt-on-centos-7/)生成免费的“我们加密SSL”证书。 ## 创建MySQL数据库 WordPress将其数据和配置存储在MySQL数据库中。第一步是创建一个MySQL数据库,[MySQL用户帐户并授予对该数据库的访问权限](https://linuxize.com/post/how-to-create-mysql-user-accounts-and-grant-privileges/)。 如果您尚未在Ubuntu服务器上安装MySQL或MariaDB,则可以按照以下说明之一进行安装: * [在CentOS 7上安装MySQL](https://linuxize.com/post/install-mysql-on-centos-7/)。 * [在CentOS 7上安装MariaDB](https://linuxize.com/post/install-mariadb-on-centos-7/)。 通过执行以下命令登录到MySQL Shell: ``` mysql -u root -p ``` 在MySQL Shell中,运行以下SQL语句[创建一个](https://linuxize.com/post/how-to-create-a-mysql-database/)名为`wordpress`,用户名为[的数据库](https://linuxize.com/post/how-to-create-a-mysql-database/),`wordpressuser`并向该用户授予所有必要的权限: ``` CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ``` ## 安装PHP 7.2 CentOS 7附带PHP 5.4版。WordPress的推荐PHP版本是PHP 7.2。 要[安装PHP](https://linuxize.com/post/install-php-7-on-centos-7/)和所有必需的PHP扩展,请运行以下命令: ``` yum install epel-release yum-utils yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y yum-config-manager --enable remi-php72 yum install php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl yum install epel-release yum-utils ``` 我们安装PHP FPM是因为我们将Nginx用作Web服务器。 默认情况下,PHP FPM将以用户身份`apache`在端口9000上运行。我们将用户更改为,`nginx`并从TCP套接字切换到Unix套接字。为此,请打开`/etc/php-fpm.d/www.conf`文件,编辑以黄色突出显示的行: /etc/php-fpm.d/www.conf ``` ... user = nginx ... group = nginx ... listen = /run/php-fpm/www.sock ... listen.owner = nginx listen.group = nginx ``` 复制 `/var/lib/php`使用以下[chown命令](https://linuxize.com/post/linux-chown-command/)确保目录具有正确的所有权: ``` sudo chown -R root:nginx /var/lib/php ``` 进行更改后,启用并启动PHP FPM服务: ``` sudo systemctl enable php-fpm ``` ## 下载Wordpress 在下载Wordpress存档之前,首先创建一个目录,我们将在其中放置WordPress文件: ``` sudo mkdir -p /var/www/html/example.com ``` 下一步是使用以下[wget命令](https://linuxize.com/post/wget-command-examples/)从[WordPress下载页面](https://wordpress.org/download/)下载最新版本的WordPress :[](https://linuxize.com/post/wget-command-examples/) ``` cd /tmp ``` 下载完成后,解[压缩WordPress存档](https://linuxize.com/post/how-to-create-and-extract-archives-using-the-tar-command-in-linux/)并将[文件](https://linuxize.com/post/how-to-move-files-in-linux-with-mv-command/)移到域的文档根目录中: ``` tar xf latest.tar.gz ``` 设置正确的权限,以便Web服务器可以完全访问站点的文件和目录: ``` sudo chown -R nginx: /var/www/html/example.com ``` ## 配置Nginx 到目前为止,如果不检查本教程的先决条件,则应该已经在系统上安装了带有SSL证书的Nginx。 为了为我们的WordPress实例创建一个新的服务器块,我们将使用[Nginx](https://www.nginx.com/resources/wiki/start/topics/recipes/wordpress/)官方网站上的[Nginx配方](https://www.nginx.com/resources/wiki/start/topics/recipes/wordpress/)。 打开[文本编辑器](https://linuxize.com/post/how-to-use-nano-text-editor/)并创建一个新的[nginx服务器块](https://linuxize.com/post/how-to-set-up-nginx-server-blocks-on-centos-7/): ``` sudo nano /etc/nginx/conf.d/example.com.conf ``` 添加以下行: /etc/nginx/conf.d/example.com.conf ``` # Redirect HTTP -> HTTPS server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } # Redirect WWW -> NON WWW server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; root /var/www/html/example.com; index index.php; # SSL parameters ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; # log files access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { expires max; log_not_found off; } } ``` 复制 不要忘记用您的WordPress域替换example.com并为SSL证书文件设置正确的路径。所有[HTTP请求都将重定向到HTTPS](https://linuxize.com/post/redirect-http-to-https-in-nginx/)。[本指南](https://linuxize.com/post/secure-nginx-with-let-s-encrypt-on-centos-7/)中创建了[此](https://linuxize.com/post/secure-nginx-with-let-s-encrypt-on-centos-7/)配置中使用的摘录。 在重新启动Nginx服务之前,请测试配置以确保没有语法错误: ``` sudo nginx -t ``` 如果没有错误,则输出应如下所示: ``` nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful ``` 您可以通过键入以下命令[重新启动Nginx](https://linuxize.com/post/nginx-commands-you-should-know/): ``` sudo systemctl restart nginx ``` ## 完成WordPress安装 现在已经下载了Wordpress并完成了服务器配置,您可以通过Web界面完成安装。 打开浏览器,输入您的域,然后会出现类似以下的屏幕: ![image](https://upload-images.jianshu.io/upload_images/12813461-31647271f80b7bec.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 选择您要使用的语言,然后单击`Continue`按钮。 接下来,您将看到以下信息页面,单击`Let's go!`按钮。 ![image](https://upload-images.jianshu.io/upload_images/12813461-8201262d1663be12.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 在下一个屏幕上,安装向导将要求您输入数据库连接详细信息。输入您先前创建的MySQL用户和数据库详细信息。 ![image](https://upload-images.jianshu.io/upload_images/12813461-09cfcbdeaa8eea69.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 通过单击`Run the Installation`按钮开始WordPress安装。 ![image](https://upload-images.jianshu.io/upload_images/12813461-c1b988418902ba40.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 在下一步中,您需要输入WordPress网站的名称并选择一个用户名(出于安全目的,请勿使用“ admin”)。 安装程序将自动为您生成一个强密码。不要忘记保存此密码。您也可以自己设置密码。 输入您的电子邮件地址,然后选择是否要阻止搜索引擎将网站编入索引(不建议)。 ![image](https://upload-images.jianshu.io/upload_images/12813461-59b99093ea98b731.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 单击`Install WordPress`,一旦安装完成,您将进入一个页面,通知您WordPress已安装。 要访问您的WordPress登录页面,请单击`Log in`按钮。 ![image](https://upload-images.jianshu.io/upload_images/12813461-1b6a7b8736e33d80.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 输入您的用户名和密码。 ![image](https://upload-images.jianshu.io/upload_images/12813461-0272410b9ea5f3a5.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 您将被重定向到WordPress管理仪表板。 ![image](https://upload-images.jianshu.io/upload_images/12813461-7166fa037a90eef3.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 您可以从这里开始通过安装新主题和插件来自定义WordPress安装。 #说明 这篇文章从国外转过来的.觉得比较好,直接谷歌翻译过来的 [原文地址]([https://linuxize.com/post/how-to-install-wordpress-with-nginx-on-centos-7/](https://linuxize.com/post/how-to-install-wordpress-with-nginx-on-centos-7/) )