运维

ubuntu+nginx+wordpress+mysql搭建个人博客

之前也有写写博客的习惯, 有过几次搭建个人站点的想法, 总被其它杂事缠绕. 最近正好跳槽, 换了一家以云计算和安全为主的公司, 就像就这次契机写一写自己的成长旅程. 同时也可以回顾总结一下以前的知识点. 先从博客的搭建开始说起吧. 从阿里云上买了一台云服务器, 之前公司用的是ubuntu, 用着顺手就将服务器装上ubuntu16.04系统. 新建账户并配置秘钥登录, 至此系统方面告一段落

登录账户配置

adduser test 添加test用户
sudo vim /etc/sudoers, 末尾添加一行 test ALL=(ALL:ALL) NOPASSWD: ALL
拷贝秘钥至 ~/.ssh/, 并修改为正确权限

 

相关软件安装

sudo apt-get update
apt-get install language-pack-en  补充语言包
sudo apt-get install nginx 安装nginx
sudo apt-get install mysql-server 安装mysql
sudo mysql_secure_installation 安全初始化mysql(设置root密码, 删除匿名账户, 取消root远程登录, 删除test表, 刷新并授权等)
sudo apt-get -y install php7.0 php7.0-mysql 安装php以及php连接mysql的驱动包
sudo vim /etc/php/7.0/fpm/php.ini 修改为cgi.fix_pathinfo=0, 禁止nginx下php的一个远程代码执行漏洞
sudo systemctl restart php7.0-fpm 重启fastcgi应用程序

 

nginx配置修改

sudo vim /etc/nginx/sites-available/default  修改配置如下

server {
server_name mingchen.site;
listen 80;
root /var/www/wordpress;
index index.php index.html;

location ~ \.php$ {
try_files $uri $uri/ =404;
fastcgi_index index.php;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

 

数据库新建

mysql -u root -p 登录mysql
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;  创建wordpress数据库
GRANT ALL ON wordpress.* TO ‘wordpressuser’@’localhost’ IDENTIFIED BY ‘password’; FLUSH PRIVILEGES;  为wordpress数据库单独新建用户
GRANT ALL ON wordpress.* TO ‘wordpressuser’@’%’ IDENTIFIED BY ‘password’; FLUSH PRIVILEGES; 修改授权

 

安装wordpress

cd /var/www
wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz  下载wordpress源码
tar -xvf  wordpress-4.9.4-zh_CN.tar.gz  解压wordpress
vim wp-config.php 编辑配置文件
define(‘DB_NAME’, ‘wordpress’);
define(‘DB_USER’, ‘xxx’);
define(‘DB_PASSWORD’, ‘xxx’);
define(‘AUTH_KEY’, ‘`4xbOJ_S`#Z<]=@S}I/&/S~j(K&o:nfLoL48?X2&+1}.Mdfy(2,-2M1`QRyN?h}X’);
define(‘SECURE_AUTH_KEY’, ‘hX a+>djipmfzIz6WFuI8>HiQfa&$*h-F?Q|L59p?P<GMuMjK^@zQQ)RFhbJw1o.’);
define(‘LOGGED_IN_KEY’, ‘[X)!izH{Um{~H&[e:(M!VpnZ]XD3ru7E_N{1{&N61X{/ R&&d%9Z`dDzo:~^X3#Z’);
define(‘NONCE_KEY’, ‘diO|]`xyBw#R0<S*,oA8^fSAZ3o *Y(vK6TQBj-TQHs:Z&d~+b]Hgof@Iw~_xy&A’);
define(‘AUTH_SALT’, ‘*DkS/TkING_{Qi>.@tG#a:F|_CKJnzih+hXBP8*j.plD*6?Q/Qge>Fx*Rc6{]?#l’);
define(‘SECURE_AUTH_SALT’, ‘czguQ,y?Gs/Z>Fl@6vvHIEJcPAfT_Uq=B^Y[x–}vkD<S|NOsXoQg?T)L )(S0|g’);
define(‘LOGGED_IN_SALT’, ‘S/W{g5+oQdPn^hQfU9]]YWOY]b>DU]lBqP]K*S+5mIxU[r5{MQum|#~SN%~<LId(‘);
define(‘NONCE_SALT’, ‘b_?x q+)I2r& *Z(!d%<Jc7,+ru.{=|=?H7}i+*S;Q:adH0C|m~%!Hz`e}EnfH;6’);
define(‘FTP_BASE’, ‘wordpress’);
define(‘FTP_CONTENT_DIR’, ‘wordpress/wp-content’);
define(‘FTP_PLUGIN_DIR’, ‘wordpress/wp-content/plugins/’);
define(‘FTP_THEMES_DIR’, ‘wordpress/wp-content/themes/’);
define(‘FS_METHOD’, ‘direct’);

此时访问地址, 根据提示进行页面安装wordpress. 进入wordpress会发现许多插件需要更新, 更新需要给自己的服务器搭建一个ftp, 以下为相关操作.

 

安装并配置ftp

sudo apt-get install vsftpd 安装软件
sudo vim /etc/vsftpd.conf 编辑配置文件
local_enable=YES 启用本地账户访问
write_enable=YES 用户可写权限开启
pasv_enable=NO 禁用被动模式
local_root=/var/www/wordpress 设置用户根目录
allow_writeable_chroot=YES 根目录可写权限设置

 

注意的坑

wordpress的更新是通过nginx进程或者php进程进行的, 因此需要将wordpress的可写权限同时复制给进程所有者以及登录用户
ps -ef | grep nginx 查看nginx的worker process所属用户, 我这里是www-data, 登录用户是test
sudo chown -R www-data:www-data wordpress 更改wordpress所用用户和用户组
sudo chmod 775 wordpress 更改wordpress项目根目录权限
sudo usermod -a -G test www-data 将test用户添加到www-data用户组

发表评论

电子邮件地址不会被公开。 必填项已用*标注