LAMP+WordPress搭建网站



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

    安装Apache

    sudo apt-get update
    sudo apt-get install apache2
    

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

    安装数据库MySQL

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

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

    sudo mysql_install_db
    

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

    sudo mysql_secure_installation
    

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

    安装PHP

    安装

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

    更改dir.conf文件:

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

    更改前:

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

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

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

    重启Apache:

    sudo service apache2 restart
    

    测试PHP模块:

    创建新的文件

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

    输入文件内容

    <?php
    phpinfo();
    ?>
    

    打开http://your_server_IP_address/info.php 查看测试结果

    注意删除这个文件

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

    安装Wordpress

    创建数据库用户

    登录数据库

    mysql -u root -p
    

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

    CREATE DATABASE wordpress;
    

    创建一个数据库用户

    CREATE USER wordpressuser@localhost IDENTIFIED BY 'password';
    

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

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

    使操作生效并退出

    FLUSH PRIVILEGES;
    exit
    

    下载WordPress并配置

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

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

    解压该文件

    tar xzvf latest.tar.gz
    

    下载一些安装包

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

    复制一个配置文件的副本

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

    获得安全秘钥

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

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

    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&%');
    

    打开配置文件

    nano wp-config.php
    

    将秘钥替换配置中类似的位置

    找到关于 DB_NAME, DB_USER, 和 DB_PASSWORD 的设置,并填写相应的刚刚配置数据库的信息

    // ** 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');
    

    拷贝文件到根目录

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

    更改文件的权限

    sudo chown -R demo:www-data *
    

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

    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

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

    做如下更改

    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        ServerName server_domain_name_or_IP
        <Directory /var/www/html/>
            AllowOverride All
        </Directory>
        . . .
    

    重新启动部件

    //sudo a2enmod rewrite
    sudo service apache2 restart
    

    创建.htaccess文件

    touch /var/www/html/.htaccess
    

    赋相应权限

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

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

    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:

    chmod 644 /var/www/html/.htaccess
    

    网站在不同vps之间的迁移

    VPS1上数据打包(备份)

    文件数据打包

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

    MySQL数据导出

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

    VPS2上数据转移(恢复)

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

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

    MySQL数据导入

    *请先在phpmyadmin新建相应数据库和用户(与原数据库、用户同名)<若不同名则有可能出现数据库连接错误>

    wget http://www.xxx.com/xxx.sql
    mysql -u你新建的用户名 -p用户名密码 你刚才新建的数据库名 < xxx.sql
    

    参考链接

    How To Install Wordpress on Ubuntu 14.04
    How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 14.04
    VPS之间网站数据的备份与恢复(网站迁移教程)【微魔部落原创】



  • 感觉WP托管到容器的话部署和迁移都会方便很多



  • @luck 容器的优势😂


 

Copyright © 2018 bbs.dian.org.cn All rights reserved.

Looks like your connection to Dian was lost, please wait while we try to reconnect.