Linode VPS安装设置全过程-Nginx+MySQL+PHP+PHP-FPM

1. 安装CentOS最小系统,安装完成后
#yum update
升级到最新版,注意Linode的VPS是Xen的,Centos是他们自己编译的,所以用
#uname -a
并没有CentOS字样,这并不影响系统,如果有些应用程序需要原生的CentOS,可以安装个自定义系统模板。

2.# rpm -ihv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
安装RPEL源
#  rpm -ihv http://centos.alt.ru/repository/centos/5/i386/centalt-release-5-3.noarch.rpm
安装CentALT软件包源

以上这两个源,可以实现所要安装的软件全部通过yum来安装

3.安装nginx,mysql,php-fpm,php
# yum -y install nginx mysql mysql-server php-fpm php-cli php-pdo php-mysql php-mcrypt php-mbstring php-gd php-tidy php-xml php-xmlrpc php-pear php-pecl-memcache php-eaccelerator

4.设置mysql
默认装好后,都有mysql,nginx用户
设置my.cnf文件
#cd /usr/share/mysql
# cp my-medium.cnf /etc/my.cnf

安装数据库文件
# /usr/bin/mysql_install_db –user=mysql
运行后,数据库文件被装在/var/lib/mysql目录中

设置root的mysql密码
/usr/bin/mysqladmin -u root password ‘yourpassword’

移除测试数据库,禁止远程root访问等安装操作
/usr/bin/mysql_secure_installation

设置mysql自启动,然后重启
#chkconfig –level 235 mysql on
#reboot

#mysql -uroot -p

mysql>status
mysql>show variables like ‘character%’;
mysql>show variables like ‘collation%’;

utf8字符集设置

#vi /etc/my.cnf
找到客户端配置[client] 在下面添加
default-character-set=utf8 默认字符集为utf8
在找到[mysqld] 添加
default-character-set=utf8 默认字符集为utf8
init_connect=’SET NAMES utf8′ (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)

5.安装phpmyadmin
#yum phpmyadmin
首先要建立能远程访问mysql的用户
添加 remote_user 远程访问帐户:
登陆到MySQL Server上去:
# mysql -uroot -pyourpassword     //用root登陆,密码yourpassword  , 也 可以交互: mysql -uroot -p ,系统提示输入密码:123456
mysql> use mysql;
mysql> GRANT ALL ON *.* TO remote_user@’localhost’ IDENTIFIED BY ‘yourpassword’ WITH GRANT OPTION;   //可以从任何IP访问
mysql> GRANT ALL ON *.* TO remote_buser@’%’ IDENTIFIED BY ‘yourpassword’ WITH GRANT OPTION;   //可以从localhost访问

6, 配置nginx,设置域名可能要先指向它
配置/etc/nginx/conf.d/virtual.conf
*********************************************************

server {
listen   80;
server_name howfortune.com www.howfortune.com;
access_log /var/www/html/howfortune/log/access.log;
error_log /var/www/html/howfortune/log/error.log;
location / {
root   /var/www/html/howfortune/;
index  index.html index.php;
}
location ~ \.php$ {
#    root           html;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
include        fastcgi_params;
}
}

其中 fastcgi_param这项改为php网站所在的目录,注意www后面没有斜杠,否则php访问mysql数据库将出现问题而导致有数据库的网站无法访问

7. php-fpm的配置文件:
*******************************************************************************
编辑php-pfm.conf文件,让php-cgi以nginx用户启动(与 nginx一样):

[root@bsd01 etc]#chmod u+w php-fpm.conf
[root@bsd01 etc]#vi php-fpm.conf

Unix user of processes
<value name=”user”>nginx</value>

Unix group of processes
<value name=”group”>nginx</value>

然后就可以启动php-fpm和nginxl了:

#chkconfig –level 235 php-fpm on
#chkconfig –level 235 nginx on
#reboot

测试一下服务器,可以访问就大功告成了。

linode在centos6下如何搭建LAMP环境

历时两日,终于在centos 6.0上搭建好了完整的LAMP开发环境,中间有很多麻烦,但还是一点点解决了。并且写好了这份安装文档,留给自己和以后再安装中遇到问题的人。

系统centos6.2,搭建LAMP环境。

1.设置主机名:

[root@li406-183 ~]# echo “HOSTNAME=taotaonv” >> /etc/sysconfig/network
[root@li406-183 ~]# hostname “taotaonv”

vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
106.187.54.183 test.taotaonv.me taotaonv

[root@li406-183 ~]# hostname
taotaonv
[root@li406-183 ~]# hostname -f
test.taotaonv.me

2.安装配置Apache

yum update
yum install httpd

cp /etc/httpd/conf/httpd.conf ~/httpd.conf.backup(最好将默认的配置备份一份备用)

3.配置虚拟主机:

先建立对应的文件夹:

mkdir -p /srv/www/taotaonv.me/public_html
mkdir /srv/www/taotaonv.me/logs

vi /etc/httpd/conf.d/vhost.conf(有多个站就配置多个站)

NameVirtualHost *:80

<VirtualHost *:80>
ServerAdmin 465793847@qq.com
ServerName taotaonv.me
ServerAlias www.taotaonv.me
DocumentRoot /srv/www/taotaonv.me/public_html/
ErrorLog /srv/www/taotaonv.me/logs/error.log
CustomLog /srv/www/taotaonv.me/logs/access.log combined
</VirtualHost>

<VirtualHost *:80>
ServerAdmin 465793847@qq.com
ServerName yqf.me
ServerAlias www.yqf.me
DocumentRoot /srv/www/yqf.me/public_html/
ErrorLog /srv/www/yqf.me/logs/error.log
CustomLog /srv/www/yqf.me/logs/access.log combined
</VirtualHost>

开启Apache:/etc/init.d/httpd start

开机自运行Apache:/sbin/chkconfig –levels 235 httpd on

修改vhost.conf文件后,重新加载apache:/etc/init.d/httpd reload

4.安装mysql及配置mysql

yum install mysql-server

开机自运行Mysql:/sbin/chkconfig –levels 235 mysqld on

启动mysql:/etc/init.d/mysqld start

配置mysql及建立数据库

mysql_secure_installation(执行此命令可以设置root密码,删除多余的数据库,增强安全性)

建立数据库:mysql -u root -p (回车后,输入刚设置的root密码)

create database lampsql;
grant all on lampsql.* to ‘taotaonv’ identified by ‘yqfv5′;

以上lampsql为数据库名,taotaonv为数据库用户名,yqfv5为对应的数据库密码。

quit离开数据库。

5.安装PHP及配置php

yum install php php-pear

配置php,编辑php.ini,vi /etc/php.ini,查询类似的参数做出相应的设置。
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
display_errors = Off
log_errors = On
error_log = /var/log/php.log
max_execution_time = 300
memory_limit = 64M
register_globals = Off

需要php支持mysql,还需安装

yum install php-mysql

到此,LAMP环境已经搭建好了

linode VPS安装Magento教程

Magento (麦进斗) 是一套专业开源的电子商务系统,貌似用的人很多,但我个人来说并不了解这个东西,毕竟我不是做网络购物的。不过我代购的Linode客户中,要求装这个东东的越来越多,以前只装过ECSHOP、SHOPEX,所以花了点时间,在备用的Linode上熟悉了下。

1.了解Magento的安装系统要求:

  • Supported Operating Systems:
    • Linux x86, x86-64
  • Supported Web Servers:
    • Apache 1.3.x
    • Apache 2.0.x
    • Apache 2.2.x
    • Nginx (starting from Magento 1.7 Community and 1.12 Enterprise versions)
  • Supported Browsers:
    • Microsoft Internet Explorer 7 and above
    • Mozilla Firefox 3.5 and above
    • Apple Safari 5 and above on Mac only
    • Google Chrome 7 and above
    • Adobe Flash browser plug-in should be installed
  • PHP Compatibility:
    • 5.2.13 – 5.3.15
    • Required extensions:
      • PDO_MySQL
      • simplexml
      • mcrypt
      • hash
      • GD
      • DOM
      • iconv
      • curl
      • SOAP (if Webservices API is to be used)
    • Safe_mode off
    • Memory_limit no less than 256Mb (preferably 512)
  • MySQL:
    • 4.1.20 or newer
    • InnoDB storage engine
  • SSL:
    • If HTTPS is used to work in the admin, SSL certificate should be valid. Self-signed SSL certificates are not supported
  • Server – hosting – setup:
    • Ability to run scheduled jobs (crontab) with PHP 5
    • Ability to override options in .htaccess files

安装完整下载版方式:

wget http://www.magentocommerce.com/downloads/assets/1.7.0.2/magento-1.7.0.2.tar.gz
tar -zxvf magento-1.7.0.2.tar.gz
mv magento/* magento/.htaccess .
chmod -R o+w media var
chmod o+w app/etc
建议删除源文件:rm -rf magento/ magento-1.7.0.2.tar.gz
接下来就可以通过网页,域名访问来安装magento了。

对于网络条件好的朋友,也可以通过网络一步一步安装:

wget http://www.magentocommerce.com/downloads/assets/1.7.0.0/magento-downloader-1.7.0.0.tar.gz
tar -zxvf magento-downloader-1.7.0.0.tar.gz
rm -rf magento-downloader-1.7.0.0.tar.gz
接下来就通过网络http://www.yourwebsite.com/downloader.php来搞定。

linode VPS安装Magento几点需要注意的地方:

一、不要是用5.3及其以上的PHP,因为在几次安装过程中,凡是涉及5.3及其以上版本的php时,安装都会出现诸如页面空白、长时间无反应等情况,最终结果就是安装失败,虽然可能数据库内容已经被建好。

二、对于Nginx,特别是LNMP一键包用户来说,找到对应的伪静态规则是当务之急,所以在我找到之后,不敢独享,需要的基友拿去!

文件名为:magento.conf(下载),将其放在 /usr/local/nginx/conf/ 文件夹下
然后在 /usr/local/nginx/conf/vhost/www.yourname.com.conf 中将include none.conf; 换成include magento.conf;即可。最后是重启nginx.

/etc/init.d/nginx restart

三、对于新手来说,不建议使用webmin/virtualmin环境,一来其默认的php是5.3.x,二来其默认的php缺少几个magento必需的函数功能,如果你不想自己编译php的话,推荐使用LNMP一键包。

四、不少环境配置完成之后,PHP的Memory_limit值都是128M,甚至更少,建议基友们将php.ini中的这个值改为256M,当然,前提是你的vps拥有512M内存甚至更多。

五、在magento的安装步骤到达最后一步时,页面下半部有一个“skip baseurl check”之类的复选框(记不太清了),默认没有选中,建议将其打勾,跳过检查,否则在漫长的等待之后或许就是安装失败。

就这么几点,不算技巧,更谈不上经验,给有同样安装需求的基友一点建议。

Linode VPS安装kloxo控制面板

由于初次使用Linode VPS,对于VPS的相关配置不太了解,只能网上查询。最终选择了安装kloxo控制面板,所以选择了32位的CentOS作为VPS操作系统。下面对整个安装过程及遇到的问题做些记录,方便以后查询。

安装要求:

1)独立服务器或者VPS,系统要求Centos5或者RedHat 5.x。Centos 6.x目前不支持。
2)至少256M内存。
3)至少2G空闲磁盘空间。
4)如果是手动分区,要保证/tmp足够大,因为kloxo创建和存储临时备份文件工程要用到/tmp,如果空间不足,将导致备份失败。

1、Linode VPS后台选择数据中心,然后安装操作系统、启动VPS。

2、下载putty,根据Linode后台Remote Access提供的SSH登录信息,输入到putty来登录SSH。

3、登录后获取系统的最新更新
yum update
给主机改名
echo “HOSTNAME=plato” >> /etc/sysconfig/network
hostname “plato”
设置时区:选择相应的数字即可。
dpkg-reconfigure tzdata

4、下载安装Kloxo
wget http://download.lxlabs.com/download/kloxo/production/kloxo-install-master.sh
sh ./kloxo-install-master.sh

安装完成后执行:
yum install php-bcmath /*高精度数学运算组件,默认没安装,MD5运算时用到*/
yum check-update /*检查全部更新*/
yum update /*更新全部更新*/
yum clean all /*清理全部缓存的安装文件以节省空间*/

安装Kloxo中文语言包

cd /usr/local/lxlabs/kloxo/httpdocs/lang
wget http://www.jiucool.com/mine/download/Kloxo_cn.zip
unzip Kloxo_cn.zip

Kloxo的后台登录地址是
https://yourip:7777/ /*安全连接*/
http://yourip:7778/ /*普通链接,常用*/
登陆后选择chinese作为默认语言。另外还可以修改7777,7778端口和SSH端口。

5、Kloxo、mysql优化

关闭不需要用到的服务,如域名解析、邮件。
service named stop;
chkconfig named off;
service qmail stop;
chkconfig qmail off;
chkconfig courier-imap off;

优化mysql,用vi命令编辑/etc/my.cnf,执行:
vi /etc/my.cnf
打开了文件,在[mysqld]下面加入以下三行:
skip-locking
skip-bdb
skip-innodb

vi命令:i——插入光标,esc——退出编辑,:q——不保存退出;:wq——保存退出。有这几个命令基本能完成所有编辑。

优化完后,重启mysql。VPS的内存使用减少了50-60M。

我做了以上工作后,就开始在Kloxo里添加域名,然后发现了一个问题,Kloxo会掉线,连不上数据库,打开已经添加的网站也是如此:Can’t connect to local mysql server through socket ‘/var/lib/mysql/mysql.sock。

这个问题难为了我两个小时,网上搜索各种方法,最后好像还是这个命令:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
解决的。但我第一次执行这个时,问题没有解决。后来修改了/etc/my.cnf一些东西,再执行就没出现这个问题了。所以问题虽然搞定,但还有点糊涂。另外,执行service mysqld start

安装完毕,登陆http://YOUR_SERVER_IP:7778访问Kloxo控制面板后台,用户名admin,密码admin。

 Congratulations. Kloxo has been installed succesfully on your server as master

You can connect to the server at:
https://<ip-address>:7777 – secure ssl connection, or
http://<ip-address>:7778 – normal one.

The login and password are ‘admin’ ‘admin’. After Logging in, you will have to
change your password to something more secure

We hope you will find managing your hosting with Kloxo
refreshingly pleasurable, and also we wish you all the success
on your hosting venture

Thanks for choosing Kloxo to manage your hosting, and allowing us to be of
service

Linode VPS方案调整

最近上linode的官方网站发现,linode的vps方案调整了,原来的768方案和1536方案没有了,可能的原因是选择这两个方案的用户并不多,于是精简了方案。对于linode而言,应该更容易管理,提供更多的方案需要更多的支持,而且给用户的选择越多,不一定是好事。当然,对于用户而言,就是少了两个选择,关系并不太大。现有的用户不受影响。

现在的vps方案:

mount磁盘挂载与卸载umount

[root@www ~]# mount -a
[root@www ~]# mount [-l]
[root@www ~]# mount [-t 文件系统] [-L Label名] [-o 额外选项] \
[-n] 装置文件名 挂载点
选项与参数:
-a :依照配置文件 /etc/fstab 的数据将所有未挂载的磁盘都挂载上来
-l :单纯的输入 mount 会显示目前挂载的信息。加上 -l 可增列 Label 名称!
-t :与 mkfs 的选项非常类似的,可以加上文件系统种类来指定欲挂载的类型。
常见的 Linux 支持类型有:ext2, ext3, vfat, reiserfs, iso9660(光盘格式),
nfs, cifs, smbfs(此三种为网络文件系统类型)
-n :在默认的情况下,系统会将实际挂载的情况实时写入 /etc/mtab 中,以利其他程序
的运行。但在某些情况下(例如单人维护模式)为了避免问题,会刻意不写入。
此时就得要使用这个 -n 的选项了。
-L :系统除了利用装置文件名 (例如 /dev/hdc6) 之外,还可以利用文件系统的标头名称
(Label)来进行挂载。最好为你的文件系统取一个独一无二的名称吧!
-o :后面可以接一些挂载时额外加上的参数!比方说账号、密码、读写权限等:
ro, rw: 挂载文件系统成为只读(ro) 或可擦写(rw)
async, sync: 此文件系统是否使用同步写入 (sync) 或异步 (async) 的
内存机制,请参考文件系统运行方式。默认为 async。
auto, noauto: 允许此 partition 被以 mount -a 自动挂载(auto)
dev, nodev: 是否允许此 partition 上,可创建装置文件? dev 为可允许
suid, nosuid: 是否允许此 partition 含有 suid/sgid 的文件格式?
exec, noexec: 是否允许此 partition 上拥有可运行 binary 文件?
user, nouser: 是否允许此 partition 让任何使用者运行 mount ?一般来说,
mount 仅有 root 可以进行,但下达 user 参数,则可让
一般 user 也能够对此 partition 进行 mount 。
defaults: 默认值为:rw, suid, dev, exec, auto, nouser, and async
remount: 重新挂载,这在系统出错,或重新升级参数时,很有用!
以上转自鸟哥linux私房菜基础篇第三版。
总之,需要记住的是分区可以挂载目录,目录也可以挂载目录,目录就是挂载点。比如我们搞linode合租的话,可以把home这个目录单独分出来,新建一个分区/dev/xvdc,然后挂载到/home即可,具体操作很简单:mkdir /backup

[root@li493-107 /]# mount /dev/xvdc /backup
[root@li493-107 /]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/xvda 10320888 585512 9210324 6% /
tmpfs 254252 112 254140 1% /dev/shm
/dev/xvdc 9649496 153080 8998344 2% /backup

[root@li493-107 /]# mount -l
/dev/xvda on / type ext3 (rw,noatime,errors=remount-ro)
/proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,noexec,nosuid,nodev)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/xvdc on /backup type ext3 (rw) [yqf]

如果/出问题,如何挂载?

mount -o remount,rw,auto /即可。

目录挂载目录,如将/home挂载到/mnt/home下:

[root@li493-107 mnt]# ls
[root@li493-107 mnt]# mkdir home
[root@li493-107 mnt]# mount –bind /home /mnt/home
[root@li493-107 mnt]# ls -lid /home /mnt/home
16522 drwxr-xr-x 2 root root 4096 Sep 23 2011 /home
16522 drwxr-xr-x 2 root root 4096 Sep 23 2011 /mnt/home
[root@li493-107 mnt]# mount -l
/dev/xvda on / type ext3 (rw,noatime,errors=remount-ro)
/proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,noexec,nosuid,nodev)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/xvdc on /backup type ext3 (rw) [yqf]
/home on /mnt/home type none (rw,bind)

Linode如何关闭MySQL日志

很多Linode上所安装的是LNMP一键安装包,安装的MySQL默认是开启了日志文件的,如果数据操作比较频繁就会产生大量的日志,在/usr/local/mysql/var/下面产生mysql-bin.0000* 类似的文件,而且一般都在几十MB到几个GB,更甚会吃掉整个硬盘空间,从而导致mysql无法启动或报错。

如何关闭MySQL的日志功能:

删除日志:

执行:/usr/local/mysql/bin/mysql -u root -p

输入密码登录后再执行:reset master;

再输入:quit 退出mysql命令模式。

彻底禁用MySQL日志:修改/etc/my.cnf 文件,找到

log-bin=mysql-bin
binlog_format=mixed

再这两行前面加上#,将其注释掉,再执行/etc/init.d/mysql restart即可。

Linode VPS如何修改时区

今天给自己的Linode VPS修改了一下时区,因为是Linode后台自动装的系统,所以时区理所当然的是美国的-5了,每次收到服务器宕机的短信都很蛋疼,因为他显示的是-5区的时间

unbuntu/debian

dpkg-reconfigure tzdata

Arch linux(时区信息参考/user/share/zoneinfo/)

vi /etc/rc.conf

TIMEZONE=”America/New_York”

其他发行版修改时区:

ln -sf /usr/share/zoneinfo/UTC /etc/localtime ## for Universal Coordinated Time

ln -sf /usr/share/zoneinfo/EST /etc/localtime ## for Eastern Standard Time

ln -sf /usr/share/zoneinfo/US/Central /etc/localtime ## for American Central

ln -sf /usr/share/zoneinfo/US/Eastern /etc/localtime ## for American Eastern

Linode – 如何修改主机名

当你购买Linode VPS主机, 云主机或者独享主机之后, 可能并不太在意自己购买的服务器的主机名. 这是因为主机服务商会默认地为你分配一个主机名, 而且这个主机名与我们所知的网站域名并没有什么联系, 如果你不做任何修改, 即不会影响你的网站访问也不会影响你的邮件发送.

登录服务器后, 使用以下命令查看主机名

hostname -f

以Linode的VPS主机产品为例, 你会看到类似以下的信息:

li123-45.members.linode.com

如果你不在意这些, 可以跳过这篇文章. 这里以Debian/Ubuntu操作系统为例

1. 配置/etc/hostname

通过以下命令修改主机名

echo “myhostname” > /etc/hostname
hostname -F /etc/hostname

2. 配置/etc/default/dhcpcd

如果配置文件/etc/default/dhcpcd存在, 将这个文件内的这段内容注释掉

#SET_HOSTNAME=’yes’

3. 配置/etc/hosts

将”myhostname”替换成你的主机名, “mydomain.com”替换成你服务器的域名, “123.123.12.12”替换为你服务器的IP地址

127.0.0.1 localhost.localdomain localhost
123.123.12.12 myhostname.mydomain.com myhostname
4. 重启networking服务
/etc/init.d/networking restart

5. 测试结果

hostname
hostname -f

Linode VPS如何重装系统

Linode 虽然稳定,但是也有可能你不想使用目前的系统,那就要重新安装一个新的系统。特别是刚入手linode的同学总是想试试不同的操作系统到底有哪些不同。Linode的控制面板非常好用,重装系统非常方便,点击导航菜单上的“Rebuild”链接,就可以打开重建系统的页面,如图:

第一行的黄色警告框中出现:Rebuilding will destroy all data, wipe your Linode clean, and start fresh.

意思是说:重装系统会破坏所有的数据,你的Linode将被清空并且重新开始。

这个以前的有篇教程是安装系统的,和这个基本上是一样,复制一下内容了:

第一个“Distribution”就是选择你要的Linux发行版本,在这里,推荐使用32位的系统比较好。至于哪一个,如果你熟悉CentOS就用它,熟悉Debian就用它,没什么好坏,其实都差不多的。经常在论坛上见到很多人争用哪个系统,其实纯属蛋疼。不过看Linode的这个下拉框默认居然是Ubuntu,看来ubuntu使用的人肯定最多了。

第二个选项是设置磁盘大小,就是操作系统安装在这个盘的大小。也许有人问,我买的512套餐,磁盘20G,怎么还要再设置?Linode有病吗?当然不是。Linode的强大之处在于像这种很多小的细节,你有自主选择权,仿佛我们不是在用VPS,而是在用一台真正的独立服务器一样。
如果这里你设置的磁盘容量小于20G,那么你还可以创建其他磁盘,至于是否需要这么做,取决于你自己了。
话说回来,如果你是新手,而且没有特殊需要,直接在这里填最大的磁盘容量就OK。

第三个选项是设置SWAP分区大小,这里一般选择默认就好。当然你也可以设置512MB,这个选项如果有变动,上面的系统盘大小会随之动态的变化,因为SWAP用的是磁盘空间。

第四个是设置系统的root用户密码,由于现在网络安全问题一直是长期以来非常重要的问题,所以大家在设置密码时,尽量复杂一些。推荐使用大小写字母+数字。

确认按钮,要等一会,系统就安装好了。