公司搞的测试环境正好拿来测试安装一下LNMP环境,用的软件是

nginx-1.0.14.tar.gz

mysql-5.5.22.tar.gz

php-5.4.0.tar.gz

这个环境只是开发人员用来测试的,生产环境用的不是最新

首先来更新一下程序所需要的库文件。

  1. 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 

1.编译安装mysql-5.5.22

groupadd mysql

useradd -g mysql mysql -s /sbin/nologin

(1).编译安装mysql的编译器cmake

  1. tar -xf cmake-2.8.4.tar.gz  
  2. ./configure  
  3. make  
  4. make install 

(2)编译安装mysql

  1. tar -xf mysql-5.5.22.tar.gz  
  2. cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 
  3. make  
  4. make install  
  5. cp support-files/my-medium.cnf /etc/my.cnf  
  6. cp support-files/mysql.server /etc/rc.d/init.d/mysqld 

(3)初始化mysql

chmod +w /usr/local/webserver/mysql

chown -R mysql:mysql /usr/local/webserver/mysql

/usr/local/webserver/mysql/bin/mysql_install_db --basedir=/usr/local/webserver/mysql --datadir=/data --user=mysql

在编译目录下有个mysql启动脚本,可以拿过来用一下

cp support-files/mysql.server /etc/rc.d/init.d/mysqld

可以用这个来启动mysql

 2.编译安装php-5.4.0所需的支持库

  1. (1)tar -xf libiconv-1.13.1.tar.gz  
  2. ./configure --prefix=/usr/local  
  3. make  
  4. make install  
  5.  
  6. (2)tar -xf libmcrypt-2.5.8.tar.gz  
  7. ./configure  
  8. make  
  9. make install  
  10. /sbin/ldconfig  
  11. cd libltdl/  
  12. ./configure --enable-ltdl-install  
  13. make  
  14. make install  
  15.  
  16. (3)tar -xf mhash-0.9.9.9.tar.gz  
  17. ./configure  
  18. make  
  19. make install  
  20.  
  21. ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la  
  22. ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so  
  23. ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4  
  24. ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8  
  25. ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a  
  26. ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la  
  27. ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so  
  28. ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2  
  29. ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1  
  30. ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config  
  31.  
  32. (4)tar -xf mcrypt-2.6.8.tar.gz  
  33. /sbin/ldconfig  
  34. ./configure  
  35. make  
  36. make install 

(5)编译安装php-5.4.0

  1. tar -xf php-5.4.0.tar.gz  
  2. ./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-mysql=/usr/local/webserver/mysql --with-mysqli=/usr/local/webserver/mysql/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-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap  
  3.  
  4. make ZEND_EXTRA_LIBS='-liconv' 
  5. make install

注:如果在编译php是报这个错可以试一下用这种方法解决一下

  1. 在编译php,make的时候出错:  
  2.  
  3. /root/dev/php-5.3.6/sapi/cli/php: error while loading shared libraries:  libmysqlclient.so.18: cannot open shared object file: No such file or  directory  
  4. make: *** [ext/phar/phar.php] Error 127 

ln -s /usr/local/mysql/lib/libmysqlclient.so.18  /usr/lib/

然后重新编译一下。

cp php.ini-production /usr/local/webserver/php/etc/php.ini

cp php-5.4.0/sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm

chmod 755 /etc/init.d/php-fpm

copy出来用就可以了,这个脚本可以start stop reload fpm就和5.2+的那个脚本一样了!

(6)编译安装php-5.4.0的扩展模块

  1. tar zxvf memcache-2.2.5.tgz  
  2. cd memcache-2.2.5/  
  3. /usr/local/webserver/php/bin/phpize  
  4. ./configure --with-php-config=/usr/local/webserver/php/bin/php-config  
  5. make  
  6. make install  
  7.  
  8. tar jxvf eaccelerator-0.9.6.1.tar.bz2  
  9. cd eaccelerator-0.9.6.1/  
  10. /usr/local/webserver/php/bin/phpize  
  11. ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/webserver/php/bin/php-config  
  12. make  
  13. make install  
  14.  
  15. tar zxvf PDO_MYSQL-1.0.2.tgz  
  16. cd PDO_MYSQL-1.0.2/  
  17. /usr/local/webserver/php/bin/phpize  
  18. ./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-pdo-mysql=/usr/local/webserver/mysql  
  19. make  
  20. make install  
  21.  
  22. tar zxvf ImageMagick.tar.gz  
  23. cd ImageMagick-6.5.1-2/  
  24. ./configure  
  25. make  
  26. make install  
  27.  
  28. tar zxvf imagick-2.3.0.tgz  
  29. cd imagick-2.3.0/  
  30. /usr/local/webserver/php/bin/phpize  
  31. ./configure --with-php-config=/usr/local/webserver/php/bin/php-config  
  32. make  
  33. make install 

在安装的时候eaccelerator-0.9.6.1.tar.bz2这个没有安装上然后启动php打开网站没有问题,不过少了一个加速器性能肯定会下降一些。

3.编译安装nginx-1.0.14

(1)编译安装一下pcre

tar zxvf pcre-8.10.tar.gz
./configure
make && make install

(2)编译安装nginx

tar zxvf nginx-1.0.14.tar.gz
./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install

根据自己的喜好创建一些目录,更改nginx的目录。不更改启动都在默认目录下

现在附上我们服务器上的nginx 及 mysql的配置文件

nginx.conf

  1. user  www www;  
  2.  
  3. worker_processes 8;  
  4.  
  5. error_log  /data/logs/nginx_error.log error;  
  6.  
  7. pid        /usr/local/webserver/nginx/nginx.pid;  
  8.  
  9. #Specifies the value for maximum file descriptors that can be opened by this process.  
  10. worker_rlimit_nofile 51200;  
  11.  
  12. events  
  13. {  
  14.   use epoll;  
  15.   worker_connections 65535;  
  16. }  
  17.  
  18. http  
  19. {  
  20.   include       mime.types;  
  21.   default_type  application/octet-stream;  
  22.  
  23.   #charset  gb2312;  
  24.  
  25.   server_names_hash_bucket_size 128;  
  26.   client_header_buffer_size 256k;  
  27.   large_client_header_buffers 8 256k;  
  28.   client_max_body_size 32m;  
  29.  
  30.   sendfile on;  
  31.   tcp_nopush     on;  
  32.   #send_timeout 60;  
  33.   server_tokens off;  
  34.   keepalive_timeout 10;  
  35.   tcp_nodelay on;  
  36.   ssi on;  
  37.   ssi_silent_errors on;  
  38.   ssi_types text/shtml;  
  39.  
  40.   fastcgi_connect_timeout 300;  
  41.   fastcgi_send_timeout 300;  
  42.   fastcgi_read_timeout 300;  
  43.   fastcgi_buffer_size 64k;  
  44.   fastcgi_buffers 4 64k;  
  45.   fastcgi_busy_buffers_size 128k;  
  46.   fastcgi_temp_file_write_size 128k;  
  47.  
  48.   gzip on;  
  49.   gzip_min_length  1k;  
  50.   gzip_buffers     4 16k;  
  51.   gzip_http_version 1.0;  
  52.   gzip_comp_level 2;  
  53.   gzip_types       text/plain application/x-javascript text/css application/xml;  
  54.   gzip_vary on;  
  55.  
  56.  
  57.         #limit_zone  crawler  $binary_remote_addr  10m;  
  58.  
  59.   include  /usr/local/webserver/nginx/conf/vhosts/*.conf;  

my.cnf

  1. [client]  
  2. character-set-server = utf8  
  3. port    = 3306  
  4. socket  = /tmp/mysql.sock  
  5.  
  6. [mysqld]  
  7. character-set-server = utf8  
  8. replicate-ignore-db = mysql  
  9. replicate-ignore-db = test  
  10. replicate-ignore-db = information_schema  
  11. user    = mysql  
  12. port    = 3306  
  13. socket  = /tmp/mysql.sock  
  14. basedir = /usr/local/webserver/mysql  
  15. datadir = /data/mysql  
  16. log-error = /data/mysql/mysql_error.log  
  17. pid-file = /data/mysql/mysql.pid  
  18. open_files_limit    = 10240  
  19. back_log = 600  
  20. max_connections = 5000  
  21. max_connect_errors = 6000  
  22. table_cache = 614  
  23. external-locking = FALSE 
  24. max_allowed_packet = 32M  
  25. sort_buffer_size = 1M  
  26. join_buffer_size = 1M  
  27. thread_cache_size = 300  
  28. #thread_concurrency = 8  
  29. query_cache_size = 512M  
  30. query_cache_limit = 2M  
  31. query_cache_min_res_unit = 2k  
  32. default-storage-engine = MyISAM  
  33. thread_stack = 192K  
  34. transaction_isolation = READ-COMMITTED 
  35. tmp_table_size = 246M  
  36. max_heap_table_size = 246M  
  37. long_query_time = 3  
  38. log-bin = /data/binlog  
  39. binlog_cache_size = 4M  
  40. binlog_format = MIXED  
  41. max_binlog_cache_size = 8M  
  42. max_binlog_size = 1G  
  43. expire_logs_days = 30  
  44. key_buffer_size = 256M  
  45. read_buffer_size = 1M  
  46. read_rnd_buffer_size = 16M  
  47. bulk_insert_buffer_size = 64M  
  48. myisam_sort_buffer_size = 128M  
  49. myisam_max_sort_file_size = 10G  
  50. myisam_repair_threads = 1  
  51. myisam_recover  
  52.  
  53. interactive_timeout = 120  
  54. wait_timeout = 120  
  55.  
  56. skip-name-resolve  
  57. server-id = 1  
  58.  
  59. innodb_additional_mem_pool_size = 16M  
  60. innodb_buffer_pool_size = 512M  
  61. innodb_data_file_path = ibdata1:256M:autoextend  
  62. innodb_file_io_threads = 4  
  63. innodb_thread_concurrency = 8  
  64. innodb_flush_log_at_trx_commit = 2  
  65. innodb_log_buffer_size = 16M  
  66. innodb_log_file_size = 128M  
  67. innodb_log_files_in_group = 3  
  68. innodb_max_dirty_pages_pct = 90  
  69. innodb_lock_wait_timeout = 120  
  70. innodb_file_per_table = 0  
  71.  
  72. [mysqldump]  
  73. quick  
  74. max_allowed_packet = 32M 

到此配置完了,有什么地方要改进的希望大家提出来,谢谢!