LAMP+WordPress搭建网站

LAMP+WordPress搭建博客网站

搭建LAMP(Linux, Apache, MySQL, PHP)环境

安装Apache

1
2
sudo apt-get update
sudo apt-get install apache2

安装完成之后在浏览器页面输入http://your_server_IP_address可以看到Apache的配置页面

安装数据库MySQL

1
sudo apt-get install mysql-server php7.0-mysql

首先,我们要让MySQL创建它的存储信息的数据库目录结构,输入以下命令

1
sudo mysql_install_db

然后运行一个简单的安全脚本,它会移除一些危险的默认的配置

1
sudo mysql_secure_installation

它将会要求输入root密码,然后问是否想要修改密码,如果对现在的密码满意,就输入n或者no;对于剩下的问题,只需要enter键接受默认的配置就可以,这将会移除一些样例用户和数据库,使远程root登录不可用,并且加载这些新的规则来做出我们所做的更新

安装PHP

安装

1
sudo apt-get install php7.0 libapache2-mod-php7.0 php7.0-mcrypt

更改dir.conf文件:

1
sudo nano /etc/apache2/mods-enabled/dir.conf

更改前:

1
2
3
<IfModule mod_dir.c>
  DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

更改后:<其中只是移动了ingdex.php的位置>

1
2
3
<IfModule mod_dir.c>
  DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

重启Apache:

1
sudo service apache2 restart

测试PHP模块:

创建新的文件

1
sudo nano /var/www/html/info.php

输入文件内容

1
2
3
<?php
phpinfo();
?>

打开http://your_server_IP_address/info.php 查看测试结果,注意删除这个文件

text
1
sudo rm /var/www/html/info.php

安装Wordpress

创建数据库用户

登录数据库

1
mysql -u root -p

创建新的用户,用户名假设为Wordpress

1
CREATE DATABASE wordpress;

创建一个数据库用户

1
CREATE USER wordpressuser@localhost IDENTIFIED BY 'password';

给这个用户新数据库的使用权

1
GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost;

使操作生效并退出

1
2
FLUSH PRIVILEGES;
exit

下载WordPress并配置

切换到目录并获得WordPress的最新版本

1
2
cd ~
wget http://wordpress.org/latest.tar.gz

解压该文件

1
tar xzvf latest.tar.gz

下载一些安装包

1
2
sudo apt-get update
sudo apt-get install php7.0-gd libssh2-php

复制一个配置文件的副本

1
cp wp-config-sample.php wp-config.php

获得安全秘钥

1
curl -s https://api.wordpress.org/secret-key/1.1/salt/

会得到类似的输出<警告:不要拷贝下面的!!>

1
2
3
4
5
6
7
8
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+7pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY');
4define('LOGGED_IN_SALT', 'i^/G2W7!-H2OQ+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&%');

打开配置文件

1
nano wp-config.php

将秘钥替换配置中类似的位置 找到关于 DB_NAME, DB_USER, 和 DB_PASSWORD 的设置,并填写相应的刚刚配置数据库的信息

1
2
3
4
5
6
7
8
9
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'wordpressuser');

/** MySQL database password */
define('DB_PASSWORD', 'password');

拷贝文件到根目录

1
sudo rsync -avP ~/wordpress/ /var/www/html/

更改文件的权限

1
sudo chown -R demo:www-data *

创建上传目录并赋相应的权限

1
2
mkdir /var/www/html/wp-content/uploads
sudo chown -R :www-data /var/www/html/wp-content/uploads

完成安装并查看网站并完成最后的配置,打开网站地址:http://server_domain_name_or_IP

允许Apache使用固定连接功能

编辑000-default.conf

1
sudo nano /etc/apache2/sites-available/000-default.conf

做如下更改

1
2
3
4
5
6
7
8
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ServerName server_domain_name_or_IP
<Directory /var/www/html/>
AllowOverride All
</Directory>
. . .

重新启动部件

1
2
//sudo a2enmod rewrite
sudo service apache2 restart

创建.htaccess文件

1
touch /var/www/html/.htaccess

赋相应权限

1
sudo chown :www-data /var/www/html/.htaccess

如果想要Wordpress自动更新这个文件

1
chmod 664 /var/www/html/.htaccess

If you want to update this file manually for the sake of a small security gain, you can allow the web server only read privileges by typing:

1
chmod 644 /var/www/html/.htaccess

网站在不同vps之间的迁移

VPS1上数据打包(备份)

文件数据打包

1
2
cd /home/wwwroot/
tar zcvf xxx.tar.gz 网站目录(如/home/wwwroot/vmvps.com)

MySQL数据导出

1
mysqldump -u用户名 -p密码 数据库名 > xxx.sql

VPS2上数据转移(恢复)

文件数据恢复(wget获取远程文件)

1
2
3
cd /home/wwwroot/
wget http://www.xxx.com/xxx.tar.gz(从VPS1上获取文件)
tar zxvf xxx.tar.gz

MySQL数据导入

  • 请先在phpmyadmin新建相应数据库和用户(与原数据库、用户同名)<若不同名则有可能出现数据库连接错误>
1
2
wget http://www.xxx.com/xxx.sql
mysql -u你新建的用户名 -p用户名密码 你刚才新建的数据库名 < xxx.sql

参考链接