LNMP是linux、nginx、mysql、php的简写;LNMP与LAMP环境一样也是用来做web网站后台的,nginx是轻量级的,进程间的通讯使用php-fpm独立使用;apache则是比较臃肿的,调用php的模块来完成的,需要加载很多模块,运行起来相对较慢。
一、Nginx 安装
Nginx各种平台安装讲解:https://ittxx.cn/view/47
系统平台:CentOS release 6.6 (Final) 64位。
1.安装编译工具及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
2.首先要安装 PCRE
PCRE 作用是让 Ngnix 支持 Rewrite 功能。
1、下载 PCRE 安装包,下载地址: http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
[root@bogon src]# wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
2、解压安装包:
[root@bogon src]# tar zxvf pcre-8.35.tar.gz
3、进入安装包目录
[root@bogon src]# cd pcre-8.35
4、编译安装
[root@bogon pcre-8.35]# ./configure
[root@bogon pcre-8.35]# make && make install
5、查看pcre版本
[root@bogon pcre-8.35]# pcre-config --version
3.安装 Nginx
官网:Nginx下载:http://nginx.org/en/download.html
1、下载 Nginx,下载地址:http://nginx.org/download/nginx-1.6.2.tar.gz
[root@bogon src]# wget http://nginx.org/download/nginx-1.6.2.tar.gz
2、解压安装包
[root@bogon src]# tar zxvf nginx-1.6.2.tar.gz
3、进入安装包目录
[root@bogon src]# cd nginx-1.6.2
4、编译安装
[root@bogon nginx-1.6.2]# ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
[root@bogon nginx-1.6.2]# make
[root@bogon nginx-1.6.2]# make install
5、查看nginx版本
[root@bogon nginx-1.6.2]# /usr/local/webserver/nginx/sbin/nginx -v
到此,nginx安装完成。
4.Nginx 配置
创建 Nginx 运行使用的用户 www:
[root@bogon conf]# /usr/sbin/groupadd www
[root@bogon conf]# /usr/sbin/useradd -g www www
配置nginx.conf,将/usr/local/webserver/nginx/conf/nginx.conf替换为以下内容
[root@bogon conf]# cat /usr/local/webserver/nginx/conf/nginx.conf
user www www; worker_processes 2; #设置值和CPU核心数一致 error_log /usr/local/webserver/nginx/logs/nginx_error.log crit; #日志位置和日志级别 pid /usr/local/webserver/nginx/nginx.pid; #Specifies the value for maximum file descriptors that can be opened by this process. worker_rlimit_nofile 65535; events { use epoll; worker_connections 65535; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for'; #charset gb2312; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 8m; sendfile on; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; #limit_zone crawler $binary_remote_addr 10m; #下面是server虚拟主机的配置 server { listen 80;#监听端口 server_name localhost;#域名 index index.html index.htm index.php; root /usr/local/webserver/nginx/html;#站点目录 location ~ .*\.(php|php5)?$ { #fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ { expires 30d; # access_log off; } location ~ .*\.(js|css)?$ { expires 15d; # access_log off; } access_log off; } }
检查配置文件ngnix.conf的正确性命令:
[root@bogon conf]# /usr/local/webserver/nginx/sbin/nginx -t
5.启动 Nginx
Nginx 启动命令如下:
[root@bogon conf]# /usr/local/webserver/nginx/sbin/nginx
6.访问站点
从浏览器访问我们配置的站点ip:
Nginx 其他命令
以下包含了 Nginx 常用的几个命令:
/usr/local/webserver/nginx/sbin/nginx -s reload# 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen# 重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop # 停止 Nginx
二、MySQL 安装配置
1.安装编译工具及库文件
yum -y install gcc gcc-c++ make autoconf libtool-ltdl-devel gd-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel openssl-devel curl-devel bison patch unzip libmcrypt-devel libmhash-devel ncurses-devel sudo bzip2 flex libaio-devel
2.安装cmake 编译器
cmake 版本:cmake-3.1.1。
1、下载地址:http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz
$ wget http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz
2、解压安装包
$ tar zxvf cmake-3.1.1.tar.gz
3、进入安装包目录
$ cd cmake-3.1.1
4、编译安装
$ ./bootstrap
$ make && make install
3.安装 MySQL
MySQL版本:mysql-5.6.15。
1、下载地址: http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz
2、解压安装包
$ tar zxvf mysql-5.6.15.tar.gz
3、进入安装包目录
$ cd mysql-5.6.15
4、编译安装
$ 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_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_INNODB_MEMCACHED=1 -DWITH_DEBUG=OFF -DWITH_ZLIB=bundled -DENABLED_LOCAL_INFILE=1 -DENABLED_PROFILING=ON -DMYSQL_MAINTAINER_MODE=OFF -DMYSQL_DATADIR=/usr/local/webserver/mysql/data -DMYSQL_TCP_PORT=3306
$ make && make install
5、查看mysql版本:
$ /usr/local/webserver/mysql/bin/mysql --version
到此,mysql安装完成。
4.MySQL 配置
1、创建mysql运行使用的用户mysql:
$ /usr/sbin/groupadd mysql
$ /usr/sbin/useradd -g mysql mysql
2、创建binlog和库的存储路径并赋予mysql用户权限
$ mkdir -p /usr/local/webserver/mysql/binlog /www/data_mysql
$ chown mysql.mysql /usr/local/webserver/mysql/binlog/ /www/data_mysql/
3、创建my.cnf配置文件
将/etc/my.cnf替换为下面内容
$ cat /etc/my.cnf
[client] port = 3306 socket = /tmp/mysql.sock [mysqld] replicate-ignore-db = mysql replicate-ignore-db = test replicate-ignore-db = information_schema user = mysql port = 3306 socket = /tmp/mysql.sock basedir = /usr/local/webserver/mysql datadir = /www/data_mysql log-error = /usr/local/webserver/mysql/mysql_error.log pid-file = /usr/local/webserver/mysql/mysql.pid open_files_limit = 65535 back_log = 600 max_connections = 5000 max_connect_errors = 1000 table_open_cache = 1024 external-locking = FALSE max_allowed_packet = 32M sort_buffer_size = 1M join_buffer_size = 1M thread_cache_size = 600 #thread_concurrency = 8 query_cache_size = 128M query_cache_limit = 2M query_cache_min_res_unit = 2k default-storage-engine = MyISAM default-tmp-storage-engine=MYISAM thread_stack = 192K transaction_isolation = READ-COMMITTED tmp_table_size = 128M max_heap_table_size = 128M log-slave-updates log-bin = /usr/local/webserver/mysql/binlog/binlog binlog-do-db=oa_fb binlog-ignore-db=mysql binlog_cache_size = 4M binlog_format = MIXED max_binlog_cache_size = 8M max_binlog_size = 1G relay-log-index = /usr/local/webserver/mysql/relaylog/relaylog relay-log-info-file = /usr/local/webserver/mysql/relaylog/relaylog relay-log = /usr/local/webserver/mysql/relaylog/relaylog expire_logs_days = 10 key_buffer_size = 256M read_buffer_size = 1M read_rnd_buffer_size = 16M bulk_insert_buffer_size = 64M myisam_sort_buffer_size = 128M myisam_max_sort_file_size = 10G myisam_repair_threads = 1 myisam_recover interactive_timeout = 120 wait_timeout = 120 skip-name-resolve #master-connect-retry = 10 slave-skip-errors = 1032,1062,126,1114,1146,1048,1396 #master-host = 192.168.1.2 #master-user = username #master-password = password #master-port = 3306 server-id = 1 loose-innodb-trx=0 loose-innodb-locks=0 loose-innodb-lock-waits=0 loose-innodb-cmp=0 loose-innodb-cmp-per-index=0 loose-innodb-cmp-per-index-reset=0 loose-innodb-cmp-reset=0 loose-innodb-cmpmem=0 loose-innodb-cmpmem-reset=0 loose-innodb-buffer-page=0 loose-innodb-buffer-page-lru=0 loose-innodb-buffer-pool-stats=0 loose-innodb-metrics=0 loose-innodb-ft-default-stopword=0 loose-innodb-ft-inserted=0 loose-innodb-ft-deleted=0 loose-innodb-ft-being-deleted=0 loose-innodb-ft-config=0 loose-innodb-ft-index-cache=0 loose-innodb-ft-index-table=0 loose-innodb-sys-tables=0 loose-innodb-sys-tablestats=0 loose-innodb-sys-indexes=0 loose-innodb-sys-columns=0 loose-innodb-sys-fields=0 loose-innodb-sys-foreign=0 loose-innodb-sys-foreign-cols=0 slow_query_log_file=/usr/local/webserver/mysql/mysql_slow.log long_query_time = 1 [mysqldump] quick max_allowed_packet = 32M
4、初始化数据库
$/usr/local/webserver/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql
显示如下信息:
Installing MySQL system tables...2015-01-26 20:18:51 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). OK Filling help tables...2015-01-26 20:18:57 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). OK ...
5、创建开机启动脚本
$ cd /usr/local/webserver/mysql/
$ cp support-files/mysql.server /etc/rc.d/init.d/mysqld
$ chkconfig --add mysqld
$ chkconfig --level 35 mysqld on
6、启动mysql服务器
$ service mysqld start
7、连接 MySQL
$ /usr/local/webserver/mysql/bin/mysql -u root -p
修改MySQL用户密码:
mysqladmin -u用户名 -p旧密码 password 新密码
或进入mysql命令行
SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码');
创建新用户并授权:
grant all privileges on *.* to 用户名@'%' identified by '密码' with grant option;
其他命令:
启动:service mysqld start
停止:service mysqld stop
重启:service mysqld restart
重载配置:service mysqld reload
三、PHP 安装配置
本次安装php的版本是5.6,在安装之前需要确认安装一些的库文件。
1.安装php所需的lib库
rpm -qa zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel
rpm -qa freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
注:每个lib一般都会存在一个以"devel"命名的包,安装这个"devel"的包,对应的lib也会安装好了,所以这里只需要检查安装devel的包的情况。
如果没有安装,请使用yum来安装
yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel
yum install -y freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
如无意外,上面的这些包除了libiconv-devel没有成功安装之外,都能够正常安装,如果这些包安装出错的请根据提示信息自行百度,libiconv-devel需要自行编译安装。从网上下载的源码包为“libiconv-1.15.tar.gz”,解压之后编译安装:
tar -xf libiconv-1.15.tar.gz
cd libiconv-1.15
./configure --prefix=/usr/local/libiconv
make
make install
使用epelyum源来安装libmcrypt库、mhash加密拓展库和mcrypt加密拓展库
在CentOS默认的yum源里面没有上面提到的这些库文件,因此需要实现配置epel第三方yum源,不然使用编译安装的办法会比较麻烦
yum install epel-release#可以直接用命令安装epel源
wget -O /etc/yum.repos.d/epel.repo#也可以直接下载epel的yum源文件
安装对应的类库
yum install -y libmcrypt-devel#动态加载的模块
yum install -y mhash #基于离散数学原理的不可逆的PHP加密方式拓展库
yum install -y mcrypt #实现加密解密的功能
2.开始安装PHP(FASTCGI)服务
从php官网下载的版本是"php-5.6.31.tar.gz",当然也有更新版本的。解压之后编译安装。
tar -xf php-5.6.31.tar.gz
./configure --prefix=/usr/local/php5.6.31 --with-mysql --with-pdo-mysql -with-mysqli --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 --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-short-tags --enable-static --with-xsl --with-fpm-user=nginx --with-fpm-group=nginx --enable-ftp --with-iconv=/usr/local/libiconv
编译成功的话,会出现以下的提示。如果失败了,请根据具体的提示解答。
其中,下面说明部分的编译参数说明:
参数 | 说明 |
--prefix=/usr/local/php5.6.31 | 指定安装的位置 |
--with-mysql --with-pdo-mysql -with-mysqli | 安装php需要的mysql内容,如果是lnmp在同一主机上,用--with-mysql="mysql的安装路径" |
--with-fpm-user=nginx | 指定php-fpm的进程用户为nginx,group的同理 |
--enable-fpm | 激活php-fpm方式服务 |
--with-iconv=/usr/local/libiconv | 指定iconv的路径(之前编译出错几次都是因为没有指定这个参数) |
安装php,这样php就安装成功了。
make
make install
3.配置php的配置文件php.ini
在php的安装包解压路径下,找到php.ini的模版文件,可以看到有两个文件。
在这里我们使用后面的那个,production的。把这个文件复制到php目录下,然后改名为php.ini
cp php.ini-production /usr/local/php5.6.31/lib/php.ini
配置php-fpm.conf,这里直接用php-fpm.conf.default模版
cd /usr/local/php5.6.31/etc/
cp php-fpm.conf.default php-fpm.conf
4.启动php服务(FastCGI方式)
检查配置文件有没有错误,没有的话启动php
/usr/local/php5.6.31/sbin/php-fpm -t
/usr/local/php5.6.31/sbin/php-fpm
检查端口,9000的端口是否已经启动,启动了的话,那就可以了。
5.配置Nginx支持php程序访问
在之前的www.conf虚拟主机的配置文件里面加入php的解析
location ~ .*\.(php|php5)?$ { root html/www; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; }
完整的配置如下图:
检查并启动Nginx
6.测试LNMP是否起效。
1)测试php解析
进入到www的站点,添加一个文件index.php
echo "<?php phpinfo(); ?>" >html/www/index.php
在浏览器上输入网址验证,得到下图的页面就是OK了。也可以在linux用links工具: links www.pcm.com/index.php
2)测试php连接MySQL的情况
同样在www的目录下新建一个test_mysql.php的文件,加入以下的内容:
<?php $link_id=mysql_connect('192.168.31.52','root','pcm123456') or mysql_error(); if ($link_id){ echo "mysqld successful by pcm!"; }else{ echo mysql_error(); } ?>
浏览器打开这个页面得到结果如下,这个表示成功了,到这里LNMP就搭建成功了。
如果出现错误的提示如下,那就是数据库那里没有给到权限。
登陆数据库服务器,然后添加一个root账号,允许192.168.31.10主机访问:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.31.10' IDENTIFIED BY 'pcm123456';
flush privileges ;
转载请注明: ITTXX.CN--分享互联网 » Linux LNMP架构搭建详解
最后更新:2018-12-11 17:50:52