今天出血,刚花了213美刀在linode上买了一年的主机,打算跑一个wordpress,下面一边搞一边记录下过程。
需要下载和安装的软件及顺序如下:
php ---> resin ---> mysql ---> wordpress ---> nginx
先按照linode上的教程安装系统,开机和做一些基本的设置,然后就可以从终端登陆到崭新的主机上开始安装各种软件了。
1,安装php
下载最新的php,解压到合适的位置,然后:
sudo ./configure --pre-fix=/opt/soft/php5
最后提示我libxml2-config找不到,请检查libxml2的安装,google了一下,据说是缺少libxml2-dev这个库,安装上,再次运行,成功了。
sudo apt-get install libxml2-dev
sudo ./configure --pre-fix=/opt/soft/php5
最后make和install:
sudo make
sudo make install
结束后验证安装:
php -version
2,安装Resin
也可以使用Apache,根据个人喜好,我习惯了Resin,而且据一些测试数据,Resin上运行php是很不错的。
去resin官网下载最新的Resin:
wget http://www.caucho.com/download/resin-4.0.31.zip
解压到合适的位置:
unzip resin-4.0.31.zip
3,安装Mysql
工作时天天都在用Mysql,但是从无到有地安装一个mysql时,发现还是挺麻烦的。
可以参考mysql官方文档安装,但因为那个文档过于注重全面和细节,实际用起来不是很方便,所以我把自己的过程记录在下面。
首先下载最新的mysql程序,我一共下载了3个rpm包——mysql-shared,mysql-server,mysql-client。其中的mysql-shared是server和client安装时可能依赖的程序库,所以先安装mysql-shared,再安装server和client。因为机房在美国,所以通过wget直接在终端里下载,下载速度达到了21MB/s。。。
因为我的系统是Ubuntu,所以要用Alien将RPM包转换成Deb包。
alien MySQL-shared-5.5.27-1.linux2.6.x86_64.rpm
转换之后,安装:
dpkg -i mysql-shared_5.5.27-2_amd64.deb
用同样的方法安装server和client包。
接下来为系统添加mysql用户,基本上过程如下:
注意:通过rpm包安装的mysql,程序安装在“/usr/share/mysql/”。
- shell> groupadd mysql
- shell> useradd -r -g mysql mysql
- shell> cd /usr/share/mysql
- shell> chown -R mysql .
- shell> chgrp -R mysql .
- shell> scripts/mysql_install_db --user=mysql
- shell> chown -R root .
- shell> chown -R mysql data
- # Next command is optional
- shell> cp my-medium.cnf /etc/my.cnf
- # Run Mysql
- shell> bin/mysqld_safe --user=mysql &
- # Next command is optional
- shell> cp support-files/mysql.server /etc/init.d/mysql.server
我的主机是512M内存,所以我拷贝了my-large.cnf到/etc/my.cnf,可以根据自己主机的配置修改分配给mysql的资源。
OK,启动Mysql!
root@xxxx:/usr/share/mysql# ./mysql.server start
Starting MySQL
. * The server quit without updating PID file (/var/lib/mysql/zxLinode.pid).
万事开头难,第一次启动果然没成功,查看日志(“/var/lib/mysql/linode.err”)
120924 17:03:25 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
/usr/sbin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
120924 17:03:25 mysqld_safe mysqld from pid file /var/lib/mysql/linode.pid ended
貌似是缺少libaio这个库,google之,然后安装libaio1库
apt-get install libaio1
再次重启,依然未成功,但换了一个错误,日志中mysqld会去“/var/lib/mysql”这个目录下读取一些东西,难道这个才是真正的安装路径?修改此路径权限为mysql用户后,启动成功。
cd /var/lib/mysql
chown -R mysql .
service mysql start --user=mysql //关闭mysql则把start改成stop
在mysql文档中有说明,要求不用root权限运行mysql,应该是为了安全问题吧,所以启动时增加 --user=mysql 表示使用mysql用户执行。
mysql启动成功后,就要做一些安全方面的善后工作了。
mysql在刚刚安装后可以用root账户和匿名账户登陆,要删除匿名账户,并给root账户设置密码,可以参考mysql文档。
mysql -h127.0.0.1 -uroot mysql;
执行sql , delete from user where user='';
set password for 'root'@'127.0.0.1'=password('你的密码');
好了,到这一步,mysql就算搞定了。
4,安装运行wordpress
终于到了最激动人心的时刻!其实,这一步算不上安装,只是下载wordpress的程序解压放到机器上而已。在wordpress的官网上可以找到最新版的程序,下载之后解压到你任何合适的地方,我放到了“/opt/www/wordpress”。
配置resin.xml,在文件最后增加一段:
- <cluster id="wordpress">
- <root-directory>.</root-directory>
- <server-default>
- <http address="*" port="8081"/>
- <jvm-arg>-Xmx200M</jvm-arg>
- <jvm-arg>-Xms200M</jvm-arg>
- <jvm-arg>-Xmn50M</jvm-arg>
- </server-default>
- <server id="wordpress" address="127.0.0.1" port="6801">
- </server>
- <host id="" root-directory=".">
- <web-app id="/" root-directory="/opt/www/wordpress"/>
- <stdout-log path='/data/log/wp.stdout.log' rollover-period='1D' rollover-size='50mb'/>
- <stderr-log path='/data/log/wp.stderr.log' rollover-period='1D' rollover-size='50mb'/>
- </host>
- </cluster>
现在尝试启动resin:
sudo sh /opt/soft/resin-4.0.31/bin/resin.sh -server wordpress start
>>/opt/soft/resin-4.0.31/bin/resin.sh: 42: exec: java: not found
啊呦!还没有安装java,这个好办,你可以直接用“apt-get install java-xx”安装openJdk,或者去下载JDK自己安装,jdk的安装在这里就省略了,在百度搜索可以找到很多流程。java安装好以后输入 java -version 可以检查java是否安装成功。
装好了java,再次启动resin,成功了。
迫不及待地访问 http://yourip:8081/readme.html,可以看到wordpress的欢迎页了!
5,创建数据库和wordpress的数据库用户
安装wordpress时会要求设置数据库的用户名和密码等内容,这一步比较简单。
进入数据库执行下面的sql:
create database wordpress;
create user wordpress identified by '你的密码';
grant all on wordpress.* to 'wordpress'@'localhost';
这样,就创建一个“wordpress”库,使用“wordpress”用户登陆,密码是“你的密码”。
在wordpress的引导页面上输入这些内容就可以继续安装了!
6,安装nginx,将80端口指向resin实例的端口
//TODO
7,配置防火墙,禁止无关端口
//TODO