centos6.4下编译安装LNMP环境

摘要:自PHP-5.3.3起,PHP-FPM加入到了PHP核心,编译时加上--enable-fpm即可提供支持。 PHP-FPM以守护进程在后台运行,Nginx响应请求后,自行处理静态请求,PHP请求则经过fastcgi_pass交由PHP-FPM处理,处理完毕后返回。 Nginx和PHP-FPM的组合,是一种稳定、高效的PHP运行方式,效率要比传统的Apache和mod_php高出不少。 //系统说

自PHP-5.3.3起,PHP-FPM加入到了PHP核心,编译时加上--enable-fpm即可提供支持。 PHP-FPM以守护进程在后台运行,Nginx响应请求后,自行处理静态请求,PHP请求则经过fastcgi_pass交由PHP-FPM处理,处理完毕后返回。 Nginx和PHP-FPM的组合,是一种稳定、高效的PHP运行方式,效率要比传统的Apache和mod_php高出不少。

1 (36).jpg

//系统说明

1.centos6.4 IP:10.10.54.157

2.软件版本:nginx1.4.5+mysql5.5+php5.4

//编译安装nginx1.4.5

1.下载nginx1.4.5 shell>wget 2.解压nginx.1.4.5 shell>tarxvfnginx-1.4.5.tar.gz 3.编译安装 shell>yum-yinstallzlib-develpcre-developenssl-devel#nginx依赖包 shell>./configure--prefix=/usr/local/nginx--with-pcre--with-http_stub_status_module--user=apache--group=apache--with-http_ssl_module--with-http_gzip_static_module shell>make&&makeinstall 4.启动nginx shell>/usr/local/nginx/sbin/nginx-c/usr/local/nginx/conf/nginx.conf 5.打开浏览器测试是否可以访问

 

//编译安装mysql5.5

1.编译安装 shell>groupaddmysql&&useradd-gmysqlmysql-s/sbin/nologin shell>mkdir-p/data/mysql shell>cd/home/softs/mysql-5.5.30 shell>cmake-DCMAKE_INSTALL_PREFIX=/usr/local/mysql-DMYSQL_DATADIR=/data/dbdata-DWITH_INNOBASE_STORAGE_ENGINE=1-DWITH_PARTITION_STORAGE_ENGINE=1-DWITH_PERFSCHEMA_STORAGE_ENGINE=1-DWITH_BLACKHOLE_STORAGE_ENGINE=1-DWITH_ARCHIVE_STORAGE_ENGINE=1-DWITH_MYISAM_STORAGE_ENGINE=1-DMYSQL_TCP_PORT=3306-DENABLED_LOCAL_INFILE=1-DWITH_EXTRA_CHARSETS=all-DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci-DWITH_SSL=yes shell>make&&makeinstall #配置 shell>cp-f/home/softs/mysql-5.5.30/support-files/my-large.cnf/etc/my.cnf shell>cp-f/home/softs/mysql-5.5.30/support-files/mysql.server/etc/init.d/mysqld shell>chmod755/etc/init.d/mysqld shell>vim/etc/my.cnf --------------------------- [mysqld datadir=/data/mysql socket=/usr/local/mysql/tmp/mysql.sock --------------------------- shell>chownmysql.mysql/usr/local/mysql-R #初始化数据库 shell>/usr/local/mysql/scripts/mysql_install_db--user=root--datadir=/data/mysql--basedir=/usr/local/mysql shell>chownmysql.mysql/data/mysql-R shell>/etc/init.d/mysqldrestart #添加环境变量 shell>echo"exportPATH=${PATH}:/usr/local/mysql/bin">>/etc/profile

 

//编译安装php5.4

1.编译前说明 #yum安装运行环境 shell>yum–yinstalllibxml2-develcurl-devellibpng-developenldap-devel #安装PHP前需要编译安装这两个源码包:libmcryptmhash #nginx使用fpm的方式条用php,php5.4以后版本中已经支持php-fpm,所以只需要在php编译参数里指定--enable-fpm即可 2.首先安装libmcrypt-2.5.8 wgethttp://pkgs.fedoraproject.org/repo/pkgs/libmcrypt/libmcrypt-2.5.7.tar.gz/b1be163143f8e8ed0474beeb642b3bad/libmcrypt-2.5.7.tar.gz tarxvflibmcrypt-2.5.7.tar.gz cdlibmcrypt-2.5.7 ./configure make&&makeinstall 3.安装mhash-0.9.9.9 wgethttp://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.bz2/download tar-jxvfmhash-0.9.9.9.tar.bz2 cdmhash-0.9.9.9 ./configure make&&makeinstall 4.建立软连接到/usr/lib ln-s/usr/local/lib/libmcrypt*/usr/lib ln-s/usr/local/lib/libmhash.*/usr/lib ln-s/usr/local/bin/libmcrypt-config/usr/bin/libmcrypt-config 5.安装php5.4 tarxvfphp-5.4.25.tar.gz cdphp-5.4.25 ./configure--prefix=/usr/local/php--with-config-file-path=/usr/local/php/etc--with-mysql=/usr/local/mysql--with-mysqli=/usr/local/mysql/bin/mysql_config--with-mysql-sock=/usr/local/mysql/tmp/mysql.sock--with-zlib--enable-xml--disable-rpath--enable-safe-mode--enable-bcmath--enable-shmop--enable-sysvsem--with-curl--with-curlwrappers--enable-fpm--enable-fastcgi--with-mcrypt--with-gd--with-openssl--with-mhash--enable-sockets--with-ldap--with-ldap-sasl--with-xmlrpc-enable-zip--enable-soap 【error1】 configure:error:Cannotfindldaplibrariesin/usr/lib. 【solution1】 shell>ln-s/usr/lib64/libldap*/usr/lib/ shell>ldconfig 【error2】 Generatingphar.php /home/softs/php-5.4.25/sapi/cli/php:errorwhileloadingsharedlibraries:libmysqlclient.so.18:cannotopensharedobjectfile:Nosuchfileordirectory make:***[ext/phar/phar.php]Error127 【solution2】 shell>ln-s/usr/local/mysql/lib/libmysqlclient*/usr/lib/ shell>ldconfig shell>make&&makeinstall

 

//配置nginx支持php

1.首先为php创建配置文件: cpphp.ini-production/usr/local/php/php.ini mv/usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf ln-s/usr/local/php/bin/php/usr/bin/ 2.配置php-fpm.conf vi/usr/local/php/etc/php-fpm.conf -------------------------------- listen=/var/run/php-fpm.sock#使用unixsocket -------------------------------- #启动php-fpm /usr/local/php/sbin/php-fpm shell>psaux|grepphp-fpm#查看php-fpm是否成功 root34120.00.0103236892pts/3S+13:560:00grepphp-fpm root298110.00.52816085280?SsMar120:05php-fpm:masterprocess(/usr/local/php/etc/php-fpm.conf) nobody298120.01.529057615832?SMar120:00php-fpm:poolwww nobody298130.01.829349619064?SMar120:01php-fpm:poolwww nobody308390.01.128649211300?SMar120:00php-fpm:poolwww 3.配置nginx,添加支持php vi/usr/local/nginx/conf/nginx.conf ------------------------------------------------------------- http{ server{ listen80; server_namelocalhost; charsetuft-8; access_loglogs/host.access.log; location/{ #默认网站根目录 root/var/www/bbs; #添加index.php的首页文件 indexindex.phpindex.htmlindex.htm; } #添加下面的内容,注意$document_root在默认配置文件中没有 location~.php${ fastcgi_passunix:/var/run/php-fpm/php-fpm.sock; fastcgi_indexindex.php; fastcgi_paramSCRIPT_FILENAME$document_root/$fastcgi_script_name; includefastcgi_params; includefastcgi.conf; } } } ------------------------------------------------------------ #修改完之后重启nginx

 

//支持ssl加密传输

-------------------------------------------------------------- userapacheapache; worker_processes2; error_loglogs/error_nginx.log; pidlogs/nginx.pid; events{ worker_connections1024; } http{ includemime.types; default_typeapplication/octet-stream; log_formatmain\'$remote_addr-$remote_user[$time_local]"$request"\' \'$status$body_bytes_sent"$http_referer"\' \'"$http_user_agent""$http_x_forwarded_for"\'; access_loglogs/access_nginx.logmain; sendfileon; tcp_nopushon; keepalive_timeout65; gzipon; #虚拟主机配置文件 #includevirtual/www.zijian.com.conf; server{ #https加密协议默认端口 listen443; server_namebbs.zijian.com; charsetuft-8; access_loglogs/bbs.access.logmain; #网站根目录 root/var/www/bbs; indexindex.phpindex.html; location~.php${ fastcgi_passunix:/var/run/php-fpm.sock; fastcgi_indexindex.php; fastcgi_paramSCRIPT_FILENAME$document_root/$fastcgi_script_name; includefastcgi_params; includefastcgi.conf; } #配置ssl,证书用openssl工具生成,下面的路径是证书的存放目录,证书需要用系统自带的openssl工具生成 #访问这个server时候,用https://xxx.com格式 sslon; ssl_certificate/usr/local/nginx/conf/ssl/client.pem; ssl_certificate_key/usr/local/nginx/conf/ssl/client.key; } } -------------------------------------------------------------------