本文通过学习 how-to-install-wordpress-with-lemp-on-ubuntu-20-04而来,所以也可以参看原文。
在本教程中,将集中精力在Ubuntu 20.04服务器的LEMP堆栈(Linux,Nginx,MySQL和PHP)上设置WordPress实例。
这个安装的前提条件是在ubuntu 20 上已经安装好了lemP。如果还没有,可以参考:
为wordpress 建立数据库和用户
sudo mysql 或 sudo -u root -p 进入mysql
建立数据库 wordpress:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
建立用户并给与权限:
CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost';
FLUSH PRIVILEGES;
exit;
退出回到shell下。
验证我们建立的数据库,用户名,密码是否有效。
用你建立的用户名登录,提示输入密码。进入mysql后,
use wordpress 然后show tables; 还没表,确认基本正常。
mysql -u leon -p
Enter password:
mysql> use wordpress
Database changed
mysql> show tables;
Empty set (0.00 sec)
安装PHP 扩展
在lemp 主机中,已经安装好了PHP,但为了wordpress ,我们还需要安装一些扩展。
先update :
sudo apt update
然后安装:
sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip
更新重新启动php 服务:
sudo systemctl restart php7.4-fpm
配置 Nginx
对于虚拟主机,每个域名应该有一个配置文件,便于管理,如果主机只有一个域名,那可以直接配置或者修改default 文件即可。
配置的模式基本是:配置文件在/etc/nginx/sites-available 中,开始的时候只有一个default,你要配置一个域名虚拟主机,你可以复制这个文件为,比如example,然后在上修改。修改好之后,你可以:
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
这样就生效了,或者使能了。这里只是在 /etc/nginx/sites-enabled/ 建立一个symbol link ,符号连接,不要或者取消时,可以 rm symlink_name 或者 unlink symlink_name
我这只是一个域名,所以直接修改 default 。
sudo nano /etc/nginx/sites-available/default
进行编辑:
在server { } 里添加以下内容。
server {
. . .
location = /favicon.ico { log_not_found off; access_log off; }
location = /robots.txt { log_not_found off; access_log off; allow all; }
location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
expires max;
log_not_found off;
}
. . .
}
在index 部分,注意添加 index.php
index index.php index.html index.htm index.nginx-debian.html;
修改404 部分, 就是注销404 那行,下面加
try_files $uri $uri/ /index.php$is_args$args;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
#try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php$is_args$args;
}
确保下面的php内容,这应该在安装LEMP 里做好了的修改。
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
保存并退出.
检查配置是否有错误:
sudo nginx -t
重新导入nginx 配置,使我们的配置修改生效:
sudo systemctl reload nginx
下载 WordPress
切换到一个可写目录,比如
cd / tmp
然后通过键入以下命令下载最新的压缩版本:
curl -LO https://wordpress.org/latest.tar.gz
解压形成一个wordpress目录
tar xzvf latest.tar.gz
在复制之前,
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
然后复制到我们的目标目录
sudo cp -a /tmp/wordpress/. /var/www/html
文件内容已到位,下面更改文件的所有权,即 owner
sudo chown -R www-data:www-data /var/www/html
设置 wordpress 的配置文件
打开配置文件后,首先要调整一些密钥,为我们的安装提供一定的安全性。 WordPress为这些值的生成提供了密钥生成器。 这样我们拥有复杂,安全的密码而不影响可用性。
输入下面的命令:
curl -s https://api.wordpress.org/secret-key/1.1/salt/
这样会产生密钥,我这密钥中间有 Do not copy these values,就是不要复制下面的密钥,而要用你产生的,否则就不密了。
define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H');
define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3');
define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88');
define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g');
define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-');
define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY');
define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|');
define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');
下面开始编辑文件
sudo nano /var/www/wordpress/wp-config.php
找到如下位置:
. . .
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
. . .
复制你上面命令产生的密钥内容,替换这段内容。
. . .
define('AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
define('AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
. . .
这样加密的工作做好了。
下面修改数据库连接,就是找到下面这个部分,修改数据库名,用户名,用户密码。
还有一项更改是设置WordPress用于写入文件系统的方法。 由于已授予了Web服务器写入所需位置的权限,因此可以将文件系统方法显式设置为“直接”。 如果不使用当前设置对此进行设置,则当我们执行某些操作时,WordPress会提示输入FTP凭据。 将此设置项添加到数据库连接设置下或者文件中的其他任何位置:
. . .
define( 'DB_NAME', 'wordpress' );
/** MySQL database username */
define( 'DB_USER', 'wordpressuser' );
/** MySQL database password */
define( 'DB_PASSWORD', 'password' );
. . .
define( 'FS_METHOD', 'direct' );
保存并退出文件的修改。系统就做好了。
通过web 界面完成wordpress 的安装
在浏览器上输入主机的ip 地址,或者域名(如果域名绑定了的话),就开始wordpress 的Web 安装了。
第一个页面是选择语言
第二个输入标题,用户名,email,密码,然后点击 安装(install wordpress)
安装后再登录界面,然后进入wordpress 的管理界面了。
整个安装就到此,谢谢阅读。