Ubuntu+PHP+Apache+Mysql搭建Wordpress以及恢复备份sql

环境

  • Ubuntu 12.04 LTS
  • PHP
  • Apache2
  • Mysql

Web服务器 Apache2

Apache2 安装

SSH 登陆 Linode 主机,输入下列指令安装Apache2

sudo apt-get install apache2
Apache2 配置
  1. 保险起见,拷贝配置文件
sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.backup.conf
  1. 打开配置文件
sudo vim /etc/apache2/apache2.conf
  1. 编辑配置文件
    针对Linode 1GB,应该做如下配置,以防流量超标
KeepAlive Off
...
<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 6
MaxSpareServers 12
MaxClients 80
MaxRequestsPerChild 3000
</IfModule>
  1. 重新启动Apache2
sudo service apache2 restart
配置虚拟主机

为了安装Wordpress,需要虚拟主机,这里新建一个系统账户,在其下配置,这里用* name-based virtual hosts to host websites in your home directory *

  1. Disable the default Apache virtual host by entering the following command
    取消默认站点
sudo a2dissite default
  1. 在home目录下,新建Public目录,以及其下的example.com目录(自己的网站域名),以及再其下的public,log,backup子目录
cd ~
mkdir public
mkdir -p public/example.com/{public,log,backup}
  1. 增加所有人对 home目录的读和执行权限
sudo chmod a+rx ~
  1. 增加所有人对public目录以及其中所有文件的读和执行权限
sudo chmod -R a+rx ~/public
  1. 新建虚拟主机配置文件
sudo vim /etc/apache2/sites-available/example.com.conf
  1. 作如下配置
# domain: example.com
# public: /home/example_user/public/example.com/
<VirtualHost *:80>
  # Admin email, Server Name (domain name), and any aliases
  ServerAdmin webmaster@example.com 
  ServerName  www.example.com
  ServerAlias example.com

  # Index file and Document Root (where the public files are located)
  DirectoryIndex index.html index.php
  DocumentRoot /home/example_user/public/example.com/public

  # Log file locations
  LogLevel warn
  ErrorLog  /home/example_user/public/example.com/log/error.log
  CustomLog /home/example_user/public/example.com/log/access.log combined
</VirtualHost>
  • ServerAdmin webmaster@example.com :管理员邮箱
  • example_user : 该Home下的用户名
  • example.com : 你的网站域名
  1. 建立软链接
    在sites-available目录中,建立sites-enables目录下example.com.conf的软链接,以激活站点
sudo a2ensite example.com.conf

备注:通过a2dissite和a2ensite,我们可以快速激活/屏蔽站点

  1. 重启Apache2
sudo service apache2 restart

数据库 Mysql

安装 Mysql

以下是安装步骤:

  1. MySQL database server安装
sudo apt-get install mysql-server
  • 为了Mysql的root用户设置密码
  • 打开mysql_secure_installation应用
sudo mysql_secure_installation
  • Follow the instructions to remove anonymous user accounts, disable remote root login, and remove the test database.
配置 MySQL for a Linode 1GB
  1. 打开配置文件
sudo nano /etc/mysql/my.cnf
  1. 作如下设置
max_connections = 75
key_buffer = 32M
max_allowed_packet = 1M
thread_stack = 128K
table_cache = 32
  1. 重启Mysql
sudo service mysql restart
创建数据库
  1. 进入Mysql
mysql -u root -p
  1. 创建数据库
create database exampleDB;
  1. 为上述数据库创建用户和密码
grant all on exampleDB.* to 'example_user' identified by 'password';
  1. 激活设置的账户
flush privileges;
  1. 退出
quit
导入数据库

导入数据库文件sql

  1. 将数据库文件上传至服务器,对于Mac, 使用开源软件 Cyberdark,使用SFTP协议,公钥登陆
  2. 将数据库文件导入数据库
mysql -u username -ppassword database_name < FILE.sql
  • p和password之间无空格
  • username和password以及database_name都是已经建立好的,此语句只是导入.sql文件

PHP

PHP is a general-purpose scripting language that allows you to produce dynamic and interactive webpages. Many popular web applications and content management systems, like WordPress and Drupal, are written in PHP. To develop or host websites using PHP, you must first install the base package and a couple of modules

安装PHP

以下是安装步骤

  1. Install the base PHP package by entering the following command:
sudo apt-get install php5 php-pear
  1. Add MySQL support by entering the following command:
sudo apt-get install php5-mysql
  1. Secure PHP with Suhosin by entering the following command:
sudo apt-get install php5-suhosin
Optimizing PHP for a Linode 1GB
  1. 打开PHP配置文件
sudo vim /etc/php5/apache2/php.ini
  1. 作如下配置
max_execution_time = 30
memory_limit = 128M
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
display_errors = Off
log_errors = On
error_log = /var/log/php/error.log
register_globals = Off

注意:
The 128M setting for memory_limit is a general guideline. While this value should be sufficient for most websites, larger websites and some web applications may require 256 megabytes or more

  1. 新建目录用于存储PHP error log信息
sudo mkdir -p /var/log/php
  1. 将该目录的用户更改为运行PHP的账号
sudo chown User /var/log/php
  1. 重新启动Apache2以加载PHP模块
sudo service apache2 restart

至此,PHP+Apache+Mysq已经安装完毕
网站的根目录在** /home/user/public/example.com/public**中

上述文字参考材料:
Linode帮助文档
Mactalk


剩下的是上传Wordpress安装文件并安装,如果有备份数据库,则还有还原Wordpress的问题
以下,开始正式安装和恢复Wordpress

Wordpress

搭建 Wordpress
新建数据库

Mysql中为网站新建数据库lienDB,具体见上文的新建数据库部分

设定数据库未lienDB,并且用户名为lien,编码为utf8

下载WP安装包并配置
  1. 先安装wget
sudo apt-get install wget
  1. 用wget 语句直接下载安装包
wget https://wordpress.org/latest.tar.gz
  1. 解压该文件
tar -xzvf latest.tar.gz
  1. 将解压的文件放在根目录* /home/user/public/example.com/public*下
sudo cp -r ~/wordpress/* ~/public/example.com/public/
  1. 根据数据库信息,配置wordpress
cp wp-config-sample.php wp-config.php
vim ~/wordpress/wp-config.php
  1. 设置相关权限
    将当前目录下的所有文件用户名:用户组改为 www-data:www-data,并且当前用户添加进 www-data组
sudo chown www-data:www-data * -R 
sudo usermod -a -G www-data username
  1. 设置虚拟主机
    详见上文
    配置conf文件
sudo vim /etc/apache2/sites-available/example.com.conf

配置好保存后建立软链接

sudo a2ensite example.com.conf

重新启动Apache2

sudo service apache2 restart
  1. 若使用Nginx作WEB服务器,配置见此文
还原Wordpress

有旧Wordpress的数据库文件.sql,将其还原

新建数据库

为该文件新建数据库leDB,并配置好用户和编码

导入数据库
  1. 更改原数据库文件中的域名设置
    因为原备份网站是存放在根目录的wordpress目录下,新站直接放在根目录,并且域名也进行了更换,所以数据库文件要做处理。
    .sql文件用文本工具打开
 UPDATE wp_options SET option_value = 'http://www.lienzh.me' WHERE option_id = 2;
  1. 将修改后的数据库文件上传至主机,并导入leDB

  2. 更改Wordpress配置文件wp-config.php
    另一方法是,删除wp-config.php文件(备份好),再打开网址,WP会重新生成wp-config.php文件,前提是,目录下存在wp-config-sample.php文件

  3. 虚拟主机不需要重新设置,重新启动Apache2即可

Wordpress 后台配置中遇到的问题

问题:出现在WordPress后台更改固定链接设置出现404错误,具体错误提示是:

The requested URL / was not found on this server.

可能原因

  1. wordpress的固定链接需要apache的rewrite功能支持。
  2. apache2默认没有打开rewrite功能。
  3. wordpress的vhost配置没加入完全的rewrite功能。
  4. apache2没有wordpress目录的写权限,不能写入.htaccess

我的系统
我的系统问题在第四点,所以如下:

sudo a2enmod rewrite 

应该等同于以下的命令,未尝试:

cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/rewrite.load rewrite.load

重新启动Apache2即可

sudo service apache2 restart

此问题有用的参考材料

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容