您的位置: 主页 > 网络技术 > 服务器架设 > nginx php-cgi mysql在128m内存下的vps安装和优化手记[原创]

nginx php-cgi mysql在128m内存下的vps安装和优化手记[原创]
时间:09-11-07 来源:未知 作者:admin 阅览:

install-and-optimize-the-vps-notes/ ]
选取CentOS,因为它是号称最安全及性能都相对较好的Linux系统。系统内存128m,系统用掉30m,有100m左右可用(如图1所示),swap已经有256M,硬盘为5G,除去系统后大约有4G可供捣腾。
 


 


图1。

首先,在空白的系统上使用下面的命令,安装gcc等一堆工具和后面php会用到的一些包:
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
yum这一堆东西会有点慢,这里正好插播一下,mysql的编译在128的内存下非常慢,所以呆会儿我们会采取直接yum,php、nginx都下源码编译,经过以往的经验eAccelerator、Xcache和Zend Optimizer这三者,最好是用eAccelerator搭配Zend Optimizer能给php加速得到最佳效果,当然了,Zend Optimizer需要Zend Guard来搭配,而后者是收费的,伟大的中国人有伟大的破解。
我执行的时候耗时32分钟左右。
言归正传,继续:
wget http://sysoev.ru/nginx/nginx-0.7.61.tar.gz
wget http://www.php.net/get/php-5.2.10.tar.gz/from/this/mirror
wget http://blog.s135.com/soft/linux/nginx_php/phpfpm/php-5.2.10-fpm-0.5.11.diff.gz
wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.9.tar.gz [nginx rewrite使用]
【安装MySQL】
yum install -y mysql-server
启动MySQL:
service mysqld start
设置mysql数据库root帐号密码:
mysqladmin -u root password 'newpassword' [引号内填密码]
让mysql更安全:
mysql -u root -p [此时会要求你输入刚刚设置的密码,输入后回车即可]
mysql> DROP DATABASE test; [删除test数据库]
mysql> DELETE FROM mysql.user WHERE user = ”; [删除匿名帐户]
mysql>DELETE FROM mysql.user WHERE password = ”;[删除无密码帐户]
mysql> FLUSH PRIVILEGES; [重载权限]
【优化MySQL】
此时的mysql直接吃掉20m左右的内存,如图2所示。我们要对其进行优化,关掉innodb。
 


 


图2。




vi /etc/my.cnf
在后面增加如下内容:
skip-innodb
[mysql]
no-auto-rehash
[mysqld]
user = mysql
port = 3306
open_files_limit = 600
back_log = 20
max_connections = 100
max_connect_errors = 200
table_cache = 60
external-locking = FALSE
max_allowed_packet = 16M
sort_buffer_size = 128K
join_buffer_size = 128K
thread_cache_size = 10
thread_concurrency = 8
query_cache_size = 0M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
default_table_type = MyISAM
thread_stack = 192K
transaction_isolation = READ-UNCOMMITTED
tmp_table_size = 512K
max_heap_table_size = 32M
long_query_time = 1
log_long_format
server-id = 1
binlog_cache_size = 2M
max_binlog_cache_size = 4M
max_binlog_size = 512M
expire_logs_days = 7
key_buffer_size = 4M
read_buffer_size = 1M
read_rnd_buffer_size = 2M
bulk_insert_buffer_size = 2M
myisam_sort_buffer_size = 4M
myisam_max_sort_file_size = 10G
myisam_max_extra_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
[mysqldump]
quick
max_allowed_packet = 16M
【重启MySQL】
service mysqld restart
再看mysql吃掉的内存,已经降低了四分之一,如图3所示:
 


 


图3。




【安装php】
首先使用yum安装上mysql的开发包,供php扩展mysql使用:
yum -y install mysql-devel
安装patch工具:
yum -y install patch
tar zxvf php-5.2.10.tar.gz
gzip -cd php-5.2.10-fpm-0.5.11.diff.gz | patch -d php-5.2.10 -p1
cd php-5.2.10
./configure --prefix=/opt/php --with-config-file-path=/opt/php/etc --with-mysql=/usr/share/mysql --with-mysqli=/usr/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --without-pear


服务器架设相关
关于<< nginx php-cgi mysql在128m内存下的vps安装和优化手记[原创] >>的评论 查看所有评论