网络寻租

Programmer, Gamer, Hacker

Ubuntu搭建wordpress

| Comments

虽然ubuntu里面已经有了wordpress的安装包,不过它好像是和apache整合起来的, 我的ubuntu服务器上面主要跑的是nginx,这里整理一下安装的步骤吧。

架构

比较简单,nginx接收到访问wordpress的请求,交给php-cgi进程渲染结果,然后返回。 跑的进程有:nginx, php-cgi, mysql。

安装软件

首先是安装必须的软件:

sudo aptitude install nginx mysql-server mysql-client unzip php5-cgi php5-mysql

安装的时候会提示你输入一下mysql的root密码。

设置mysql

mysql默认不是utf8的,我们需要修改一下:

sudo vi /etc/mysql/my.cnf

加上:

[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8

然后重启mysql:

sudo service mysql restart

给wordpress准备一个数据库:

mysql -u root -p

进入命令行后, 我们需要:

1
2
3
4
5
6
# 创建一个数据库
create database wordpress;
# 建立对应的mysql的用户
create user wordpress identified by '密码';
# 设置权限
grant all privileges on wordpress.* to wordpress;

准备php进程

我们单独跑一个php-cgi服务:

sudo vi /etc/init.d/php-fastcgi

内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/bash
BIND=127.0.0.1:9000
USER=www-data
PHP_FCGI_CHILDREN=15
PHP_FCGI_MAX_REQUESTS=1000

PHP_CGI=/usr/bin/php-cgi
PHP_CGI_NAME=`basename $PHP_CGI`
PHP_CGI_ARGS="- USER=$USER PATH=/usr/bin PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS $PHP_CGI -b $BIND"
RETVAL=0

start() {
      echo -n "Starting PHP FastCGI: "
      start-stop-daemon --quiet --start --background --chuid "$USER" --exec /usr/bin/env -- $PHP_CGI_ARGS
      RETVAL=$?
      echo "$PHP_CGI_NAME."
}
stop() {
      echo -n "Stopping PHP FastCGI: "
      killall -q -w -u $USER $PHP_CGI
      RETVAL=$?
      echo "$PHP_CGI_NAME."
}

case "$1" in
    start)
      start
  ;;
    stop)
      stop
  ;;
    restart)
      stop
      start
  ;;
    *)
      echo "Usage: php-fastcgi {start|stop|restart}"
      exit 1
  ;;
esac
exit $RETVAL

把这个服务跑起来:

1
2
3
sudo chmod u+x /etc/init.d/php-fastcgi
sudo update-rc.d php-fastcgi defaults
sudo service php-fastcgi start

设置nginx

我们增加一个nginx配置文件:

sudo vi /etc/nginx/sites-available/your-domain.com

内容(需要修改对应的参数):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
server{
        listen 80;
        server_name your-domain.com;

        location / {
          root /home/halida/wordpress;
          index index.php index.html index.htm;

          # this serves static files that exist without running other rewrite tests
          if (-f $request_filename) {
              expires 30d;
              break;
          }

          # this sends all non-existing file or directory requests to index.php
          if (!-e $request_filename) {
              rewrite ^(.+)$ /index.php?q=$1 last;
          }
        }

        location ~ \.php$ {
            root /home/halida/wordpress;

            fastcgi_pass    127.0.0.1:9000;
            fastcgi_index   index.php;
            fastcgi_param   SCRIPT_FILENAME /home/halida/wordpress$fastcgi_script_name;
            include         fastcgi_params;
        }
}

设置使用这个配置文件:

sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled

设置wordpress

我们直接从官方网站上面下载wordpress:

wget http://wordpress.org/latest.zip
unzip latest.zip
cp wp-config-sample.php wp-config.php

修改wp-config.php,填写上我们前面设置的mysql数据库信息。

wordpress就这样安装好了。然后访问你的域名位置,就可以使用了。

引用材料:

Comments