Ubuntu18.04下配置wordpress站点环境
linux下搭建系统
我很早之前装了一个虚拟机,里面安装了ubuntu18.04系统,这部分内容不说了,直接借鉴安装ubuntu系统经验即可,装到VMware里就行了
安装必备组件
配置环境主要需要LNMP组件,即linux下安装nginx,mysql,PHP解释器,外加最后wordpress的安装包。数据库也有用mariaDB的,没用过,不试了。
安装mysql
sudo apt-get install mysql-server
安装完成后执行
sudo mysql_secure_installation
按提示操作即可
完成之后可以看下版本
mysql -V
我这里显示版本是5.7.25
mysql Ver 14.14 Distrib 5.7.25, for Linux (x86_64) using EditLine wrapper
话说我windows半年前就用了8.0了……
安装nginx
nginx是一个高性能的HTTP和反向代理服务器,传说中的负载均衡就是用它实现的
sudo apt-get install nginx
安装php
sudo apt-get install php
现在的php版本是7,正常来说以上语句就可以了,如果没有
/var/run/php/php7.2-fpm.sock
执行下面语句再安装下
sudo apt-get install php-fpm php-mysql
启动nginx
sudo service nginx start
这一步若提示[emerg] bind() to 0.0.0.0:80 failed (98:address already in use ),一般是80端口被apache占用所致,杀死所有apache进程:
sudo killall apache2
关闭apache的开机启动:
sudo update-rc.d -f apache2 remove
在浏览器里访问你的IP(本地虚拟机中则是127.0.0.1),出现Welcome to Nginx,则说明nginx启动成功。
nginx配置
nginx的配置文件位于
/etc/nginx/conf.d/
nginx下的一个虚拟主机就相当于一个网站,每个虚拟主机的配置文件保存在上面两条路径。为了便于管理,我都是在/etc/nginx/conf.d/下新建conf配置文件。打开nginx的默认配置文件,修改使其支持php:
sudo nano /etc/nginx/sites-enable/default
nano的控制键可以简单记住几个 ctrl+s保存 ctrl+x退出
nginx的配置文件中间部分修改成这样
# Default server configuration
#
server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
# root /var/www/html;
root 你的网站根目录;
# Add index.php to the list if you are using PHP
# index index.html index.htm index.nginx-debian.html;
index index.php index.html index.htm;
# server_name _;
server_name 你的IP或者域名;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
# 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.2-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
保存修改退出,并重启nginx:
sudo service nginx restart
新建一个phpinfo.php:
sudo nano /你的根目录/phpinfo.php
输入
<?php
phpinfo();
保存退出,浏览器访问
你的IP或者域名/phpinfo.php
能正常显示php7.2-fpm的配置信息说明lnmp环境就搭好了。
安装phpmyadmin并管理mysql
phpmyadmin是数据库管理软件,要是你想能鼠标点点就看见表格、数据这些的,建议安装,不然就只能命令行敲代码了
sudo apt-get install phpmyadmin
sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/www
sudo service nginx restart
安装过程中会提示输入mysql密码和设置root登录密码,安装完成访问 你上一步配的IP地址/phpmyadmin,在本地虚拟机中的,就是http://127.0.0.1/phpmyadmin,进行管理数据库。
如果上来就要你输入root的密码的话……
就先设置下mysql的root账号和密码
sudo mysql
管理员权限直接进入,然后就可以开始修改密码了
mysql> use mysql;
mysql> update mysql.user set authentication_string=PASSWORD('这里写新密码'), plugin='mysql_native_password' where user='root';
mysql>flush privileges;
这一步主要是在设置新密码的时候,顺便把用户root的plugin进行修改,修改为默认的 mysql_native_password,然后在刷新权限设置。
然后重启mysql
sudo service mysql restart
mysql -u root -p
再用phpmyadmin就没问题了
安装wordpress
下载解压
先下载个最新版wordpress吧
https://cn.wordpress.org/就有
下载完了以后解压
tar -zxvf wordpress-5.0.3-zh_CN.tar.gz
我这是5.0.3版本,目前最新的。
把解压出来的wordpress文件夹移到某个你想放的地方,个人随意。
配置库
装过phpmyadmin的,此时只要进phpmyadmin页面创建一个名为wordpress的数据库就好,其他默认。否则,进mysql创建吧。进入mysql:
mysql -u root -p
创建一个名为wordpress的数据库:
create database wordpress;
以后要是想修改wordpress数据库里的内容:
use wordpress;
这里涉及到mysql命令语句,有兴趣的可以研究一下,不然装个phpmyadmin吧。
改权限
为了安全考虑,修改下web根目录的权限。我习惯直接将解压出来的wordpress目录当作网站的根目录。
sudo chown www-data:www-data * -R
sudo usermod -a -G www-data username
这里www-data是nginx的默认运行用户。
wordpress的nginx配置文件
创建wordpress的nginx配置文件:
sudo nano /etc/nginx/conf.d/wordpress
里面内容是
server {
listen 80 ;#default_server;
listen [::]:80;
#listen [::]:80 default_server ipv6only=on;
root 你的网站根目录(也就是wordpress根目录);
index index.php index.html index.htm;
# Make site accessible from http://localhost/
server_name 自己的域名或者IP;
client_max_body_size 100M;
location / {
#try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php?$args;#伪静态
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
include fastcgi_params;
}
}
然后复制到sites-enabled文件夹里(这个文件夹里的才是nginx执行的配置)
sudo cp /etc/nginx/conf.d/wordpress /etc/nginx/sites-available
最好把 /etc/nginx/sites-available和/etc/nginx/sites-enabled下的其它配置文件删掉,不然容易出现问题。之后重启nginx:
sudo rm /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
sudo service nginx restart
之后在浏览器输入IP或者域名,大功告成!
Screenshot from 2019-04-28 22-59-10.png感谢
配置过程中借鉴了https://www.cnblogs.com/xiaodi914/p/4520658.html的经验,十分感谢!