2023.10.28: Deprecated,见服务器数据迁移记录
建站的教程网上已经一抓一大把了,所以这篇文章并没有什么参考价值而且我并不懂什么Nginx和PHP,仅仅是作为个人存档用,以防万一之后网站要搬迁。
工具
- Debian系的Linux服务器,这里用Debian系的原因是
我只会用Debian系Debian系统运行比较稳定 -
域名
- SSL证书
步骤
安装Nginx+MariaDB+PHP7.3+WordPress
这里主要参考这篇文章,他用的是php-7.4,我嫌麻烦就用了7.3,因为不更换源的情况下apt-get指令可以直接装7.3,但是7.4不行。以下是WordPress的提示:
PHP是用以构建及维护WordPress的程序语言。较新版本的PHP在设计时以更好的性能表现为前提,所以使用最新的PHP版本会为您的站点带来更好的性能表现。推荐的最低PHP版本是7.4。
注意最好先装Nginx,再装PHP,否则最好先执行一下
sudo apt-get remove apache2 sudo apt-get autoremove
MariaDB
安装MariaDB
sudo apt-get update sudo apt-get install mariadb-server
输入以下命令配置root密码:
sudo mysql_secure_installation
设置自己想要的密码即可。
WordPress数据库
配置WordPress数据库,用root登录
sudo mysql -uroot -hlocalhost -p
创建用户wordpress,这里把密码改为自己的密码:
CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'password';
创建数据库:
create database wordpress default charset utf8 collate utf8_general_ci;
授予权限并刷新,这里password
改为前面设置的密码
grant all privileges on wordpress.* to 'wordpress'@'localhost' identified by 'password'; flush privileges;
完成,退出数据库。
Nginx
安装Nginx
sudo apt-get install nginx
PHP
安装php7.3
sudo apt-get install php7.3 sudo apt-get install php7.3-fpm php7.3-cgi php7.3-curl php7.3-gd php7.3-xml php7.3-xmlrpc php7.3-mysql php7.3-bz2
把所有7.3换成7.4就可以安装7.4版本。
这里会显示Apache2运行失败。卸载Apache2
sudo apt-get remove apache2
检查是否安装成功
php -v
配置php,修改/etc/php/7.3/cgi/php.ini
:
cgi.fix_pathinfo=1
修改/etc/php/7.3/fpm/php.ini
:
cgi.fix_pathinfo=0
WordPress
进入/var/www/
目录,没有的话就创建。下载最新版wordpress
cd /var/www/ sudo wget https://wordpress.org/latest.tar.gz
解压
sudo tar -xzvf <压缩包名>
将解压后的文件夹更名为wordpress
,进入wordpress
文件夹,复制一份sample配置
sudo cp wp-config-sample.php wp-config.php
打开wp-config.php
,修改数据库的用户名和密码为前面设置的密码
/** The name of the database for WordPress */ define( 'DB_NAME', 'wordpress' ); /** MySQL database username */ define( 'DB_USER', 'wordpress' ); /** MySQL database password */ define( 'DB_PASSWORD', 'yourpassword' ); /** MySQL hostname */ define( 'DB_HOST', 'localhost' ); /** Database Charset to use in creating database tables. */ define( 'DB_CHARSET', 'utf8' ); /** The Database Collate type. Don't change this if in doubt. */ define( 'DB_COLLATE', '' );
获取域名和SSL证书
域名直接买或者白嫖就行,SSL证书也可以白嫖,具体怎么弄就省略了。我是在腾讯云获取的SSL证书,域名正确解析完成之后,下载证书,里面会附带Nginx专用的SSL证书文件,一个是crt
后缀一个是key
后缀。把两个文件传输到/etc/nginx/
目录,权限修改为只读。
配置https、伪静态、http重定向
修改/etc/nginx/conf.d/default.conf
,这里的域名填自己的域名,证书文件名也对应地修改。一共要修改4处。如果用的是PHP7.4,还要注意替换里面的7.3。
server { listen 443 ssl; server_name your.domain; root /var/www/wordpress; ssl_certificate yourcertificate.crt; #私钥文件名称 ssl_certificate_key yourcertificate.key; ssl_session_timeout 5m; #请按照以下协议配置 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; #charset koi8-r; access_log /var/log/nginx/host.access.log main; location / { #root /usr/share/nginx/html; index index.html index.htm index.php; try_files uriuri/ /index.php?args; } error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { # root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php{ #root html; fastcgi_pass unix:/run/php/php7.3-fpm.sock; fastcgi_index index.php; #fastcgi_param SCRIPT_FILENAME /scriptsfastcgi_script_name; fastcgi_param SCRIPT_FILENAME document_rootfastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } } server { listen 80; #填写绑定证书的域名 server_name your.domain; #把http的域名请求转成https return 301 https://hostrequest_uri; }
重启两项服务
sudo systemctl restart php7.3-fpm sudo systemctl restart nginx
重启正常的话,在浏览器输入域名,如果正确跳转到https,那么设置完成。接下来按照wordpress的提示一步步设置即可。
Comments | NOTHING